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.3'

Instance Method Summary collapse

Instance Method Details

#dependency(name, &block) ⇒ Object



37
38
39
# File 'lib/unity/dependency_container.rb', line 37

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

#di(name) ⇒ name

@sg-ignore

Parameters:

  • name (Object)

Returns:

  • (name)


21
22
23
24
25
26
27
28
29
30
31
# File 'lib/unity/dependency_container.rb', line 21

def di(name)
  instances = Thread.current[:di_instances]
  return instances[name] if !instances.nil? && 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

#with_dependency(name) {|di(name)| ... } ⇒ Object

Yields:

  • (di(name))


33
34
35
# File 'lib/unity/dependency_container.rb', line 33

def with_dependency(name, &block)
  yield(di(name))
end