Sha256: 816490861f9c7596213fa5bc76e4b65032cdfe0c4029d5a0e83bf99b5965af80
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
require 'arel/visitors/visitor' module Arel module Visitors class Visitor # We are adding our visitors to the main visitor for the time being until the right spot is found to monkey patch private def visit_Arel_Nodes_ContainedWithin o, a = nil "#{visit o.left, a} << #{visit o.right, o.left}" end def visit_Arel_Nodes_ContainedWithinEquals o, a = nil "#{visit o.left, a} <<= #{visit o.right, o.left}" end def visit_Arel_Nodes_Contains o, a = nil left_column = o.left.relation.engine.columns.find { |col| col.name == o.left.name.to_s } if left_column && (left_column.type == :hstore || (left_column.respond_to?(:array) && left_column.array)) "#{visit o.left, a} @> #{visit o.right, o.left}" else "#{visit o.left, a} >> #{visit o.right, o.left}" end end def visit_Arel_Nodes_ContainsEquals o, a = nil "#{visit o.left, a} >>= #{visit o.right, o.left}" end def visit_Arel_Nodes_Overlap o, a = nil "#{visit o.left, a} && #{visit o.right, o.left}" end def visit_IPAddr value, a = nil "'#{value.to_s}/#{value.instance_variable_get(:@mask_addr).to_s(2).count('1')}'" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
postgres_ext-2.3.0 | lib/postgres_ext/arel/visitors/visitor.rb |