module AttrSearchable::Parser
Public Class Methods
parse(query, model)
click to toggle source
# File lib/attr_searchable.rb, line 21 def self.parse(query, model) query.is_a?(Hash) ? parse_hash(query, model) : parse_string(query, model) end
parse_hash(hash, model)
click to toggle source
# File lib/attr_searchable.rb, line 25 def self.parse_hash(hash, model) AttrSearchable::HashParser.new(model).parse(hash) || raise(ParseError) end
parse_string(string, model)
click to toggle source
# File lib/attr_searchable.rb, line 29 def self.parse_string(string, model) node = AttrSearchableGrammarParser.new.parse(string) || raise(ParseError) node.model = model node.evaluate end