class StandaloneMigrations::Configurator

Public Class Methods

environments_config() { |proxy| ... } click to toggle source
# File lib/standalone_migrations/configurator.rb, line 26
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 21
def self.load_configurations
  @standalone_configs ||= Configurator.new.config
  @environments_config ||= YAML.load(ERB.new(File.read(@standalone_configs)).result).with_indifferent_access
end
new(options = {}) click to toggle source
# File lib/standalone_migrations/configurator.rb, line 31
def initialize(options = {})
  defaults = {
    :config       => "db/config.yml",
    :migrate_dir  => "db/migrate",
    :seeds        => "db/seeds.rb",
    :schema       => "db/schema.rb"
  }
  @options = load_from_file(defaults.dup) || defaults.merge(options)
  ENV['SCHEMA'] = ENV['SCHEMA'] || File.expand_path(schema)
end

Public Instance Methods

config() click to toggle source
# File lib/standalone_migrations/configurator.rb, line 42
def config
  @options[:config]
end
config_for(environment) click to toggle source
# File lib/standalone_migrations/configurator.rb, line 62
def config_for(environment)
  config_for_all[environment]
end
config_for_all() click to toggle source
# File lib/standalone_migrations/configurator.rb, line 58
def config_for_all
  Configurator.load_configurations.dup
end
migrate_dir() click to toggle source
# File lib/standalone_migrations/configurator.rb, line 46
def migrate_dir
  @options[:migrate_dir]
end
schema() click to toggle source
# File lib/standalone_migrations/configurator.rb, line 54
def schema
  @options[:schema]
end
seeds() click to toggle source
# File lib/standalone_migrations/configurator.rb, line 50
def seeds
  @options[:seeds]
end

Private Instance Methods

configuration_file() click to toggle source
# File lib/standalone_migrations/configurator.rb, line 68
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 76
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],
    :seeds        => (config["db"] || {})["seeds"] || defaults[:seeds],
    :schema       => (config["db"] || {})["schema"] || defaults[:schema]
  }
end