class Codependent::Injectable
Attributes
dependencies[R]
resolver[R]
state[R]
Public Class Methods
new(type, dependencies, state, resolver)
click to toggle source
# File lib/codependent/injectable.rb, line 3 def initialize(type, dependencies, state, resolver) @type = type @dependencies = dependencies @state = state @resolver = resolver @singleton_value = nil end
Public Instance Methods
depends_on?(dependency_id)
click to toggle source
# File lib/codependent/injectable.rb, line 13 def depends_on?(dependency_id) @dependencies.include?(dependency_id) end
instance?()
click to toggle source
# File lib/codependent/injectable.rb, line 21 def instance? @type == :instance end
singleton?()
click to toggle source
# File lib/codependent/injectable.rb, line 17 def singleton? @type == :singleton end
value(dependencies)
click to toggle source
# File lib/codependent/injectable.rb, line 25 def value(dependencies) singleton? ? singleton_value(dependencies) : instance_value(dependencies) end
Private Instance Methods
instance_value(dependencies)
click to toggle source
# File lib/codependent/injectable.rb, line 35 def instance_value(dependencies) resolver.new.(state, dependencies) end
singleton_value(dependencies)
click to toggle source
# File lib/codependent/injectable.rb, line 31 def singleton_value(dependencies) @singleton_value ||= instance_value(dependencies) end