module Hippo::DB

Attributes

config_file[RW]

Public Instance Methods

configure_rake_environment() click to toggle source
# File lib/hippo/db.rb, line 24
def configure_rake_environment
    require_relative "./db/fake_rails"
    require_relative './db/migrations'
    ActiveRecord::Tasks::DatabaseTasks.seed_loader = Hippo::DB
    default_schema = Extensions.controlling.root_path.join("db","schema.rb")
    ENV['SCHEMA']          ||= default_schema.to_s
    ENV['DB_STRUCTURE']    ||= default_schema.to_s
    ActiveRecord::Base.dump_schema_after_migration = !Hippo.env.production?
    Hippo::DB.establish_connection
    ActiveRecord::Tasks::DatabaseTasks.database_configuration = ActiveRecord::Base.configurations
    env=Hippo.config.environment.to_s
    ActiveRecord::Tasks::DatabaseTasks.env = env
    ActiveRecord::Tasks::DatabaseTasks.migrations_paths = 'db/migrate'
    ActiveRecord::Tasks::DatabaseTasks.current_config(
        config: ActiveRecord::Base.configurations[env]
    )
end
establish_connection(env=Hippo.config.environment) click to toggle source
# File lib/hippo/db.rb, line 8
def establish_connection(env=Hippo.config.environment)
    if ENV['DATABASE_URL']
        ::ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
    else
        file = config_file || Extensions.controlling.root_path.join("config","database.yml")
        config = YAML::load( IO.read(file) )
        ::ActiveRecord::Base.configurations = config
        ::ActiveRecord::Base.establish_connection(::ActiveRecord::Base.configurations[env.to_s])
    end
end
load_seed() click to toggle source
# File lib/hippo/db.rb, line 19
def load_seed
    path = Pathname.new("./db/seed.rb")
    load path if path.exist?
end

Private Instance Methods

migrations_dir() click to toggle source
# File lib/hippo/db.rb, line 44
def migrations_dir
    ::ActiveRecord::Migrator.migrations_paths.first
end
silence_activerecord() { || ... } click to toggle source
# File lib/hippo/db.rb, line 48
def silence_activerecord
    old_logger = ::ActiveRecord::Base.logger
    ::ActiveRecord::Base.logger = nil
    yield if block_given?
    ::ActiveRecord::Base.logger = old_logger
end