module SmartCore::Injection::Injector::InjectionSettings::IncompatabilityControl

@api private @since 0.1.0

Public Class Methods

prevent_incompatabilities!(injectable, imports, memoize, access, bind, from) click to toggle source

@param injectable [Class, Module] @param imports [Hash<String|Symbol,String>] @param memoize [Boolean] @param access [Symbol] @param bind [Symbol] @param from [NilClass, SmartCore::Container] @return [void]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings/incompatability_control.rb, line 17
def prevent_incompatabilities!(injectable, imports, memoize, access, bind, from)
  prevent_injectable_incompatabilities!(injectable)
  prevent_imports_incompatabilites!(imports)
  prevent_memoize_incompatabilites(memoize)
  prevent_access_incompatabilites(access)
  prevent_bind_incompatabilites(bind)
  prevent_from_incompatabilites(from)
end

Private Class Methods

prevent_access_incompatabilites(access) click to toggle source

@param access [Symbol] @return [void]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings/incompatability_control.rb, line 82
    def prevent_access_incompatabilites(access)
      unless SmartCore::Injection::Injector::InjectionSettings::ACCESS_MARKS.include?(access)
        raise(SmartCore::Injection::ArgumentError, <<~ERROR_MESSAGE)
        ERROR_MESSAGE
      end
    end
prevent_bind_incompatabilites(bind) click to toggle source

@param bind [Symbol] @return [void]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings/incompatability_control.rb, line 94
    def prevent_bind_incompatabilites(bind)
      unless SmartCore::Injection::Injector::InjectionSettings::BINDING_STRATEGIES.include?(bind)
        raise(SmartCore::Injection::ArgumentError, <<~ERROR_MESSAGE)
        ERROR_MESSAGE
      end
    end
prevent_from_incompatabilites(from) click to toggle source

@param from [NilClass, SmartCore::Container] @return [void]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings/incompatability_control.rb, line 106
    def prevent_from_incompatabilites(from)
      unless from.is_a?(NilClass) || from.is_a?(SmartCore::Container)
        raise(SmartCore::Injection::ArgumentError, <<~ERROR_MESSAGE)
        ERROR_MESSAGE
      end
    end
prevent_imports_incompatabilites!(imports) click to toggle source

@param imports [Hash<String|Symbol,String>] @return [void]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings/incompatability_control.rb, line 45
    def prevent_imports_incompatabilites!(imports)
      unless imports.is_a?(::Hash)
        raise(SmartCore::Injection::ArgumentError, <<~ERROR_MESSAGE)
          Incorrect import list (should be a type of Hash)
        ERROR_MESSAGE
      end

      unless imports.keys.all? { |key| key.is_a?(String) || key.is_a?(Symbol) }
        raise(SmartCore::Injection::ArgumentError, <<~ERROR_MESSAGE)
          Some method aliases are incorret (they should be a type of String or Symbol)
        ERROR_MESSAGE
      end

      unless imports.values.all? { |value| value.is_a?(String) }
        raise(SmartCore::Injection::ArgumentError, <<~ERROR_MESSAGE)
          Some injection pathes are incorrect (they should be a type of String)
        ERROR_MESSAGE
      end
    end
prevent_injectable_incompatabilities!(injectable) click to toggle source

@param injectable [Class, Module] @return [void]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings/incompatability_control.rb, line 33
    def prevent_injectable_incompatabilities!(injectable)
      unless injectable.is_a?(Class) || injectable.is_a?(Module)
        raise(SmartCore::Injection::ArgumentError, <<~ERROR_MESSAGE)
        ERROR_MESSAGE
      end
    end
prevent_memoize_incompatabilites(memoize) click to toggle source

@param memoize [Boolean] @return [void]

@api private @since 0.1.0

# File lib/smart_core/injection/injector/injection_settings/incompatability_control.rb, line 70
    def prevent_memoize_incompatabilites(memoize)
      unless memoize.is_a?(::TrueClass) || memoize.is_a?(::FalseClass)
        raise(SmartCore::Injection::ArgumentError, <<~ERROR_MESSAGE)
        ERROR_MESSAGE
      end
    end