Sha256: 07137dc57d3d910d006f6709b3bbca2ac1a78f563c88b8e944218bfcc15b003a
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
module Munge class Config def initialize(**configs) @configs = configs end def [](key) sym_key = key.to_sym if @configs.key?(sym_key) @configs[sym_key] else raise Errors::ConfigKeyNotFound, sym_key end end def []=(key, value) @configs[key.to_sym] = value end def key?(key) @configs.key?(key) end def method_missing(method_name, *arguments) if setter_fn?(method_name) self[key_from_setter(method_name)] = arguments.first elsif key?(method_name) self[method_name] else raise Errors::ConfigKeyNotFound, method_name end end def respond_to_missing?(method_name, include_private = false) if setter_fn?(method_name) true elsif key?(method_name) true else super end end private def setter_fn?(method_name) method_name.to_s.end_with?("=") end def key_from_setter(method_name) method_name.to_s.sub(/=$/, "").to_sym end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
munge-0.18.0 | lib/munge/config.rb |