Method: Codec::BaseComposed#encode

Defined in:
lib/codec/composed.rb

#encode(field) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/codec/composed.rb', line 12

def encode(field)
  return "" if field.empty?
  subfields = field.get_value
  composed_encoder = subfields.zip(@subCodecs).collect {|sf,sc|
    if sf.get_id != sc.first
      raise EncodingException, "subfield #{sf.first} not correspond to subcodec #{sc.first}"
    end
    [sc.last,sf]
  } 
  out = ""
  composed_encoder.each do |subcodec,subfield|
    out += subcodec.encode(subfield)
  end
  return out
end