Module: Unity::DependencyContainer

Defined in:
lib/unity/dependency_container.rb,
lib/unity/dependency_container/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
'1.1.0'

Instance Method Summary collapse

Instance Method Details

#dependency(name, &block) ⇒ Object



28
29
30
# File 'lib/unity/dependency_container.rb', line 28

def dependency(name, &block)
  di_container_repository[name] = block
end

#di(name) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/unity/dependency_container.rb', line 17

def di(name)
  return di_instances[name] if !di_instances.nil? && di_instances.key?(name)

  Thread.current[:di_instances] ||= {}

  unless di_container_repository.key?(name)
    raise Error, "Dependency '#{name}' does not exists"
  end
  Thread.current[:di_instances][name] = di_container_repository[name].call
end

#di_container_repositoryObject



9
10
11
# File 'lib/unity/dependency_container.rb', line 9

def di_container_repository
  @di_container_repository ||= {}
end

#di_instancesObject



13
14
15
# File 'lib/unity/dependency_container.rb', line 13

def di_instances
  Thread.current[:di_instances]
end