Class: DependencyInjection::Container

Inherits:
Object
  • Object
show all
Defined in:
lib/dependency_injection/container.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeContainer

Returns a new instance of Container.



9
10
11
12
# File 'lib/dependency_injection/container.rb', line 9

def initialize
  @definitions = {}
  @parameters  = {}
end

Instance Attribute Details

#definitionsObject (readonly)

Returns the value of attribute definitions.



7
8
9
# File 'lib/dependency_injection/container.rb', line 7

def definitions
  @definitions
end

#parametersObject (readonly)

Returns the value of attribute parameters.



7
8
9
# File 'lib/dependency_injection/container.rb', line 7

def parameters
  @parameters
end

Instance Method Details

#add_parameter(name, value) ⇒ Object



14
15
16
# File 'lib/dependency_injection/container.rb', line 14

def add_parameter(name, value)
  @parameters[name] = value
end

#get(name) ⇒ Object



18
19
20
21
22
# File 'lib/dependency_injection/container.rb', line 18

def get(name)
  if (definition = @definitions[name])
    definition.object
  end
end

#register(name, klass_name, lazy = false) ⇒ Object



24
25
26
27
# File 'lib/dependency_injection/container.rb', line 24

def register(name, klass_name, lazy=false)
  definition = lazy ? LazyDefinition.new(klass_name, self) : Definition.new(klass_name, self)
  @definitions[name] = definition
end

#register_alias(name, alias_definition_name) ⇒ Object



29
30
31
# File 'lib/dependency_injection/container.rb', line 29

def register_alias(name, alias_definition_name)
  @definitions[name] = AliasDefinition.new(alias_definition_name, self)
end