class ShadowDbCredentials

Constants

VERSION

Public Class Methods

new(credentials_dir) click to toggle source
# File lib/shadow_db_credentials/shadow_db_credentials.rb, line 6
def initialize credentials_dir
  @credentials_dir = credentials_dir
end

Public Instance Methods

process_configuration(configurations, rails_env) click to toggle source
# File lib/shadow_db_credentials/shadow_db_credentials.rb, line 30
def process_configuration configurations, rails_env
  new_configurations = configurations.clone

  config = configurations[rails_env]

  new_configurations[rails_env] = process_credentials(config)

  new_configurations
end
process_configurations(configurations) click to toggle source
# File lib/shadow_db_credentials/shadow_db_credentials.rb, line 20
def process_configurations configurations
  new_configurations = {}

  configurations.each do |name, config|
    new_configurations[name] = process_credentials(config)
  end

  new_configurations.with_indifferent_access
end
retrieve_configuration(rails_env, source='config/database.yml') click to toggle source
# File lib/shadow_db_credentials/shadow_db_credentials.rb, line 10
def retrieve_configuration rails_env, source='config/database.yml'
  file = source.kind_of?(String) ? File.open(source) : source

  template = ERB.new file.read

  config = YAML.load(template.result(binding)).with_indifferent_access

  process_credentials(config[rails_env])
end

Private Instance Methods

process_credentials(config) click to toggle source
# File lib/shadow_db_credentials/shadow_db_credentials.rb, line 42
def process_credentials config
  if config[:credentials]
    credentials = config.delete(:credentials)

    file_name = "#{@credentials_dir}/#{credentials}"

    if File.exist? file_name
      config.merge!(YAML.load_file(file_name).with_indifferent_access)
    else
      puts "Missing credentials file: #{file_name}."
    end
  end

  config
end