Class: XML::MappingExtensions::TypesafeEnumNode
- Inherits:
-
NodeBase
- Object
- XML::Mapping::SingleAttributeNode
- NodeBase
- XML::MappingExtensions::TypesafeEnumNode
- Defined in:
- lib/xml/mapping_extensions/typesafe_enum_node.rb
Overview
Base class for single-attribute nodes with values that extend TypesafeEnum::Base
Usage: # for node class MyEnum typesafe_enum_node :my_enum, '@my_enum', default_value: nil, class: MyEnum
Instance Method Summary collapse
-
#initialize(*args) ⇒ TypesafeEnumNode
constructor
A new instance of TypesafeEnumNode.
- #to_value(xml_text) ⇒ Object
- #to_xml_text(enum_instance) ⇒ Object
Methods inherited from NodeBase
#extract_attr_value, #set_attr_value
Constructor Details
#initialize(*args) ⇒ TypesafeEnumNode
Returns a new instance of TypesafeEnumNode.
14 15 16 17 |
# File 'lib/xml/mapping_extensions/typesafe_enum_node.rb', line 14 def initialize(*args) super @enum_class = @options[:class] end |
Instance Method Details
#to_value(xml_text) ⇒ Object
19 20 21 22 23 |
# File 'lib/xml/mapping_extensions/typesafe_enum_node.rb', line 19 def to_value(xml_text) enum_instance = @enum_class.find_by_value(xml_text) enum_instance = @enum_class.find_by_value_str(xml_text) unless enum_instance enum_instance end |
#to_xml_text(enum_instance) ⇒ Object
25 26 27 |
# File 'lib/xml/mapping_extensions/typesafe_enum_node.rb', line 25 def to_xml_text(enum_instance) enum_instance.value.to_s if enum_instance end |