match?

in lib/core/filtering/simple_rules/simple_rule.rb [78:109]


      def match?(document)
        return true if id == DEFAULT_RULE_ID
        doc_value = document[field]
        return false if doc_value.nil?
        coerced_value = coerce(doc_value)
        case rule
        when Rule::EQUALS
          case coerced_value
          when Integer
            doc_value == coerced_value
          when DateTime, Time
            doc_value.to_s == coerced_value.to_s
          else
            doc_value.to_s == coerced_value
          end
        when Rule::STARTS_WITH
          doc_value.to_s.start_with?(value)
        when Rule::ENDS_WITH
          doc_value.to_s.end_with?(value)
        when Rule::CONTAINS
          doc_value.to_s.include?(value)
        when Rule::REGEX
          doc_value.to_s.match(/
        when Rule::LESS_THAN
          doc_value < coerced_value
        when Rule::GREATER_THAN
          doc_value > coerced_value
        else
          false
        end
      end