684: def attribute_match(equality, value)
685: regexp = value.is_a?(Regexp) ? value : Regexp.escape(value.to_s)
686: case equality
687: when "=" then
688:
689: Regexp.new("^#{regexp}$")
690: when "~=" then
691:
692: Regexp.new("(^|\s)#{regexp}($|\s)")
693: when "^="
694:
695: Regexp.new("^#{regexp}")
696: when "$="
697:
698: Regexp.new("#{regexp}$")
699: when "*="
700:
701: regexp.is_a?(Regexp) ? regexp : Regexp.new(regexp)
702: when "|=" then
703:
704: Regexp.new("^#{regexp}($|\s)")
705: else
706: raise InvalidSelectorError, "Invalid operation/value" unless value.empty?
707:
708: //
709: end
710: end