Class: Dry::Container::Item

Inherits:
Object
  • Object
show all
Defined in:
lib/dry/container/item.rb,
lib/dry/container/item/factory.rb,
lib/dry/container/item/callable.rb,
lib/dry/container/item/memoizable.rb

Overview

Base class to abstract Memoizable and Callable implementations

Direct Known Subclasses

Callable, Memoizable

Defined Under Namespace

Classes: Callable, Factory, Memoizable

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(item, options = {}) ⇒ Item

Returns a new instance of Item.



15
16
17
18
19
20
# File 'lib/dry/container/item.rb', line 15

def initialize(item, options = {})
  @item = item
  @options = {
    call: item.is_a?(::Proc) && item.parameters.empty?
  }.merge(options)
end

Instance Attribute Details

#itemMixed (readonly)

Returns the item to be solved later.

Returns:

  • (Mixed)

    the item to be solved later



9
10
11
# File 'lib/dry/container/item.rb', line 9

def item
  @item
end

#optionsHash (readonly)

Returns the options to memoize, call or no.

Returns:

  • (Hash)

    the options to memoize, call or no.



12
13
14
# File 'lib/dry/container/item.rb', line 12

def options
  @options
end

Instance Method Details

#callObject

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/dry/container/item.rb', line 23

def call
  raise NotImplementedError
end