Class: Wrest::Components::Mutators::XmlMiniTypeCaster
- Defined in:
- lib/wrest/components/mutators/xml_mini_type_caster.rb
Overview
This mutator undertands how do type casting using the type data embedded in a hash created by deserialising an xml using ActiveSupport::XmlMini
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
inherited, #initialize, #mutate
Constructor Details
This class inherits a constructor from Wrest::Components::Mutators::Base
Instance Method Details
#do_mutate(tuple) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/wrest/components/mutators/xml_mini_type_caster.rb', line 18 def do_mutate(tuple) out_key, in_value = tuple case in_value when Hash if in_value['nil'] == 'true' out_value = nil elsif in_value.key?('type') caster = ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING[in_value['type']] out_value = caster ? caster.call(in_value['__content__']) : in_value elsif in_value.key?('__content__') out_value = in_value['__content__'] else out_value = in_value.mutate_using(self) end when Array out_value = in_value.collect{|hash| hash.mutate_using(self)} else out_value = in_value end [out_key, out_value] end |