aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/visitors/depth_first.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/visitors/depth_first.rb')
-rw-r--r--lib/arel/visitors/depth_first.rb112
1 files changed, 56 insertions, 56 deletions
diff --git a/lib/arel/visitors/depth_first.rb b/lib/arel/visitors/depth_first.rb
index 24c435ad1d..67cdecfa36 100644
--- a/lib/arel/visitors/depth_first.rb
+++ b/lib/arel/visitors/depth_first.rb
@@ -7,13 +7,13 @@ module Arel
private
- def visit o
+ def visit o, a = nil
super
@block.call o
end
- def unary o
- visit o.expr
+ def unary o, a
+ visit o.expr, a
end
alias :visit_Arel_Nodes_Group :unary
alias :visit_Arel_Nodes_Grouping :unary
@@ -28,10 +28,10 @@ module Arel
alias :visit_Arel_Nodes_Top :unary
alias :visit_Arel_Nodes_UnqualifiedColumn :unary
- def function o
- visit o.expressions
- visit o.alias
- visit o.distinct
+ def function o, a
+ visit o.expressions, a
+ visit o.alias, a
+ visit o.distinct, a
end
alias :visit_Arel_Nodes_Avg :function
alias :visit_Arel_Nodes_Exists :function
@@ -39,27 +39,27 @@ module Arel
alias :visit_Arel_Nodes_Min :function
alias :visit_Arel_Nodes_Sum :function
- def visit_Arel_Nodes_NamedFunction o
- visit o.name
- visit o.expressions
- visit o.distinct
- visit o.alias
+ def visit_Arel_Nodes_NamedFunction o, a
+ visit o.name, a
+ visit o.expressions, a
+ visit o.distinct, a
+ visit o.alias, a
end
- def visit_Arel_Nodes_Count o
- visit o.expressions
- visit o.alias
- visit o.distinct
+ def visit_Arel_Nodes_Count o, a
+ visit o.expressions, a
+ visit o.alias, a
+ visit o.distinct, a
end
- def nary o
- o.children.each { |child| visit child }
+ def nary o, a
+ o.children.each { |child| visit child, a }
end
alias :visit_Arel_Nodes_And :nary
- def binary o
- visit o.left
- visit o.right
+ def binary o, a
+ visit o.left, a
+ visit o.right, a
end
alias :visit_Arel_Nodes_As :binary
alias :visit_Arel_Nodes_Assignment :binary
@@ -83,13 +83,13 @@ module Arel
alias :visit_Arel_Nodes_TableAlias :binary
alias :visit_Arel_Nodes_Values :binary
- def visit_Arel_Nodes_StringJoin o
- visit o.left
+ def visit_Arel_Nodes_StringJoin o, a
+ visit o.left, a
end
- def visit_Arel_Attribute o
- visit o.relation
- visit o.name
+ def visit_Arel_Attribute o, a
+ visit o.relation, a
+ visit o.name, a
end
alias :visit_Arel_Attributes_Integer :visit_Arel_Attribute
alias :visit_Arel_Attributes_Float :visit_Arel_Attribute
@@ -99,11 +99,11 @@ module Arel
alias :visit_Arel_Attributes_Attribute :visit_Arel_Attribute
alias :visit_Arel_Attributes_Decimal :visit_Arel_Attribute
- def visit_Arel_Table o
- visit o.name
+ def visit_Arel_Table o, a
+ visit o.name, a
end
- def terminal o
+ def terminal o, a
end
alias :visit_ActiveSupport_Multibyte_Chars :terminal
alias :visit_ActiveSupport_StringInquirer :terminal
@@ -127,43 +127,43 @@ module Arel
alias :visit_Time :terminal
alias :visit_TrueClass :terminal
- def visit_Arel_Nodes_InsertStatement o
- visit o.relation
- visit o.columns
- visit o.values
+ def visit_Arel_Nodes_InsertStatement o, a
+ visit o.relation, a
+ visit o.columns, a
+ visit o.values, a
end
- def visit_Arel_Nodes_SelectCore o
- visit o.projections
- visit o.source
- visit o.wheres
- visit o.groups
- visit o.windows
- visit o.having
+ def visit_Arel_Nodes_SelectCore o, a
+ visit o.projections, a
+ visit o.source, a
+ visit o.wheres, a
+ visit o.groups, a
+ visit o.windows, a
+ visit o.having, a
end
- def visit_Arel_Nodes_SelectStatement o
- visit o.cores
- visit o.orders
- visit o.limit
- visit o.lock
- visit o.offset
+ def visit_Arel_Nodes_SelectStatement o, a
+ visit o.cores, a
+ visit o.orders, a
+ visit o.limit, a
+ visit o.lock, a
+ visit o.offset, a
end
- def visit_Arel_Nodes_UpdateStatement o
- visit o.relation
- visit o.values
- visit o.wheres
- visit o.orders
- visit o.limit
+ def visit_Arel_Nodes_UpdateStatement o, a
+ visit o.relation, a
+ visit o.values, a
+ visit o.wheres, a
+ visit o.orders, a
+ visit o.limit, a
end
- def visit_Array o
- o.each { |i| visit i }
+ def visit_Array o, a
+ o.each { |i| visit i, a }
end
- def visit_Hash o
- o.each { |k,v| visit(k); visit(v) }
+ def visit_Hash o, a
+ o.each { |k,v| visit(k, a); visit(v, a) }
end
end
end