class SmartCore::Injection::Injector::InjectionSettings

@api private @since 0.1.0

Constants

ACCESS_MARKS

@return [Array<Symbol>]

@api private @since 0.1.0

BINDING_STRATEGIES

@return [Array<Symbol>]

@api private @since 0.1.0

DEFAULT_ACCESS

@return [Symbol]

@api private @since 0.1.0

DEFAULT_BINDING_STRATEGY

@return [Symbol]

@api private @since 0.1.0

DEFAULT_IMPORTS

@return [Hash<String|Symbol,String>]

@api private @since 0.1.0

DEFAULT_MEMOIZE

@return [Boolean]

@api private @since 0.1.0

EMPTY_CONTAINER_DESTINATION

@return [NilClass]

@api private @since 0.1.0

Attributes

access[R]

@return [Symbol]

@api private @since 0.1.0

bind[R]

@return [Symbol]

@api private @since 0.1.0

container_set[R]

@return [SmartCore::Injection::Injector::ContainerSet]

@api private @since 0.1.0

from[R]

@return [NilClass, <SmartCore::Container>]

@api private @since 0.1.0

imports[R]

@return [Hash<String|Symbol,String>]

@api private @since 0.1.0

injectable[R]

@return [Class, Module]

@api private @since 0.1.0

memoize[R]

@return [Boolean]

@api private @since 0.1.0

Public Class Methods

new( injectable, container_set, imports, memoize: DEFAULT_MEMOIZE, access: DEFAULT_ACCESS, bind: DEFAULT_BINDING_STRATEGY, from: EMPTY_CONTAINER_DESTINATION ) click to toggle source

@param injectable [Class, Module] @param container_set [SmartCore::Injection::Injector::ContainerSet] @param import [Hash<String|Symbol,String>] @option memoize [Boolean] @option access [Symbol] @option bind [Symbol] @option from [NilClass, SmartCore::Container] @return [void]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings.rb, line 103
def initialize(
  injectable,
  container_set,
  imports,
  memoize: DEFAULT_MEMOIZE,
  access: DEFAULT_ACCESS,
  bind: DEFAULT_BINDING_STRATEGY,
  from: EMPTY_CONTAINER_DESTINATION
)
  IncompatabilityControl.prevent_incompatabilities!(
    injectable,
    imports,
    memoize,
    access,
    bind,
    from
  )

  @injectable = injectable
  @container_set = container_set
  @imports = imports
  @memoize = memoize
  @access = access
  @bind = bind
  @from = from
end

Public Instance Methods

bind_dynamic?() click to toggle source

@return [Boolean]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings.rb, line 150
def bind_dynamic?
  bind == :dynamic
end
bind_static?() click to toggle source

@return [Boolean]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings.rb, line 158
def bind_static?
  bind == :static
end
class_level_injectable() click to toggle source

@return [Class]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings.rb, line 142
def class_level_injectable
  class << injectable; self; end
end
each_import(&block) click to toggle source

@param block [Block] @yield [import_key, import_path] @yieldparam import_key [String, Symbol] @yieldparam import_path [String] @return [Enumerable]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings.rb, line 170
def each_import(&block)
  block_given? ? imports.each_pair(&block) : imports.each_pair
end
instance_level_injectable() click to toggle source

@return [Class, Module]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings.rb, line 134
def instance_level_injectable
  injectable
end