From c693cdae0860654e28f46c9af797212b68bef5bd Mon Sep 17 00:00:00 2001 From: Yong Guo Date: Tue, 1 Mar 2016 13:21:47 -0800 Subject: Fix issue #415 - Should Arel::Nodes::True.new() be 1 in sqlite3? --- lib/arel/visitors/sqlite.rb | 9 +++++++++ test/visitors/test_sqlite.rb | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/lib/arel/visitors/sqlite.rb b/lib/arel/visitors/sqlite.rb index ff6fc1fea4..165e9cb6db 100644 --- a/lib/arel/visitors/sqlite.rb +++ b/lib/arel/visitors/sqlite.rb @@ -12,6 +12,15 @@ module Arel o.limit = Arel::Nodes::Limit.new(-1) if o.offset && !o.limit super end + + def visit_Arel_Nodes_True o, collector + collector << "1" + end + + def visit_Arel_Nodes_False o, collector + collector << "0" + end + end end end diff --git a/test/visitors/test_sqlite.rb b/test/visitors/test_sqlite.rb index 8fb8e76095..a9f3501f20 100644 --- a/test/visitors/test_sqlite.rb +++ b/test/visitors/test_sqlite.rb @@ -18,6 +18,13 @@ module Arel node = Nodes::Lock.new(Arel.sql('FOR UPDATE')) assert_equal '', @visitor.accept(node, Collectors::SQLString.new).value end + + it 'does not support boolean' do + node = Nodes::True.new() + assert_equal '1', @visitor.accept(node, Collectors::SQLString.new).value + node = Nodes::False.new() + assert_equal '0', @visitor.accept(node, Collectors::SQLString.new).value + end end end end -- cgit v1.2.3