protected Method

Selector.attribute_match(equality, value)

Create a regular expression to match an attribute value based on the equality operator (=, ^=, |=, etc).

Source Code

# File action_controller/vendor/html-scanner/html/selector.rb, line 687
def attribute_match(equality, value)
  regexp = value.is_a?(Regexp) ? value : Regexp.escape(value.to_s)
  case equality
    when "=" then
      # Match the attribute value in full
      Regexp.new("^#{regexp}$")
    when "~=" then
      # Match a space-separated word within the attribute value
      Regexp.new("(^|\s)#{regexp}($|\s)")
    when "^="
      # Match the beginning of the attribute value
      Regexp.new("^#{regexp}")
    when "$="
      # Match the end of the attribute value
      Regexp.new("#{regexp}$")
    when "*="
      # Match substring of the attribute value
      regexp.is_a?(Regexp) ? regexp : Regexp.new(regexp)
    when "|=" then
      # Match the first space-separated item of the attribute value
      Regexp.new("^#{regexp}($|\s)")
    else
      raise InvalidSelectorError, "Invalid operation/value" unless value.empty?
      # Match all attributes values (existence check)
      //
  end
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.