diff options
-rw-r--r-- | lib/arel/visitors/bind_visitor.rb | 5 | ||||
-rw-r--r-- | test/visitors/test_bind_visitor.rb | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/arel/visitors/bind_visitor.rb b/lib/arel/visitors/bind_visitor.rb index c316c8d702..c336e87395 100644 --- a/lib/arel/visitors/bind_visitor.rb +++ b/lib/arel/visitors/bind_visitor.rb @@ -25,7 +25,10 @@ module Arel def visit_Arel_Nodes_BindParam o, collector if @block - @block.call(collector) + val = @block.call + if String === val + collector << val + end else super end diff --git a/test/visitors/test_bind_visitor.rb b/test/visitors/test_bind_visitor.rb index a04a04f4cb..5171bbe57c 100644 --- a/test/visitors/test_bind_visitor.rb +++ b/test/visitors/test_bind_visitor.rb @@ -25,8 +25,8 @@ module Arel }.new Table.engine.connection assignment = um.ast.values[0] - actual = visitor.accept(assignment, collector) { |collector| - collector << "replace" + actual = visitor.accept(assignment, collector) { + "replace" } assert actual value = actual.value @@ -43,7 +43,7 @@ module Arel bp = Nodes::BindParam.new 'omg' called = false - visitor.accept(bp, collector) { |collector| called = true } + visitor.accept(bp, collector) { called = true } assert called end |