class SmartCore::Initializer::Attribute

@api private @since 0.1.0

Attributes

parameters[R]

@return [SmartCore::Initializer::Attribute::Parameters]

@api private @since 0.1.0

Public Class Methods

new(name, type, type_system, privacy, finalizer, cast, read_only, as, dynamic_options) click to toggle source

@param name [Symbol] @param type [SmartCore::Initializer::TypeSystem::Interop] @param type_system [Class<SmartCore::Initializer::TypeSystem::Interop>] @param privacy [Symbol] @param finalizer [SmartCore::Initializer::Attribute::Finalizer::AnonymousBlock/InstanceMethod] @param cast [Boolean] @param read_only [Boolean] @param as [String, Symbol, NilClass] @param dynamic_options [Hash<Symbol,Any>] @return [void]

@api private @since 0.1.0

# File lib/smart_core/initializer/attribute.rb, line 87
def initialize(name, type, type_system, privacy, finalizer, cast, read_only, as, dynamic_options)
  @parameters = SmartCore::Initializer::Attribute::Parameters.new(
    name, type, type_system, privacy, finalizer, cast, read_only, as, dynamic_options
  )
end

Public Instance Methods

dup() click to toggle source

@return [SmartCore::Initializer::Attribute]

@api private @since 0.1.0 rubocop:disable Metrics/AbcSize

# File lib/smart_core/initializer/attribute.rb, line 111
def dup
  self.class.new(
    parameters.name.dup,
    parameters.type,
    parameters.type_system,
    parameters.privacy,
    parameters.finalizer.dup,
    parameters.cast,
    parameters.read_only,
    parameters.as,
    parameters.dynamic_options.dup
  )
end
validate!(value) click to toggle source

@param value [Any] @return [void]

@api private @since 0.5.1

# File lib/smart_core/initializer/attribute.rb, line 98
def validate!(value)
  type.validate!(value)
rescue => error
  raise SmartCore::Initializer::IncorrectTypeError,
        "Validation of attribute '#{name}' (#{type.identifier}, got #{value.class}) failed: " \
        "#{error.message}"
end