Sha256: 43e069d891fb91bca9e2d3cf8aea7c11217434368f0ae663beaa2ce70ea38b3a

Contents?: true

Size: 806 Bytes

Versions: 2

Compression:

Stored size: 806 Bytes

Contents

module Arel
  module Visitors
    class PostgreSQL
      private
      
      def visit_Arel_Nodes_Contains o, collector
        visit o.left, collector
        collector << ' @> '
        visit o.right, collector
      end

      def visit_Arel_Nodes_Overlaps o, collector
        visit o.left, collector
        collector << ' && '
        visit o.right, collector
      end
      
      def visit_Arel_Attributes_Array o, collector
        type = if !o.relation[0]
          ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array.new(nil)
        else
          ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array.new("ActiveRecord::Type::#{o.relation[0].class}".constantize.new)
        end

        collector << quote(type.type_cast_for_database(o.relation))
      end
      
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
activerecord-filter-1.0.0 ext/arel/visitors/postgresql.rb
activerecord-filter-1.0.0.alpha ext/arel/visitors/postgresql.rb