Sha256: bb5125485483c10d2b5e67078f5a5cc4cdc3c6bcafdf6e95a7ff5ce4e9cc296a

Contents?: true

Size: 725 Bytes

Versions: 8

Compression:

Stored size: 725 Bytes

Contents

# frozen_string_literal: true

module TableSaw
  module Queries
    class SerializeSqlInClause
      attr_reader :table_name, :column, :values

      def initialize(table_name, column, values)
        @table_name = table_name
        @column = column
        @values = values
      end

      def call
        "#{column} in (#{serialized_values.join(', ')})"
      end

      private

      def db_column
        TableSaw.schema_cache.columns_hash(table_name)[column]
      end

      def serialized_values
        values.map do |value|
          connection.quote(connection.type_cast_from_column(db_column, value))
        end
      end

      def connection
        TableSaw::Connection.adapter
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
table_saw-2.7.0 lib/table_saw/queries/serialize_sql_in_clause.rb
table_saw-2.6.0 lib/table_saw/queries/serialize_sql_in_clause.rb
table_saw-2.5.0 lib/table_saw/queries/serialize_sql_in_clause.rb
table_saw-2.4.3 lib/table_saw/queries/serialize_sql_in_clause.rb
table_saw-2.4.2 lib/table_saw/queries/serialize_sql_in_clause.rb
table_saw-2.4.1 lib/table_saw/queries/serialize_sql_in_clause.rb
table_saw-2.4.0 lib/table_saw/queries/serialize_sql_in_clause.rb
table_saw-2.3.0 lib/table_saw/queries/serialize_sql_in_clause.rb