Sha256: cb91cc7252424fe5dd457f9fe2cbd957aad2c1c8c04055291ed84ad5d0e12a81

Contents?: true

Size: 821 Bytes

Versions: 1

Compression:

Stored size: 821 Bytes

Contents

require 'dependency_injection/alias_definition'
require 'dependency_injection/definition'
require 'dependency_injection/lazy_definition'

module DependencyInjection
  class Container
    attr_reader :definitions, :parameters

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

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

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

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

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dependency_injection-0.2.0 lib/dependency_injection/container.rb