class SmartCore::Initializer::TypeSystem::SmartTypes::AbstractFactory

@api private @since 0.1.0

Public Class Methods

build_cast_operation(type) click to toggle source

@param type [SmartCore::Types::Primitive] @return [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Cast]

@api private @since 0.1.0

# File lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb, line 65
def build_cast_operation(type)
  SmartTypes::Operation::Cast.new(type)
end
build_identifier(type) click to toggle source

@param type [Any] @return [String]

@api private @since 0.5.1

# File lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb, line 30
def build_identifier(type)
  type.name
end
build_interop(identifier, valid_op, validate_op, cast_op) click to toggle source

@param identifier [String] @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Valid] @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Validate] @param valid_op [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Cast] @return [SmartCore::Initializer::TypeSystem::SmartTypes]

@api private @since 0.1.0 @version 0.5.1

# File lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb, line 78
def build_interop(identifier, valid_op, validate_op, cast_op)
  SmartTypes.new(identifier, valid_op, validate_op, cast_op)
end
build_valid_operation(type) click to toggle source

@param type [SmartCore::Types::Primitive] @return [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Valid]

@api private @since 0.1.0

# File lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb, line 39
def build_valid_operation(type)
  SmartTypes::Operation::Valid.new(type)
end
build_validate_operation(type) click to toggle source

@param type [SmartCore::Types::Primitive] @return [SmartCore::Initializer::TypeSystem::SmartTypes::Operation::Validate]

@api private @since 0.1.0

# File lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb, line 56
def build_validate_operation(type)
  SmartTypes::Operation::Validate.new(type)
end
generic_type_object() click to toggle source

@return [SmartCore::Types::Value::Any]

@api private @since 0.1.0

# File lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb, line 47
def generic_type_object
  SmartCore::Types::Value::Any
end
prevent_incompatible_type!(type) click to toggle source

@param type [SmartCore::Types::Primitive] @return [void]

@raise [SmartCore::Initializer::IncorrectTypeObjectError]

@api private @since 0.1.0

# File lib/smart_core/initializer/type_system/smart_types/abstract_factory.rb, line 15
def prevent_incompatible_type!(type)
  unless type.is_a?(SmartCore::Types::Primitive)
    raise(
      SmartCore::Initializer::IncorrectTypeObjectError,
      'Incorrect SmartCore::Types primitive ' \
      '(type object should be a type of SmartCore::Types::Primitive)'
    )
  end
end