class StandaloneMigrations::Configurator
Public Class Methods
environments_config() { |proxy| ... }
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 29 def self.environments_config proxy = InternalConfigurationsProxy.new(load_configurations) yield(proxy) if block_given? end
load_configurations()
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 23 def self.load_configurations @env_config ||= Rails.application.config.database_configuration ActiveRecord::Base.configurations = @env_config @env_config end
new(options = {})
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 34 def initialize(options = {}) default_schema = ENV['SCHEMA'] || ActiveRecord::Tasks::DatabaseTasks.schema_file(ActiveRecord::Base.schema_format) defaults = { :config => "db/config.yml", :migrate_dir => "db/migrate", :root => Pathname.pwd, :seeds => "db/seeds.rb", :schema => default_schema } @options = load_from_file(defaults.dup) || defaults.merge(options) ENV['SCHEMA'] = schema Rails.application.config.root = root Rails.application.config.paths["config/database"] = config Rails.application.config.paths["db/migrate"] = migrate_dir Rails.application.config.paths["db/seeds.rb"] = seeds end
Public Instance Methods
config()
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 52 def config @options[:config] end
config_for(environment)
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 76 def config_for(environment) config_for_all[environment.to_s] end
config_for_all()
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 72 def config_for_all Configurator.load_configurations.dup end
migrate_dir()
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 56 def migrate_dir @options[:migrate_dir] end
root()
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 60 def root @options[:root] end
schema()
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 68 def schema @options[:schema] end
seeds()
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 64 def seeds @options[:seeds] end
Private Instance Methods
configuration_file()
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 82 def configuration_file if !ENV['DATABASE'] ".standalone_migrations" else ".#{ENV['DATABASE']}.standalone_migrations" end end
load_from_file(defaults)
click to toggle source
# File lib/standalone_migrations/configurator.rb, line 90 def load_from_file(defaults) return nil unless File.exists? configuration_file config = YAML.load( ERB.new(IO.read(configuration_file)).result ) { :config => config["config"] ? config["config"]["database"] : defaults[:config], :migrate_dir => (config["db"] || {})["migrate"] || defaults[:migrate_dir], :root => config["root"] || defaults[:root], :seeds => (config["db"] || {})["seeds"] || defaults[:seeds], :schema => (config["db"] || {})["schema"] || defaults[:schema] } end