Class: Protip::Transformers::DelegatingTransformer
- Inherits:
-
Object
- Object
- Protip::Transformers::DelegatingTransformer
- Extended by:
- Forwardable
- Includes:
- Protip::Transformer
- Defined in:
- lib/protip/transformers/delegating_transformer.rb
Overview
A transformer which forwards to other transformers based on the message type being converted.
Direct Known Subclasses
BigDecimalTransformer, DefaultTransformer, DeprecatedTransformer, EnumTransformer, PrimitivesTransformer, TimestampTransformer
Instance Method Summary collapse
-
#initialize(fallback_transformer = AbstractTransformer.new, transformers = {}) ⇒ DelegatingTransformer
constructor
A new instance of DelegatingTransformer.
- #merge!(delegating_transformer) ⇒ Object
- #to_message(object, field) ⇒ Object
- #to_object(message, field) ⇒ Object
Constructor Details
#initialize(fallback_transformer = AbstractTransformer.new, transformers = {}) ⇒ DelegatingTransformer
Returns a new instance of DelegatingTransformer.
17 18 19 20 |
# File 'lib/protip/transformers/delegating_transformer.rb', line 17 def initialize(fallback_transformer = AbstractTransformer.new, transformers = {}) @fallback_transformer = fallback_transformer @transformers = transformers.dup end |
Instance Method Details
#merge!(delegating_transformer) ⇒ Object
24 25 26 27 28 |
# File 'lib/protip/transformers/delegating_transformer.rb', line 24 def merge!(delegating_transformer) delegating_transformer.keys.each do |key| self[key] = delegating_transformer[key] end end |
#to_message(object, field) ⇒ Object
34 35 36 |
# File 'lib/protip/transformers/delegating_transformer.rb', line 34 def (object, field) transformer_for(field.submsg_name).(object, field) end |
#to_object(message, field) ⇒ Object
30 31 32 |
# File 'lib/protip/transformers/delegating_transformer.rb', line 30 def to_object(, field) transformer_for(field.submsg_name).to_object(, field) end |