Class: ASIR::Coder::Chain

Inherits:
ASIR::Coder show all
Defined in:
lib/asir/coder/chain.rb

Overview

!SLIDE Chain Coder Chain multiple Coders as one.

@@@ text message –> | e1 | –> | e2 | –> | eN | –> result <– | d1 | <– | d2 | <– | dN | <– @@@

Instance Attribute Summary collapse

Attributes included from Log

#_logger

Instance Method Summary collapse

Methods inherited from ASIR::Coder

#_subclass_responsibility, #decode, #encode, #prepare

Methods included from Log

#_log, #_log_enabled=, #_log_enabled?, #_log_format, #_log_result, enabled, enabled=, included

Methods included from Initialization

#initialize

Instance Attribute Details

#encodersObject

Returns the value of attribute encoders.



12
13
14
# File 'lib/asir/coder/chain.rb', line 12

def encoders
  @encoders
end

Instance Method Details

#_decode(obj) ⇒ Object



21
22
23
24
25
26
# File 'lib/asir/coder/chain.rb', line 21

def _decode obj
  encoders.reverse_each do | e |
    obj = e.dup.decode(obj)
  end
  obj
end

#_encode(obj) ⇒ Object



14
15
16
17
18
19
# File 'lib/asir/coder/chain.rb', line 14

def _encode obj
  encoders.each do | e |
    obj = e.dup.encode(obj)
  end
  obj
end