class Ansr::Arel::Visitors::QueryBuilder

Attributes

table[R]

Public Class Methods

new(table) click to toggle source
# File lib/ansr/arel/visitors/query_builder.rb, line 4
def initialize(table)
  @table = table
end

Public Instance Methods

field_key_from_node(node) click to toggle source
# File lib/ansr/arel/visitors/query_builder.rb, line 37
def field_key_from_node(node)
  table.model.field_name(node)
end
multiple?(field_key) click to toggle source

determines whether multiple values should accumulate or overwrite in merges

# File lib/ansr/arel/visitors/query_builder.rb, line 42
def multiple?(field_key)
  false
end
visit(object, attribute=nil) click to toggle source
Calls superclass method
# File lib/ansr/arel/visitors/query_builder.rb, line 8
def visit(object, attribute=nil)
  super(object, attribute)
end
visit_Ansr_Arel_BigTable(object, attribute) click to toggle source
# File lib/ansr/arel/visitors/query_builder.rb, line 12
def visit_Ansr_Arel_BigTable(object, attribute)
  visit object.name, attribute if Ansr::Arel::Visitors::From === attribute
  @table = object if Ansr::Arel::BigTable === object and Ansr::Arel::Visitors::From === attribute
end
visit_Arel_Nodes_And(object, attribute) click to toggle source
# File lib/ansr/arel/visitors/query_builder.rb, line 33
def visit_Arel_Nodes_And(object, attribute)
  visit(object.children, attribute)
end
visit_Arel_Nodes_SelectCore(object, attribute) click to toggle source
# File lib/ansr/arel/visitors/query_builder.rb, line 17
def visit_Arel_Nodes_SelectCore(object, attribute)
  visit(object.froms, From.new(attribute)) if object.froms
  object.projections.each { |x| visit(x, attribute) }
  object.wheres.each { |x| visit(x, attribute) }
  object.groups.each {|x| visit(x, attribute) if x}
  self
end
visit_Array(o, a) click to toggle source
# File lib/ansr/arel/visitors/query_builder.rb, line 29
def visit_Array o, a
  o.map { |x| visit x, a }
end
visit_Symbol(o, a) click to toggle source
# File lib/ansr/arel/visitors/query_builder.rb, line 25
def visit_Symbol o, a
  visit o.to_s, a
end