class Payload::Definition
Definition
for a dependency which can be resolved and decorated.
Used internally by {DefinitionList}. Use {Container#service} or {Container#factory}.
@api private
Attributes
decorators[R]
name[R]
resolver[R]
Public Class Methods
new(name, resolver, decorators = DecoratorChain.new)
click to toggle source
# File lib/payload/definition.rb, line 12 def initialize(name, resolver, decorators = DecoratorChain.new) @name = name @resolver = resolver @decorators = decorators end
Public Instance Methods
==(other)
click to toggle source
# File lib/payload/definition.rb, line 30 def ==(other) other.is_a?(Definition) && name == other.name && resolver == other.resolver && decorators == other.decorators end
decorate(decorator)
click to toggle source
# File lib/payload/definition.rb, line 22 def decorate(decorator) self.class.new name, resolver, decorators.add(decorator) end
resolve(container)
click to toggle source
# File lib/payload/definition.rb, line 18 def resolve(container) resolver.resolve(container, decorators) end
set(_)
click to toggle source
# File lib/payload/definition.rb, line 26 def set(_) raise DependencyAlreadyDefinedError, "#{name} is already defined" end