Sha256: 9baa3dd262b17bcadfc0ae49b0651bd05e2e8a9c40a633342628867f45871718
Contents?: true
Size: 760 Bytes
Versions: 2
Compression:
Stored size: 760 Bytes
Contents
module Econfig class Configuration def backends @backends ||= [] end def get(key) backend = backends.find { |backend| backend.get(key) } backend.get(key) if backend end def get!(key) get(key) or raise Econfig::NotFound, "configuration key '#{key}' is not set" end def set(key, value) backend = backends.find { |backend| backend.respond_to?(:set) } backend.set(key, value) if backend end def method_missing(name, *args) if name.to_s.end_with?("=") set(name.to_s.sub(/=$/, ""), args.first) elsif name.to_s.end_with?("!") get!(name.to_s.sub(/!$/, "")) else get(name.to_s) end end def respond_to?(*) true end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
econfig-0.1.1 | lib/econfig/configuration.rb |
econfig-0.1.0 | lib/econfig/configuration.rb |