class GschoolDatabaseConnection::DatabaseConnection

Attributes

connection[R]

Public Class Methods

clear!() click to toggle source
# File lib/gschool_database_connection/database_connection.rb, line 12
def self.clear!
  @@_connection and @@_connection.close
  @@_connection = nil
end
establish(environment = "development", config_file_path="config/database.yml") click to toggle source
# File lib/gschool_database_connection/database_connection.rb, line 8
def self.establish(environment = "development", config_file_path="config/database.yml")
  @@_connection ||= new(environment, config_file_path)
end

Private Class Methods

new(environment, config_file_path) click to toggle source
# File lib/gschool_database_connection/database_connection.rb, line 17
def initialize(environment, config_file_path)
  if ENV["DATABASE_URL"]
    @connection = establish_from_uri(ENV["DATABASE_URL"])
  else
    file = File.read(config_file_path)
    config = YAML.load(file)[environment]
    @connection = establish_from_config(config)
  end
end

Public Instance Methods

close() click to toggle source
# File lib/gschool_database_connection/database_connection.rb, line 31
def close
  connection.close
end
sql(sql_string) click to toggle source
# File lib/gschool_database_connection/database_connection.rb, line 27
def sql(sql_string)
  connection.exec(sql_string).to_a
end

Private Instance Methods

establish_from_config(config) click to toggle source
# File lib/gschool_database_connection/database_connection.rb, line 38
def establish_from_config(config)
  ActiveRecord::Base.establish_connection(
    :adapter => config['adapter'],
    :database => config['database'],
    :username => config['username'],
    :password => config['password']
  ).connection.raw_connection
end
establish_from_uri(uri) click to toggle source
# File lib/gschool_database_connection/database_connection.rb, line 47
def establish_from_uri(uri)
  ActiveRecord::Base.establish_connection(uri).connection.raw_connection
end