class Querylicious::QueryReducer
Query Reducer for processing parsed query
Public Class Methods
call(reducable, query, &block)
click to toggle source
# File lib/querylicious/query_reducer.rb, line 17 def self.call(reducable, query, &block) new(block).call(reducable, query) end
Public Instance Methods
call(reducable, query)
click to toggle source
# File lib/querylicious/query_reducer.rb, line 21 def call(reducable, query) parse_query(query).reduce(reducable) do |memo, rule| Matcher.call(rule, &reducer.to_proc.curry.call(memo)) end end
curry(*args)
click to toggle source
# File lib/querylicious/query_reducer.rb, line 27 def curry(*args) to_proc.curry(*args) end
to_proc()
click to toggle source
# File lib/querylicious/query_reducer.rb, line 31 def to_proc public_method(:call).to_proc end
Private Instance Methods
parse_query(query)
click to toggle source
# File lib/querylicious/query_reducer.rb, line 45 def parse_query(query) Array(transformer.apply(parser.parse(query.to_s))) end
parser()
click to toggle source
# File lib/querylicious/query_reducer.rb, line 41 def parser @parser ||= Parser.new end
transformer()
click to toggle source
# File lib/querylicious/query_reducer.rb, line 37 def transformer @transformer ||= Transform.new end