class Deliv::Deploy::Config

Public Class Methods

new(environment, filename = nil) click to toggle source
# File lib/deliv/deploy/config.rb, line 4
def initialize(environment, filename = nil)
  @environment = environment
  load!(filename)
  verify_environments!
end

Public Instance Methods

method_missing(name, *_args, &_block) click to toggle source
# File lib/deliv/deploy/config.rb, line 10
def method_missing(name, *_args, &_block)
  OpenStruct.new(@config[@environment]).send(name)
end

Private Instance Methods

load!(filename = nil) click to toggle source
# File lib/deliv/deploy/config.rb, line 16
def load!(filename = nil)
  @filename = filename || Rails.root.join('.deploy.yml') if defined?(Rails)
  file = File.read(@filename)
  @config = YAML.safe_load(file).with_indifferent_access
end
verify_environment!(environment) click to toggle source
# File lib/deliv/deploy/config.rb, line 26
def verify_environment!(environment)
  raise ConfigError, "Missing `#{environment}` from `#{@filename}`" unless @config[environment].present?
end
verify_environments!() click to toggle source
# File lib/deliv/deploy/config.rb, line 22
def verify_environments!
  Deliv::Deploy.remote_environments.each { |environment| verify_environment!(environment) }
end