mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Modify Visitors::Dot's API to use collectors
This commit is contained in:
parent
0a7e0ef210
commit
fcd11dcb99
3 changed files with 9 additions and 7 deletions
|
@ -15,7 +15,9 @@ module Arel
|
|||
end
|
||||
|
||||
def to_dot
|
||||
Visitors::Dot.new.accept @ast
|
||||
collector = Arel::Collectors::PlainString.new
|
||||
collector = Visitors::Dot.new.accept @ast, collector
|
||||
collector.value
|
||||
end
|
||||
|
||||
def visitor
|
||||
|
|
|
@ -22,9 +22,9 @@ module Arel
|
|||
@seen = {}
|
||||
end
|
||||
|
||||
def accept object
|
||||
def accept object, collector
|
||||
visit object
|
||||
to_dot
|
||||
collector << to_dot
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -17,13 +17,13 @@ module Arel
|
|||
].each do |klass|
|
||||
define_method("test_#{klass.name.gsub('::', '_')}") do
|
||||
op = klass.new(:a, "z")
|
||||
@visitor.accept op
|
||||
@visitor.accept op, Collectors::PlainString.new
|
||||
end
|
||||
end
|
||||
|
||||
def test_named_function
|
||||
func = Nodes::NamedFunction.new 'omg', 'omg'
|
||||
@visitor.accept func
|
||||
@visitor.accept func, Collectors::PlainString.new
|
||||
end
|
||||
|
||||
# unary ops
|
||||
|
@ -41,7 +41,7 @@ module Arel
|
|||
].each do |klass|
|
||||
define_method("test_#{klass.name.gsub('::', '_')}") do
|
||||
op = klass.new(:a)
|
||||
@visitor.accept op
|
||||
@visitor.accept op, Collectors::PlainString.new
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -68,7 +68,7 @@ module Arel
|
|||
].each do |klass|
|
||||
define_method("test_#{klass.name.gsub('::', '_')}") do
|
||||
binary = klass.new(:a, :b)
|
||||
@visitor.accept binary
|
||||
@visitor.accept binary, Collectors::PlainString.new
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue