Class: Prius::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/prius/registry.rb

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ Registry

Initialise a Registry.

env - A Hash used as a source for environment variables. Usually, ENV

will be used.


11
12
13
14
# File 'lib/prius/registry.rb', line 11

def initialize(env)
  @env = env
  @registry = {}
end

Instance Method Details

#get(name) ⇒ Object

See Prius.get for documentation.



31
32
33
34
35
# File 'lib/prius/registry.rb', line 31

def get(name)
  @registry.fetch(name)
rescue KeyError
  raise UndeclaredNameError, "config value '#{name}' never loaded"
end

#load(name, options = {}) ⇒ Object

See Prius.load for documentation.



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/prius/registry.rb', line 17

def load(name, options = {})
  env_var = options.fetch(:env_var, name.to_s.upcase)
  type = options.fetch(:type, :string)
  required = options.fetch(:required, true)
  @registry[name] = case type
                    when :string then load_string(env_var, required)
                    when :int    then load_int(env_var, required)
                    when :bool   then load_bool(env_var, required)
                    when :date   then load_date(env_var, required)
                    else raise ArgumentError, "Invalid type #{type}"
                    end
end