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
|
end
|
||||||
|
|
||||||
def to_dot
|
def to_dot
|
||||||
Visitors::Dot.new.accept @ast
|
collector = Arel::Collectors::PlainString.new
|
||||||
|
collector = Visitors::Dot.new.accept @ast, collector
|
||||||
|
collector.value
|
||||||
end
|
end
|
||||||
|
|
||||||
def visitor
|
def visitor
|
||||||
|
|
|
@ -22,9 +22,9 @@ module Arel
|
||||||
@seen = {}
|
@seen = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
def accept object
|
def accept object, collector
|
||||||
visit object
|
visit object
|
||||||
to_dot
|
collector << to_dot
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -17,13 +17,13 @@ module Arel
|
||||||
].each do |klass|
|
].each do |klass|
|
||||||
define_method("test_#{klass.name.gsub('::', '_')}") do
|
define_method("test_#{klass.name.gsub('::', '_')}") do
|
||||||
op = klass.new(:a, "z")
|
op = klass.new(:a, "z")
|
||||||
@visitor.accept op
|
@visitor.accept op, Collectors::PlainString.new
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_named_function
|
def test_named_function
|
||||||
func = Nodes::NamedFunction.new 'omg', 'omg'
|
func = Nodes::NamedFunction.new 'omg', 'omg'
|
||||||
@visitor.accept func
|
@visitor.accept func, Collectors::PlainString.new
|
||||||
end
|
end
|
||||||
|
|
||||||
# unary ops
|
# unary ops
|
||||||
|
@ -41,7 +41,7 @@ module Arel
|
||||||
].each do |klass|
|
].each do |klass|
|
||||||
define_method("test_#{klass.name.gsub('::', '_')}") do
|
define_method("test_#{klass.name.gsub('::', '_')}") do
|
||||||
op = klass.new(:a)
|
op = klass.new(:a)
|
||||||
@visitor.accept op
|
@visitor.accept op, Collectors::PlainString.new
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ module Arel
|
||||||
].each do |klass|
|
].each do |klass|
|
||||||
define_method("test_#{klass.name.gsub('::', '_')}") do
|
define_method("test_#{klass.name.gsub('::', '_')}") do
|
||||||
binary = klass.new(:a, :b)
|
binary = klass.new(:a, :b)
|
||||||
@visitor.accept binary
|
@visitor.accept binary, Collectors::PlainString.new
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue