diff options
-rw-r--r-- | lib/arel/visitors/dot.rb | 8 | ||||
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 1 | ||||
-rw-r--r-- | spec/arel/visitors/to_sql_spec.rb | 4 |
3 files changed, 13 insertions, 0 deletions
diff --git a/lib/arel/visitors/dot.rb b/lib/arel/visitors/dot.rb index 4b37927685..8a03819768 100644 --- a/lib/arel/visitors/dot.rb +++ b/lib/arel/visitors/dot.rb @@ -28,6 +28,12 @@ module Arel end private + def visit_Arel_Nodes_InsertStatement o + visit_edge o, "relation" + visit_edge o, "columns" + visit_edge o, "values" + end + def visit_Arel_Nodes_SelectCore o visit_edge o, "froms" visit_edge o, "projections" @@ -50,12 +56,14 @@ module Arel alias :visit_Arel_Attributes_Integer :visit_Arel_Attribute alias :visit_Arel_Attributes_String :visit_Arel_Attribute alias :visit_Arel_Attributes_Time :visit_Arel_Attribute + alias :visit_Arel_Attributes_Boolean :visit_Arel_Attribute def visit_String o @node_stack.last.fields << o end alias :visit_Time :visit_String alias :visit_NilClass :visit_String + alias :visit_TrueClass :visit_String alias :visit_Arel_SqlLiteral :visit_String alias :visit_Fixnum :visit_String diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index bb93876595..b0fed4936b 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -74,6 +74,7 @@ module Arel def visit_Fixnum o; o end alias :visit_Time :visit_Fixnum alias :visit_String :visit_Fixnum + alias :visit_TrueClass :visit_Fixnum alias :visit_Arel_Nodes_SqlLiteral :visit_Fixnum alias :visit_Arel_SqlLiteral :visit_Fixnum # This is deprecated diff --git a/spec/arel/visitors/to_sql_spec.rb b/spec/arel/visitors/to_sql_spec.rb index 1d78395b2f..554b69a5bd 100644 --- a/spec/arel/visitors/to_sql_spec.rb +++ b/spec/arel/visitors/to_sql_spec.rb @@ -13,6 +13,10 @@ module Arel @visitor.accept attr end + it "should visit_TrueClass" do + @visitor.accept(@attr.eq(true)).should be_like %{ "users"."id" = 't' } + end + describe "Nodes::In" do it "should know how to visit" do node = @attr.in [1, 2, 3] |