class SmartCore::Initializer::TypeSet

@api private @since 0.5.0

Attributes

types[R]

@return [Hash<Symbol,SmartCore::Initializer::Type>]

@api private @since 0.5.0

Public Class Methods

new() click to toggle source

@return [void]

@api private @since 0.5.0

# File lib/smart_core/initializer/type_set.rb, line 10
def initialize
  @types = {}
end

Public Instance Methods

has_type?(name) click to toggle source

@param name [String, Symbol] @return [Boolean]

@api private @since 0.5.0

# File lib/smart_core/initializer/type_set.rb, line 19
def has_type?(name)
  types.key?(name)
end
register(name, checker) click to toggle source

@param name [String, Symbol] @param checker [Proc] @return [void]

@api private @since 0.5.0

# File lib/smart_core/initializer/type_set.rb, line 29
def register(name, checker)
  type = SmartCore::Initializer::Type.new(name, checker)
  types[type.name] = type
end
resolve(name) click to toggle source

@param name [String, Symbol] @return [SmartCore::Initializer::Type]

@api private @since 0.5.0

# File lib/smart_core/initializer/type_set.rb, line 39
def resolve(name)
  types.fetch(name.to_sym)
rescue KeyError
  raise SmartCore::Initializer::UnregisteredTypeError, "type :#{name} is not registered!"
end