Class: Virtus::Attribute::Enum

Inherits:
Virtus::Attribute show all
Defined in:
lib/virtus/attribute/enum.rb

Overview

Type to be used inside attributes as enums.

Constant Summary

Constants included from TypeLookup

TypeLookup::TYPE_FORMAT

Class Attribute Summary collapse

Attributes inherited from Virtus::Attribute

#coercer, #default_value, #options, #primitive, #type

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Virtus::Attribute

build, build_coercer, coerce, #coerce, #coercible?, #define_accessor_methods, #finalize, #finalized?, #initialize, #lazy?, merge_options!, #nullify_blank?, #rename, #required?, #strict?

Methods included from TypeLookup

#determine_type, extended, #primitive

Methods included from Options

#accept_options, #accepted_options, #options

Constructor Details

This class inherits a constructor from Virtus::Attribute

Class Attribute Details

.valuesObject



13
14
15
# File 'lib/virtus/attribute/enum.rb', line 13

def values
  @values
end

Class Method Details

.[](*values) ⇒ Object

Parameters:

  • values (Array<Symbol>)


16
17
18
19
20
# File 'lib/virtus/attribute/enum.rb', line 16

def [](*values)
  klass = Class.new(self)
  klass.values = values
  klass
end

.build_typeObject

:nodoc:



23
24
25
# File 'lib/virtus/attribute/enum.rb', line 23

def build_type(*)
  Axiom::Types::Symbol
end

Instance Method Details

#coercion_error_messageObject



29
30
31
# File 'lib/virtus/attribute/enum.rb', line 29

def coercion_error_message
  "Enum (#{self.class.values.join(',')})"
end

#value_coerced?(value) ⇒ Boolean

Parameters:

  • value (Object)

Returns:



35
36
37
# File 'lib/virtus/attribute/enum.rb', line 35

def value_coerced?(value)
  self.class.values.include?(value)
end