Sha256: b7ffa23ec2d8062c84a10d719795205f78ebc32c0748c955539cd1ae207e73e4

Contents?: true

Size: 1011 Bytes

Versions: 6

Compression:

Stored size: 1011 Bytes

Contents

# frozen_string_literal: true

require_relative '../active_record/connection_adapters/fibered_mysql2_adapter'

module FiberedMysql2
  module FiberedMysql2ConnectionFactory
    def fibered_mysql2_connection(raw_config)
      config = raw_config.symbolize_keys

      config[:username] = 'root' if config[:username].nil?
      config[:flags]    = Mysql2::Client::FOUND_ROWS if Mysql2::Client.const_defined?(:FOUND_ROWS)

      client =
          begin
            Mysql2::Client.new(config)
          rescue Mysql2::Error => error
            if error.message.include?("Unknown database")
              raise ActiveRecord::NoDatabaseError.new(error.message)
            else
              raise
            end
          end

      options = [config[:host], config[:username], config[:password], config[:database], config[:port], config[:socket], 0]
      FiberedMysql2Adapter.new(client, logger, options, config)
    end
  end
end

ActiveRecord::Base.class.prepend(FiberedMysql2::FiberedMysql2ConnectionFactory)

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fibered_mysql2-1.1.0 lib/fibered_mysql2/fibered_mysql2_connection_factory.rb
fibered_mysql2-1.0.1 lib/fibered_mysql2/fibered_mysql2_connection_factory.rb
fibered_mysql2-1.0.0 lib/fibered_mysql2/fibered_mysql2_connection_factory.rb
fibered_mysql2-1.0.0.colin.3 lib/fibered_mysql2/fibered_mysql2_connection_factory.rb
fibered_mysql2-1.0.0.colin.2 lib/fibered_mysql2/fibered_mysql2_connection_factory.rb
fibered_mysql2-1.0.0.colin.1 lib/fibered_mysql2/fibered_mysql2_connection_factory.rb