class Arel::Visitors::DepthFirst
Public Class Methods
new(block = nil)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 4 def initialize block = nil @block = block || Proc.new end
Private Instance Methods
binary(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 60 def binary o visit o.left visit o.right end
Also aliased as: visit_Arel_Nodes_As, visit_Arel_Nodes_Assignment, visit_Arel_Nodes_Between, visit_Arel_Nodes_DeleteStatement, visit_Arel_Nodes_DoesNotMatch, visit_Arel_Nodes_Equality, visit_Arel_Nodes_GreaterThan, visit_Arel_Nodes_GreaterThanOrEqual, visit_Arel_Nodes_In, visit_Arel_Nodes_InfixOperation, visit_Arel_Nodes_JoinSource, visit_Arel_Nodes_InnerJoin, visit_Arel_Nodes_LessThan, visit_Arel_Nodes_LessThanOrEqual, visit_Arel_Nodes_Matches, visit_Arel_Nodes_NotEqual, visit_Arel_Nodes_NotIn, visit_Arel_Nodes_Or, visit_Arel_Nodes_OuterJoin, visit_Arel_Nodes_TableAlias, visit_Arel_Nodes_Values
function(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 31 def function o visit o.expressions visit o.alias visit o.distinct end
nary(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 55 def nary o o.children.each { |child| visit child } end
Also aliased as: visit_Arel_Nodes_And
terminal(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 106 def terminal o end
Also aliased as: visit_ActiveSupport_Multibyte_Chars, visit_ActiveSupport_StringInquirer, visit_Arel_Nodes_Lock, visit_Arel_Nodes_Node, visit_Arel_Nodes_SqlLiteral, visit_Arel_Nodes_BindParam, visit_Arel_Nodes_Window, visit_Arel_SqlLiteral, visit_BigDecimal, visit_Bignum, visit_Class, visit_Date, visit_DateTime, visit_FalseClass, visit_Fixnum, visit_Float, visit_NilClass, visit_String, visit_Symbol, visit_Time, visit_TrueClass
unary(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 15 def unary o visit o.expr end
Also aliased as: visit_Arel_Nodes_Group, visit_Arel_Nodes_Grouping, visit_Arel_Nodes_Having, visit_Arel_Nodes_Limit, visit_Arel_Nodes_Not, visit_Arel_Nodes_Offset, visit_Arel_Nodes_On, visit_Arel_Nodes_Ordering, visit_Arel_Nodes_Ascending, visit_Arel_Nodes_Descending, visit_Arel_Nodes_Top, visit_Arel_Nodes_UnqualifiedColumn
visit(o)
click to toggle source
Calls superclass method
Arel::Visitors::Visitor#visit
# File lib/arel/visitors/depth_first.rb, line 10 def visit o super @block.call o end
visit_Arel_Attribute(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 90 def visit_Arel_Attribute o visit o.relation visit o.name end
visit_Arel_Nodes_Count(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 49 def visit_Arel_Nodes_Count o visit o.expressions visit o.alias visit o.distinct end
visit_Arel_Nodes_InsertStatement(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 130 def visit_Arel_Nodes_InsertStatement o visit o.relation visit o.columns visit o.values end
visit_Arel_Nodes_NamedFunction(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 42 def visit_Arel_Nodes_NamedFunction o visit o.name visit o.expressions visit o.distinct visit o.alias end
visit_Arel_Nodes_SelectCore(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 136 def visit_Arel_Nodes_SelectCore o visit o.projections visit o.source visit o.wheres visit o.groups visit o.windows visit o.having end
visit_Arel_Nodes_SelectStatement(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 145 def visit_Arel_Nodes_SelectStatement o visit o.cores visit o.orders visit o.limit visit o.lock visit o.offset end
visit_Arel_Nodes_StringJoin(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 86 def visit_Arel_Nodes_StringJoin o visit o.left end
visit_Arel_Nodes_UpdateStatement(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 153 def visit_Arel_Nodes_UpdateStatement o visit o.relation visit o.values visit o.wheres visit o.orders visit o.limit end
visit_Arel_Table(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 102 def visit_Arel_Table o visit o.name end
visit_Array(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 161 def visit_Array o o.each { |i| visit i } end
visit_Hash(o)
click to toggle source
# File lib/arel/visitors/depth_first.rb, line 165 def visit_Hash o o.each { |k,v| visit(k); visit(v) } end