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.


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

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

Instance Method Details

#get(name) ⇒ Object

See Prius.get for documentation.



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

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

#load(name, env_var: nil, type: :string, required: true) ⇒ Object

See Prius.load for documentation.



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

def load(name, env_var: nil, type: :string, required: true)
  env_var = name.to_s.upcase if env_var.nil?
  @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