Sha256: 13b37cc64e0c20c0f7972b67e47566b279e4b092a389cde0c4934047b635832f

Contents?: true

Size: 1.53 KB

Versions: 16

Compression:

Stored size: 1.53 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)
      RequestLogAnalyzer::Database::Base.establish_connection(connection_identifier)
    elsif connection_identifier == ':memory:'
      RequestLogAnalyzer::Database::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
    elsif connection_hash = RequestLogAnalyzer::Database::Connection.from_string(connection_identifier)
      RequestLogAnalyzer::Database::Base.establish_connection(connection_hash)
    elsif connection_identifier.kind_of?(String) # Normal SQLite 3 database file
      RequestLogAnalyzer::Database::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

16 entries across 16 versions & 2 rubygems

Version Path
wvanbergen-request-log-analyzer-1.3.0 lib/request_log_analyzer/database/connection.rb
wvanbergen-request-log-analyzer-1.3.1 lib/request_log_analyzer/database/connection.rb
wvanbergen-request-log-analyzer-1.3.2 lib/request_log_analyzer/database/connection.rb
wvanbergen-request-log-analyzer-1.3.3 lib/request_log_analyzer/database/connection.rb
wvanbergen-request-log-analyzer-1.3.4 lib/request_log_analyzer/database/connection.rb
wvanbergen-request-log-analyzer-1.3.5 lib/request_log_analyzer/database/connection.rb
wvanbergen-request-log-analyzer-1.3.6 lib/request_log_analyzer/database/connection.rb
wvanbergen-request-log-analyzer-1.3.7 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.3.7 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.3.6 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.3.5 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.3.4 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.3.3 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.3.2 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.3.1 lib/request_log_analyzer/database/connection.rb
request-log-analyzer-1.3.0 lib/request_log_analyzer/database/connection.rb