Sha256: cd0f22a01ab1793ce78b5d1e4ef779d8077159c1eb96ffc13d12f218e9058fc5
Contents?: true
Size: 969 Bytes
Versions: 1
Compression:
Stored size: 969 Bytes
Contents
module Figaro module ENV extend self def respond_to?(method, *) key, punctuation = extract_key_from_method(method) case punctuation when "!" then has_key?(key) || super when "?", nil then true else super end end private def method_missing(method, *) key, punctuation = extract_key_from_method(method) case punctuation when "!" then send(key) || missing_key!(key) when "?" then !!send(key) when nil then get_value(key) else super end end def extract_key_from_method(method) method.to_s.downcase.match(/^(.+?)([!?=])?$/).captures end def has_key?(key) ::ENV.any? { |k, _| k.downcase == key } end def missing_key!(key) raise MissingKey.new("Missing required Figaro configuration key #{key.inspect}.") end def get_value(key) _, value = ::ENV.detect { |k, _| k.downcase == key } value end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
figaro-1.0.0.rc1 | lib/figaro/env.rb |