Sha256: 9cb854b2c42caf50c9a9ba1a4cf0068a0e22129705abf487083f9226baf1dfa7

Contents?: true

Size: 783 Bytes

Versions: 50

Compression:

Stored size: 783 Bytes

Contents

# This implements a basic encoder to work around ActiveRecord's dependence on the pg gem
module ActiveRecord::ConnectionAdapters::PostgreSQL::OID
  class Array < ActiveModel::Type::Value
    module PG
      module TextEncoder
        class Array

          def initialize(name:, delimiter:)
            @type = if name == 'string[]'.freeze
                      'text'.freeze
                    else
                      base_type = name.chomp('[]'.freeze).to_sym
                      ActiveRecord::Base.connection.native_database_types[base_type][:name]
                    end
          end

          def encode(values)
            ActiveRecord::Base.connection.jdbc_connection.create_array_of(@type, values.to_java).to_s
          end

        end
      end
    end
  end
end

Version data entries

50 entries across 50 versions & 3 rubygems

Version Path
activerecord-jdbc-adapter-52.8-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-52.6.0-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-51.7.0-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-50.7.0-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-52.7-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-51.8-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-50.8-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-52.6-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-51.7-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-50.7-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-52.5.1-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-51.6.1-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-50.6.1-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-52.5-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-51.6-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-50.6-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-52.4.0-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-51.5.0-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-alt-adapter-50.5.0-java lib/arjdbc/postgresql/base/array_encoder.rb
activerecord-jdbc-adapter-52.4-java lib/arjdbc/postgresql/base/array_encoder.rb