Sha256: 668bace860a83b316d2fa9025459853f0734bebb67093b26be206fe031040dd6

Contents?: true

Size: 633 Bytes

Versions: 4

Compression:

Stored size: 633 Bytes

Contents

# frozen_string_literal: true

# @api private
# @since 0.5.0
class SmartCore::Container::MemoizedDependency < SmartCore::Container::Dependency
  # @param external_name [String]
  # @param dependency_definition [Proc]
  # @param options [Hash<Symbol,Any>]
  # @return [void]
  #
  # @todo option list
  # @see [SmartCore::Container::Dependency]
  #
  # @api private
  # @since 0.5.0
  def initialize(external_name, dependency_definition, **options)
    @memoized_call = nil
    super
  end

  # @return [Any]
  #
  # @api private
  # @since 0.5.0
  def call
    thread_safe { @memoized_call ||= dependency_definition.call }
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
smart_core-0.6.0 lib/smart_core/container/memoized_dependency.rb
smart_core-0.5.2 lib/smart_core/container/memoized_dependency.rb
smart_core-0.5.1 lib/smart_core/container/memoized_dependency.rb
smart_core-0.5.0 lib/smart_core/container/memoized_dependency.rb