Sha256: af40d6d144092af717ce08af17b2301c0de4f97ddcbb7a77cc875c32d9f88a38

Contents?: true

Size: 1.55 KB

Versions: 5

Compression:

Stored size: 1.55 KB

Contents

if(defined?(::RUBY_ENGINE) && ::RUBY_ENGINE == 'jruby')
  require 'active_record/connection_adapters/jdbcpostgresql_adapter'
else
  require 'pg'
end

module ActiveRecord  # :nodoc:
  module ConnectionHandling  # :nodoc:

    if(defined?(::RUBY_ENGINE) && ::RUBY_ENGINE == 'jruby')

      def postgis_connection(config)
        config[:adapter_class] = ::ActiveRecord::ConnectionAdapters::PostGISAdapter::MainAdapter
        postgresql_connection(config)
      end

      alias_method :jdbcpostgis_connection, :postgis_connection

    else

      # Based on the default <tt>postgresql_connection</tt> definition from ActiveRecord.
      # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
      def postgis_connection(config)
        # FULL REPLACEMENT because we need to create a different class.
        conn_params = config.symbolize_keys

        conn_params.delete_if { |_, v| v.nil? }

        # Map ActiveRecords param names to PGs.
        conn_params[:user] = conn_params.delete(:username) if conn_params[:username]
        conn_params[:dbname] = conn_params.delete(:database) if conn_params[:database]

        # Forward only valid config params to PGconn.connect.
        conn_params.keep_if { |k, _| VALID_CONN_PARAMS.include?(k) }

        # The postgres drivers don't allow the creation of an unconnected PGconn object,
        # so just pass a nil connection object for the time being.
        ConnectionAdapters::PostGISAdapter::MainAdapter.new(nil, logger, conn_params, config)
      end

    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
activerecord-postgis-adapter-3.0.0.beta5 lib/active_record/connection_adapters/postgis_adapter/create_connection.rb
activerecord-postgis-adapter-3.0.0.beta4 lib/active_record/connection_adapters/postgis_adapter/create_connection.rb
activerecord-postgis-adapter-3.0.0.beta3 lib/active_record/connection_adapters/postgis_adapter/create_connection.rb
activerecord-postgis-adapter-3.0.0.beta2 lib/active_record/connection_adapters/postgis_adapter/create_connection.rb
activerecord-postgis-adapter-3.0.0.beta1 lib/active_record/connection_adapters/postgis_adapter/create_connection.rb