class Ansr::Arel::Visitors::ToNoSql

Attributes

table[R]

Public Class Methods

new(big_table) click to toggle source
Calls superclass method
# File lib/ansr/arel/visitors/to_no_sql.rb, line 5
def initialize(big_table)
  super()
  @table = big_table
end

Public Instance Methods

query_builder(opts = nil) click to toggle source
# File lib/ansr/arel/visitors/to_no_sql.rb, line 10
def query_builder(opts = nil)
  Ansr::Arel::Visitors::QueryBuilder.new(table, opts)
end
visit_Arel_Nodes_SelectStatement(object, attribute) click to toggle source

the object generated by this method will be passed to the NoSqlAdapter#execute

# File lib/ansr/arel/visitors/to_no_sql.rb, line 15
def visit_Arel_Nodes_SelectStatement(object, attribute)
  builder = query_builder

  if object.with
    builder.visit(object.with, attribute)
  end

  object.cores.each { |x| builder.visit_Arel_Nodes_SelectCore(x, attribute) }

  unless object.orders.empty?

    object.orders.each do |x|
      oa = Ansr::Arel::Visitors::Order.new(attribute)
      builder.visit x, oa
    end
  end

  builder.visit(object.limit, attribute) if object.limit
  builder.visit(object.offset, attribute) if object.offset
  # not relevant

  builder.query_opts
end