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