Sha256: 426d0d22be3818a48c4f2bf6222c1759280ee5409e59294f2017b09e47f17d28

Contents?: true

Size: 1.83 KB

Versions: 3

Compression:

Stored size: 1.83 KB

Contents

module Lanes

    module DB
        extend self

        attr_accessor(:config_file)

        def establish_connection( env = ENV['RAILS_ENV'] || 'development')
            if ENV['DATABASE_URL']
                ::ActiveRecord::Base.establish_connection( ENV['DATABASE_URL'] )
            else
                config = YAML::load( IO.read( config_file || "config/database.yml" ) )
                ::ActiveRecord::Base.configurations = config
                ::ActiveRecord::Base.establish_connection( ::ActiveRecord::Base.configurations[ env ] )
            end
        end

        def load_seed
            path = Pathname.new("./db/seed.rb")
            load path if path.exist?
        end

        def configure_rake_environment
            ActiveRecord::Tasks::DatabaseTasks.seed_loader = Lanes::DB
            env = ENV['RAILS_ENV'] || 'development'
            Lanes::DB.config_file  ||= 'config/database.yml'
            ENV['SCHEMA']          ||= 'db/schema.sql'
            ENV['DB_STRUCTURE']    ||= 'db/schema.sql'
            ActiveRecord::Base.schema_format = :sql
            Lanes::DB.establish_connection( env )
            ActiveRecord::Tasks::DatabaseTasks.database_configuration = ActiveRecord::Base.configurations
            ActiveRecord::Tasks::DatabaseTasks.env = 'test'
            ActiveRecord::Tasks::DatabaseTasks.migrations_paths = 'db/migrate'
            ActiveRecord::Tasks::DatabaseTasks.current_config( :config => ActiveRecord::Base.configurations[ env ] )
        end


        private

        def migrations_dir
            ::ActiveRecord::Migrator.migrations_paths.first
        end

        def silence_activerecord(&block)
            old_logger = ::ActiveRecord::Base.logger
            ::ActiveRecord::Base.logger = nil
            yield if block_given?
            ::ActiveRecord::Base.logger = old_logger
        end
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lanes-0.1.2 lib/lanes/db.rb
lanes-0.1.0 lib/lanes/db.rb
lanes-0.0.8 lib/lanes/db.rb