Class: Multibase::Config
- Inherits:
-
Object
- Object
- Multibase::Config
- Defined in:
- lib/multibase/config.rb
Instance Attribute Summary collapse
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#settings ⇒ Object
readonly
Returns the value of attribute settings.
Instance Method Summary collapse
- #apply(new_settings = settings) ⇒ Object
- #current_settings ⇒ Object
- #db_dir ⇒ Object
- #db_migrate ⇒ Object
- #db_root ⇒ Object
- #db_seed ⇒ Object
-
#initialize(key, settings) ⇒ Config
constructor
A new instance of Config.
- #load_seed ⇒ Object
Constructor Details
#initialize(key, settings) ⇒ Config
Returns a new instance of Config.
7 8 9 10 |
# File 'lib/multibase/config.rb', line 7 def initialize(key, settings) @key = key.to_s @settings = HashWithIndifferentAccess.new(settings) end |
Instance Attribute Details
#key ⇒ Object (readonly)
Returns the value of attribute key.
3 4 5 |
# File 'lib/multibase/config.rb', line 3 def key @key end |
#settings ⇒ Object (readonly)
Returns the value of attribute settings.
5 6 7 |
# File 'lib/multibase/config.rb', line 5 def settings @settings end |
Instance Method Details
#apply(new_settings = settings) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 |
# 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 ⇒ Object
32 33 34 |
# File 'lib/multibase/config.rb', line 32 def current_settings settings[Rails.env] end |
#db_dir ⇒ Object
16 17 18 |
# 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 ⇒ Object
20 21 22 |
# 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 ⇒ Object
12 13 14 |
# 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 ⇒ Object
24 25 26 |
# File 'lib/multibase/config.rb', line 24 def db_seed @db_seed ||= db_dir.join('seed.rb') end |
#load_seed ⇒ Object
28 29 30 |
# File 'lib/multibase/config.rb', line 28 def load_seed load(db_seed) if db_seed.exist? end |