Sha256: a93b83bbe197caeb0b4e02f2b77d445a77fd67f4c338437b66ee30a7ee949773
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
require 'arel/visitors/postgresql' module Arel module Visitors class PostgreSQL private def visit_Arel_Nodes_ContainedWithin o, collector infix_value o, collector, " << " end def visit_Arel_Nodes_ContainedWithinEquals o, collector infix_value o, collector, " <<= " end def visit_Arel_Nodes_Contains o, collector left_column = o.left.relation.engine.columns.find do |col| col.name == o.left.name.to_s || col.name == o.left.relation.name.to_s end if left_column && (left_column.type == :hstore || (left_column.respond_to?(:array) && left_column.array)) infix_value o, collector, " @> " else infix_value o, collector, " >> " end end def visit_Arel_Nodes_ContainsINet o, collector infix_value o, collector, " >> " end def visit_Arel_Nodes_ContainsHStore o, collector infix_value o, collector, " @> " end def visit_Arel_Nodes_ContainsArray o, collector infix_value o, collector, " @> " end def visit_Arel_Nodes_ContainsEquals o, collector infix_value o, collector, " >>= " end def visit_Arel_Nodes_Overlap o, collector infix_value o, collector, " && " end def visit_IPAddr value, collector collector << quote("#{value.to_s}/#{value.instance_variable_get(:@mask_addr).to_s(2).count('1')}") end end end end
Version data entries
3 entries across 3 versions & 1 rubygems