module SurveyorWarehouse::DB

Public Class Methods

adapter() click to toggle source
# File lib/surveyor_warehouse/db.rb, line 29
def self.adapter
  @adapter ||=
    if 'postgresql' == configurations['adapter']
      'postgres'
    else
      raise "Unsupported database adapter: #{db['adapter']}"
    end
end
columns(tablename) click to toggle source

Columns are returned a hash like below:

{ :column1 => [:primary_key], :column2 => [:not_null] }

# File lib/surveyor_warehouse/db.rb, line 42
def self.columns(tablename)
  connection.schema(tablename.to_sym).inject({}) do |attrs, (cname, cattrs)| 
    attrs.merge(cname => cattrs)
  end
end
configurations() click to toggle source
# File lib/surveyor_warehouse/db.rb, line 13
def self.configurations
  @configurations ||= ::ActiveRecord::Base.configurations[Rails.env]
end
connection() click to toggle source
# File lib/surveyor_warehouse/db.rb, line 3
def self.connection
  @connection ||= Sequel.connect(
      :adapter=> adapter, 
      :host=>'localhost', 
      :database=> database, 
      :user=> username, 
      :password=> password).extension(:pg_array)
  @connection.extend(SequelExtension::Connection)
end
database() click to toggle source
# File lib/surveyor_warehouse/db.rb, line 25
def self.database
  @database ||= configurations['database']
end
password() click to toggle source
# File lib/surveyor_warehouse/db.rb, line 21
def self.password
  @password ||= configurations['password']
end
username() click to toggle source
# File lib/surveyor_warehouse/db.rb, line 17
def self.username
  @username ||= configurations['username']
end