diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2014-04-08 12:03:52 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2014-04-08 12:03:52 -0700 |
commit | 05b5bb12270b32e094c1c879273e0978dabe5b3b (patch) | |
tree | 24a09e4abc6bdb10e62626577e3c024c10707a19 /lib/arel/visitors/bind_visitor.rb | |
parent | df52f7ca2ffe1dd4fb8e65db352c7bcaacfea1a5 (diff) | |
download | rails-05b5bb12270b32e094c1c879273e0978dabe5b3b.tar.gz rails-05b5bb12270b32e094c1c879273e0978dabe5b3b.tar.bz2 rails-05b5bb12270b32e094c1c879273e0978dabe5b3b.zip |
bind visitor working with collector object
Diffstat (limited to 'lib/arel/visitors/bind_visitor.rb')
-rw-r--r-- | lib/arel/visitors/bind_visitor.rb | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/arel/visitors/bind_visitor.rb b/lib/arel/visitors/bind_visitor.rb index 5cb251ffde..c316c8d702 100644 --- a/lib/arel/visitors/bind_visitor.rb +++ b/lib/arel/visitors/bind_visitor.rb @@ -6,24 +6,26 @@ module Arel super end - def accept node, &block + def accept node, collector, &block @block = block if block_given? super end private - def visit_Arel_Nodes_Assignment o + def visit_Arel_Nodes_Assignment o, collector if o.right.is_a? Arel::Nodes::BindParam - "#{visit o.left} = #{visit o.right}" + collector = visit o.left, collector + collector << " = " + visit o.right, collector else super end end - def visit_Arel_Nodes_BindParam o + def visit_Arel_Nodes_BindParam o, collector if @block - @block.call + @block.call(collector) else super end |