class Shipper::Config
Public Class Methods
new(config_path: nil, env: nil)
click to toggle source
Calls superclass method
# File lib/shipper/config.rb, line 9 def initialize(config_path: nil, env: nil) config_path ||= "#{Dir.pwd}/shipper.yml" env ||= 'production' config = load_env_config(config_path, env) super(config) end
Private Instance Methods
check_env_available!(config, env)
click to toggle source
# File lib/shipper/config.rb, line 31 def check_env_available!(config, env) services = !config.dig('services', env).nil? hosts = !config.dig('hosts', env).nil? puts "Error: No host available for env '#{env}'" unless hosts puts "Error: No services available for env '#{env}'" unless services exit(0) if !hosts || !services end
load_env_config(config_path, env)
click to toggle source
# File lib/shipper/config.rb, line 19 def load_env_config(config_path, env) full_config = ::YAML.load_file(config_path) check_env_available!(full_config, env) hosts = full_config.delete('hosts') services = full_config.delete('services') full_config['host'] = hosts[env] full_config['services'] = services[env] full_config end