class Corindon::DependencyInjection::ParameterBag

Attributes

bag[R]

@return [Hash{String => Object}]

Public Class Methods

new(bag = {}) click to toggle source

@param [Hash{String => Object}] bag

# File lib/corindon/dependency_injection/parameter_bag.rb, line 10
def initialize(bag = {})
  @bag = bag
end

Public Instance Methods

get(key) click to toggle source

@param [Class, String, Token::ParameterToken] key @return [Object]

# File lib/corindon/dependency_injection/parameter_bag.rb, line 22
def get(key)
  @bag.fetch(to_key(key))
end
has?(key) click to toggle source

@param [Class, String, Token::ParameterToken] key @return [Boolean]

# File lib/corindon/dependency_injection/parameter_bag.rb, line 16
def has?(key)
  @bag.key?(to_key(key))
end
set(key, value) click to toggle source

@param [Class, String, Token::ParameterToken] key @param [Object] value

# File lib/corindon/dependency_injection/parameter_bag.rb, line 28
def set(key, value)
  @bag[to_key(key)] = value
end

Private Instance Methods

to_key(keylike) click to toggle source
# File lib/corindon/dependency_injection/parameter_bag.rb, line 34
def to_key(keylike)
  if keylike.is_a?(Class)
    keylike.name
  elsif keylike.is_a?(Token::ParameterToken)
    keylike.key
  elsif keylike.is_a?(String)
    keylike
  else
    raise StandardError.new("#{keylike} is not a valid key (objects of class #{keylike.class.name} are not handled.")
  end
end