diff options
Diffstat (limited to 'lib/arel/visitors/dot.rb')
-rw-r--r-- | lib/arel/visitors/dot.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/arel/visitors/dot.rb b/lib/arel/visitors/dot.rb index ca8d2b0bd0..9aa22d33f6 100644 --- a/lib/arel/visitors/dot.rb +++ b/lib/arel/visitors/dot.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true module Arel module Visitors class Dot < Arel::Visitors::Visitor @@ -155,6 +156,11 @@ module Arel visit_edge o, "name" end + def visit_Arel_Nodes_Casted o + visit_edge o, 'val' + visit_edge o, 'attribute' + end + def visit_Arel_Attribute o visit_edge o, "relation" visit_edge o, "name" @@ -204,7 +210,6 @@ module Arel alias :visit_NilClass :visit_String alias :visit_TrueClass :visit_String alias :visit_FalseClass :visit_String - alias :visit_Arel_Nodes_BindParam :visit_String alias :visit_Integer :visit_String alias :visit_Fixnum :visit_String alias :visit_BigDecimal :visit_String @@ -212,6 +217,8 @@ module Arel alias :visit_Symbol :visit_String alias :visit_Arel_Nodes_SqlLiteral :visit_String + def visit_Arel_Nodes_BindParam o; end + def visit_Hash o o.each_with_index do |pair, i| edge("pair_#{i}") { visit pair } @@ -271,7 +278,7 @@ module Arel label = "<f0>#{node.name}" node.fields.each_with_index do |field, i| - label << "|<f#{i + 1}>#{quote field}" + label += "|<f#{i + 1}>#{quote field}" end "#{node.id} [label=\"#{label}\"];" |