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