Module: Wrest::Components::Mutators
- Defined in:
- lib/wrest/components/mutators.rb,
lib/wrest/components/mutators/base.rb,
lib/wrest/components/mutators/xml_type_caster.rb,
lib/wrest/components/mutators/camel_to_snake_case.rb
Overview
Converts the key to snake case
Example:
Mutators::CamelToSnakeCase.new.mutate(['Spirit-Sword', 'true']) # => ['spirit_sword', 'true']**
Defined Under Namespace
Classes: Base, CamelToSnakeCase, XmlTypeCaster
Class Method Summary collapse
-
.chain(*mutator_keys) ⇒ Object
Makes referencing and chaining mutators easy.
-
.registry ⇒ Object
All sublasses of Mutators::Base are automatically registered here by underscored, symbolised class name.
Class Method Details
.chain(*mutator_keys) ⇒ Object
Makes referencing and chaining mutators easy.
Example:
Mutators.chain(:xml_type_caster, :camel_to_snake_case)
is equivalent to
Wrest::Components::Mutators::XmlTypeCaster.new(Wrest::Components::Mutators::CamelToSnakeCase.new)
30 31 32 33 34 35 |
# File 'lib/wrest/components/mutators.rb', line 30 def self.chain(*mutator_keys) mutator_key = mutator_keys.pop mutator_keys.reverse.inject(registry[mutator_key].new) do |next_instance, next_key| registry[next_key].new(next_instance) end end |
.registry ⇒ Object
All sublasses of Mutators::Base are automatically registered here by underscored, symbolised class name.
20 21 22 |
# File 'lib/wrest/components/mutators.rb', line 20 def self.registry @registry ||= {} end |