Sha256: 1c9784d248ff5bfc225fce897f6fa6e33cc01553346a540db70d35faf8c614b4

Contents?: true

Size: 1.46 KB

Versions: 13

Compression:

Stored size: 1.46 KB

Contents

module RequestLogAnalyzer::Database::Connection

  def self.from_string(string)
    hash = {}
    if string =~ /^(?:\w+=(?:[^;])*;)*\w+=(?:[^;])*$/
      string.scan(/(\w+)=([^;]*);?/) { |variable, value| hash[variable.to_sym] = value }
    elsif string =~ /^(\w+)\:\/\/(?:(?:([^:]+)(?:\:([^:]+))?\@)?([\w\.-]+)\/)?([\w\:\-\.\/]+)$/
      hash[:adapter], hash[:username], hash[:password], hash[:host], hash[:database] = $1, $2, $3, $4, $5
      hash.delete_if { |k, v| v.nil? }
    end
    return hash.empty? ? nil : hash
  end

  def connect(connection_identifier)
    if connection_identifier.kind_of?(Hash)
      ActiveRecord::Base.establish_connection(connection_identifier)
    elsif connection_identifier == ':memory:'
      ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
    elsif connection_hash = RequestLogAnalyzer::Database::Connection.from_string(connection_identifier)
      ActiveRecord::Base.establish_connection(connection_hash)
    elsif connection_identifier.kind_of?(String) # Normal SQLite 3 database file
      ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => connection_identifier)
    elsif connection_identifier.nil?
      nil
    else
      raise "Cannot connect with this connection_identifier: #{connection_identifier.inspect}"
    end
  end

  def disconnect
    RequestLogAnalyzer::Database::Base.remove_connection
  end

  def connection
    RequestLogAnalyzer::Database::Base.connection
  end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
request-log-analyzer-1.13.1 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.13.0 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.11 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.10 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.9 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.8 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.7 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.6 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.5 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.4 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.3 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.2 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.12.1 lib/request_log_analyzer/database/connection.rb