class SmartCore::Initializer::Attribute::Parameters
@api private @since 0.1.0
Constants
- DEFAULT_AS
@return [NilClass]
@api private @since 0.4.0
- DEFAULT_CAST_BEHAVIOUR
@return [Boolean]
@api private @since 0.1.0
- DEFAULT_DYNAMIC_OPTIONS
@return [Hash]
@api private @since 0.1.0
- DEFAULT_FINALIZER
@return [Proc]
@api private @since 0.1.0
- DEFAULT_PRIVACY_MODE
@return [Symbol]
@api private @since 0.1.0
- DEFAULT_READ_ONLY
@return [Boolean]
@api private @since 0.4.0
- PRIVACY_MODES
@return [Hash<Symbol,Symbol>]
@api private @since 0.1.0
Attributes
@return [String, Symbol, NilClass]
@api private @since 0.4.0
@return [Boolean]
@api private @since 0.1.0
@return [Boolean]
@api private @since 0.1.0
@return [Hash<Symbol,Any>]
@api private @since 0.1.0
@return [SmartCore::Initializer::Attribute::Finalizer::AnonymousBlock] @return [SmartCore::Initializer::Attribute::Finalizer::InstanceMethod]
@api private @since 0.1.0
@return [Symbol]
@api private @since 0.1.0
@return [Symbol]
@api private @since 0.1.0
@return [Boolean]
@api private @since 0.4.0
@return [SmartCore::Initializer::TypeSystem::Interop]
@api private @since 0.1.0
@return [Class<SmartCore::Initilizer::TypeSystem::Interop>]
@api private @since 0.1.0
Public Class Methods
@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::AnonymousBlock/InstanceMethod] @param cast [Boolean] @param read_only
[Boolean] @param as [NilClass, Symbol, String] @param dynamic_options
[Hash<Symbol,Any>]
- :default - default value (Proc value will be called)
@return [void]
@api private @since 0.1.0 @version 0.4.0
# File lib/smart_core/initializer/attribute/parameters.rb, line 123 def initialize(name, type, type_system, privacy, finalizer, cast, read_only, as, dynamic_options) @name = name @type = type @type_system = type_system @privacy = privacy @finalizer = finalizer @cast = cast @read_only = read_only @as = as @dynamic_options = dynamic_options end
Public Instance Methods
@return [Any]
@raise [SmartCore::Initializer::NoDefaultValueError]
@api private @since 0.1.0
# File lib/smart_core/initializer/attribute/parameters.rb, line 149 def default default_value = dynamic_options.fetch(:default) do raise(SmartCore::Initializer::NoDefaultValueError, <<~ERROR_MESSAGE) Attribute #{name} has no default value ERROR_MESSAGE end default_value.is_a?(Proc) ? default_value.call : default_value end
@return [Boolean]
@api private @since 0.1.0
# File lib/smart_core/initializer/attribute/parameters.rb, line 139 def has_default? dynamic_options.key?(:default) end