class RailsDbConfigResolver

Constants

VERSION

Public Class Methods

new(file, env_url, rails_env) click to toggle source
# File lib/rails_db_config_resolver.rb, line 10
def initialize(file, env_url, rails_env)
  @file = file
  @env_url = env_url
  @rails_env = rails_env
end

Public Instance Methods

parse() click to toggle source
# File lib/rails_db_config_resolver.rb, line 16
def parse
  merged_config.to_hash
end

Private Instance Methods

env_url_config() click to toggle source
# File lib/rails_db_config_resolver.rb, line 30
def env_url_config
  DatabaseConfig.from_url(@env_url)
end
file_config() click to toggle source
# File lib/rails_db_config_resolver.rb, line 34
def file_config
  DatabaseConfig.from_hash(file_config_hash)
end
file_config_hash() click to toggle source
# File lib/rails_db_config_resolver.rb, line 38
def file_config_hash
  symbolize_keys(YAML.load(rendered_yaml)[@rails_env])
end
merged_config() click to toggle source
# File lib/rails_db_config_resolver.rb, line 22
def merged_config
  if @env_url
    file_config.merge(env_url_config)
  else
    file_config
  end
end
raw_yaml() click to toggle source
# File lib/rails_db_config_resolver.rb, line 42
def raw_yaml
  File.read(@file)
end
rendered_yaml() click to toggle source
# File lib/rails_db_config_resolver.rb, line 46
def rendered_yaml
  ERB.new(raw_yaml).result
end
symbolize_keys(hash) click to toggle source
# File lib/rails_db_config_resolver.rb, line 50
def symbolize_keys(hash)
  Hash[hash.map { |k, v| [k.to_sym, v] }]
end