Sha256: 7436336ec858a5678b3b372790a1b8e6d0261621d390f53441416ab9ec5f4bbc

Contents?: true

Size: 1.67 KB

Versions: 4

Compression:

Stored size: 1.67 KB

Contents

# frozen_string_literal: true

# @api private
# @since 0.5.0
class SmartCore::Container::DependencyCompatability::Abstract
  class << self
    # @param dependency_root [Any]
    # @param dependency_name [String]
    # @return [void]
    #
    # @raise [SmartCore::Container::NamespaceOverlapError]
    #
    # @api private
    # @since 0.5.0
    def prevent_namespace_overlap!(dependency_root, dependency_name)
      raise(
        SmartCore::Container::NamespaceOverlapError,
        "Trying to overlap already registered :#{dependency_name} " \
        "namespace with :#{dependency_name} dependency!"
      ) if potential_namespace_overlap?(dependency_root, dependency_name)
    end

    # @param dependency_root [Any]
    # @param namespace_name [String]
    # @return [void]
    #
    # @raise [SmartCore::Container::DependencyOverlapError]
    #
    # @api private
    # @since 0.5.0
    def prevent_dependency_overlap!(dependency_root, namespace_name)
      raise(
        SmartCore::Container::DependencyOverlapError,
        "Trying to overlap already registered :#{namespace_name} " \
        "dependency with :#{namespace_name} namespace!"
      ) if potential_dependency_overlap?(dependency_root, namespace_name)
    end

    # @param dependency_root [Any]
    # @param dependency [Any]
    # @return [Boolean]
    #
    # @api private
    # @since 0.5.0
    def potential_namespace_overlap?(dependency_root, dependency)
      raise NoMethodError
    end

    # @param dependency_root [Any]
    # @param namespace [Any]
    # @return [Boolean]
    #
    # @api private
    # @since 0.5.0
    def potential_dependency_overlap?(dependency_root, namespace)
      raise NoMethodError
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

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