Class Virtus::Attribute
In: lib/virtus/attribute/nullify_blank.rb
lib/virtus/attribute/collection.rb
lib/virtus/attribute/accessor.rb
lib/virtus/attribute/builder.rb
lib/virtus/attribute/hash.rb
lib/virtus/attribute/coercer.rb
lib/virtus/attribute/coercible.rb
lib/virtus/attribute/boolean.rb
lib/virtus/attribute/default_value.rb
lib/virtus/attribute/strict.rb
lib/virtus/attribute/lazy_default.rb
lib/virtus/attribute/embedded_value.rb
lib/virtus/attribute/default_value/from_symbol.rb
lib/virtus/attribute/default_value/from_clonable.rb
lib/virtus/attribute/default_value/from_callable.rb
lib/virtus/attribute.rb
Parent: Object

Attribute objects handle coercion and provide interface to hook into an attribute set instance that‘s included into a class or object

@example

  # non-strict mode
  attr = Virtus::Attribute.build(Integer)
  attr.coerce('1')
  # => 1

  # strict mode
  attr = Virtus::Attribute.build(Integer, :strict => true)
  attr.coerce('not really coercible')
  # => Virtus::CoercionError: Failed to coerce "fsafa" into Integer

Methods

Included Modules

::Equalizer

Classes and Modules

Module Virtus::Attribute::Accessor
Module Virtus::Attribute::Coercible
Module Virtus::Attribute::LazyDefault
Module Virtus::Attribute::NullifyBlank
Module Virtus::Attribute::Strict
Class Virtus::Attribute::Boolean
Class Virtus::Attribute::Builder
Class Virtus::Attribute::Coercer
Class Virtus::Attribute::Collection
Class Virtus::Attribute::DefaultValue
Class Virtus::Attribute::EmbeddedValue
Class Virtus::Attribute::Hash

Attributes

coercer  [R]  @api private
default_value  [R]  @api private
options  [R]  @api private
primitive  [R]  @api private
type  [R]  Return type of this attribute

@return [Axiom::Types::Type]

@api public

Public Class methods

@api private

Builds an attribute instance

@param [Class,Array,Hash,String,Symbol] type

  this can be an explicit class or an object from which virtus can infer
  the type

@param [to_hash] options

  optional extra options hash

@return [Attribute]

@api public

@see Virtus.coerce

@deprecated

@api public

@api private

Public Instance methods

Coerce the input into the expected type

@example

  attr = Virtus::Attribute.build(String)
  attr.coerce(:one) # => 'one'

@param [Object] input

@api public

Return if the attribute is coercible

@example

  attr = Virtus::Attribute.build(String, :coerce => true)
  attr.coercible? # => true

  attr = Virtus::Attribute.build(String, :coerce => false)
  attr.coercible? # => false

@return [Boolean]

@api public

@api private

@api private

Return if the attribute was already finalized

@example

  attr = Virtus::Attribute.build(String, :finalize => true)
  attr.finalized? # => true

  attr = Virtus::Attribute.build(String, :finalize => false)
  attr.finalized? # => false

@return [Boolean]

@api public

Return if the attribute has lazy default value evaluation

@example

  attr = Virtus::Attribute.build(String, :lazy => true)
  attr.lazy? # => true

  attr = Virtus::Attribute.build(String, :lazy => false)
  attr.lazy? # => false

@return [Boolean]

@api public

Return if the attribute is in the nullify blank coercion mode

@example

  attr = Virtus::Attribute.build(String, :nullify_blank => true)
  attr.nullify_blank? # => true

  attr = Virtus::Attribute.build(String, :nullify_blank => false)
  attr.nullify_blank? # => false

@return [Boolean]

@api public

@api private

Return a new attribute with the new name

@param [Symbol] name

@return [Attribute]

@api public

Return if the attribute is accepts nil values as valid coercion output

@example

  attr = Virtus::Attribute.build(String, :required => true)
  attr.required? # => true

  attr = Virtus::Attribute.build(String, :required => false)
  attr.required? # => false

@return [Boolean]

@api public

Return if the attribute is in the strict coercion mode

@example

  attr = Virtus::Attribute.build(String, :strict => true)
  attr.strict? # => true

  attr = Virtus::Attribute.build(String, :strict => false)
  attr.strict? # => false

@return [Boolean]

@api public

Return if the given value was coerced

@param [Object] value

@return [Boolean]

@api public

[Validate]