Class: Nenv::Environment
- Inherits:
-
Object
- Object
- Nenv::Environment
- Defined in:
- lib/nenv/environment.rb,
lib/nenv/environment/dumper.rb,
lib/nenv/environment/loader.rb
Direct Known Subclasses
Defined Under Namespace
Classes: AlreadyExistsError, Dumper, Error, Loader, MethodError
Instance Method Summary collapse
- #create_method(meth, &block) ⇒ Object
-
#initialize(namespace = nil) ⇒ Environment
constructor
A new instance of Environment.
Constructor Details
#initialize(namespace = nil) ⇒ Environment
Returns a new instance of Environment.
21 22 23 |
# File 'lib/nenv/environment.rb', line 21 def initialize(namespace = nil) @namespace = (namespace ? namespace.upcase : nil) end |
Instance Method Details
#create_method(meth, &block) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/nenv/environment.rb', line 25 def create_method(meth, &block) fail(AlreadyExistsError, meth) if respond_to?(meth) (class << self; self; end).send(:define_method, meth) do |*args| raw_value = args.first env_name = [@namespace, _sanitize(meth)].compact.join('_') callback = block if args.size == 1 ENV[env_name] = Dumper.new.dump(raw_value, &callback) else Loader.new(meth).load(ENV[env_name], &callback) end end end |