Sha256: 159ec9f61975921b2ca6a279c60a34143a2eac7f5725833129b875beb8d963a1

Contents?: true

Size: 767 Bytes

Versions: 1

Compression:

Stored size: 767 Bytes

Contents

module Arel
  module Visitors
    class ToSql
      def visit_Arel_Nodes_In o, collector
        if Array === o.right && o.right.empty?
          collector << '1=0'
        else
          # CPK
          collector << "("
          collector = visit o.left, collector
          # CPK
          collector << ")"
          collector << " IN ("
          visit(o.right, collector) << ")"
        end
      end

      def visit_CompositePrimaryKeys_CompositeKeys o, collector
        values = o.map do |key|
          case key
            when Arel::Attributes::Attribute
              "#{key.relation.name}.#{key.name}"
            else
              key
          end
        end
        collector << "#{values.join(', ')}"
        collector
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
composite_primary_keys-11.0.0.rc2 lib/composite_primary_keys/arel/to_sql.rb