Class: Arel::TreeManager

Inherits:
Object
  • Object
show all
Defined in:
lib/arel/extensions/tree_manager.rb

Direct Known Subclasses

DeleteManager, InsertManager, UpdateManager

Instance Method Summary collapse

Instance Method Details

#each(&block) ⇒ Object

Iterate through AST, nodes will be yielded depth-first



4
5
6
7
8
# File 'lib/arel/extensions/tree_manager.rb', line 4

def each(&block)
  return enum_for(:each) unless block_given?

  ::Arel::Visitors::DepthFirst.new(block).accept ast
end

#to_sql_and_binds(engine = Arel::Table.engine) ⇒ Object



10
11
12
13
# File 'lib/arel/extensions/tree_manager.rb', line 10

def to_sql_and_binds(engine = Arel::Table.engine)
  collector = engine.connection.send(:collector)
  engine.connection.visitor.accept(@ast, collector).value
end