class Multibase::Config
Attributes
key[R]
settings[R]
Public Class Methods
new(key, settings)
click to toggle source
# File lib/multibase/config.rb, line 7 def initialize(key, settings) @key = key.to_s @settings = HashWithIndifferentAccess.new(settings) end
Public Instance Methods
apply(new_settings = settings)
click to toggle source
# File lib/multibase/config.rb, line 36 def apply(new_settings = settings) Rails.application.config.multibase.current_settings = new_settings ActiveRecord::Base.configurations = new_settings ActiveRecord::Tasks::DatabaseTasks.current_config = new_settings connection_dir_path = Multibase::Railtie.fullpath(key) migration_paths = [connection_dir_path.join('migrate')] ActiveRecord::Tasks::DatabaseTasks.migrations_paths = migration_paths ActiveRecord::Tasks::DatabaseTasks.db_dir = connection_dir_path ActiveRecord::Migrator.migrations_paths = migration_paths ActiveRecord::Base.establish_connection new_settings[Rails.env] end
current_settings()
click to toggle source
# File lib/multibase/config.rb, line 32 def current_settings settings[Rails.env] end
db_dir()
click to toggle source
# File lib/multibase/config.rb, line 16 def db_dir @db_dir ||= db_root.join(key).tap { |dir| FileUtils.mkdir_p(dir) } end
db_migrate()
click to toggle source
# File lib/multibase/config.rb, line 20 def db_migrate @db_migrate ||= db_dir.join('migrate').tap { |dir| FileUtils.mkdir_p dir } end
db_root()
click to toggle source
# File lib/multibase/config.rb, line 12 def db_root @db_root ||= Rails.root.join('db').tap { |dir| FileUtils.mkdir_p dir } end
db_seed()
click to toggle source
# File lib/multibase/config.rb, line 24 def db_seed @db_seed ||= db_dir.join('seed.rb') end
load_seed()
click to toggle source
# File lib/multibase/config.rb, line 28 def load_seed load(db_seed) if db_seed.exist? end