class Duffel

Constants

VERSION

Public Class Methods

method_missing(method, *args, &block) click to toggle source
# File lib/duffel.rb, line 6
def method_missing(method, *args, &block)
  define_singleton_method(method) do |options={}|
    options ||= {}
    return_value = options.fetch(:fallback, fetch_default)
    fallback = format_return_value(return_value)

    env_name = method.to_s.upcase
    ENV.fetch(env_name, &fallback)
  end
  self.send(method, args.first)
end

Protected Class Methods

fetch_default() click to toggle source
# File lib/duffel.rb, line 28
def fetch_default
  lambda do |key|
    raise KeyError.new("key not found: #{key}")
  end
end
format_return_value(value) click to toggle source
# File lib/duffel.rb, line 20
def format_return_value(value)
  if value.is_a?(Proc)
    value
  else
    lambda { |_key| value }
  end
end