module LogicalQueryParser
Constants
- VERSION
Public Class Methods
new()
click to toggle source
# File lib/logical_query_parser.rb, line 11 def new LogicalQueryParserParser.new end
resolve_assocs(klass, *options)
click to toggle source
# File lib/logical_query_parser.rb, line 22 def resolve_assocs(klass, *options) AssocResolver.new(klass).run(*options) end
search(query, relations, *options)
click to toggle source
# File lib/logical_query_parser.rb, line 15 def search(query, relations, *options) relations = relations.all if relations.respond_to?(:all) assoc = resolve_assocs(relations.klass, *options) sql = new.parse(query).to_sql(model: relations.klass, columns: assoc.column_mapping) relations.joins(assoc.structure).where(sql) end
unquote(str)
click to toggle source
# File lib/logical_query_parser/nodes/active_record.rb, line 111 def unquote(str) str = str[1..-2].to_s.gsub(/\\(.)/, '\1') if str[0] == '"' && str[-1] == '"' str end
walk_tree(node) { |node| ... }
click to toggle source
# File lib/logical_query_parser.rb, line 26 def walk_tree(node, &block) yield node unless node.elements.nil? node.elements.each do |element| walk_tree(element, &block) end end end