class Dry::Core::Container::Item::Memoizable
@api public
Memoizable class to store and execute item calls
def call
-
(Dry::Core::Container::Item::Base)
-
def call memoize_mutex.synchronize do @memoized_item ||= item.call end end
def initialize(item, options = {})
-
(Dry::Core::Container::Item::Base)
-
Raises:
-
(Dry::Core::Container::Error)
-
Parameters:
-
options
(Hash
) -- -
item
(Mixed
) --
def initialize(item, options = {}) super raise_not_supported_error unless callable? @memoize_mutex = ::Mutex.new end
def raise_not_supported_error
- Private: -
def raise_not_supported_error raise ::Dry::Core::Container::Error, "Memoize only supported for a block or a proc" end