Method: ErlangBitstream#add

Defined in:
lib/utils/erlang_parser.rb

#add(i) ⇒ Object



104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/utils/erlang_parser.rb', line 104

def add(i)
  if i[:integer].nil? && i[:string].nil?
    raise 'No data provided, internal error for binary-stream processing!'
  end
  s = bit_size(i[:size], i[:type])
  unless i[:string].nil?
    str2int(i[:string].to_s, i[:type]).map { |e| add_bits(int2bits(e, 8)) }
  else
    add_int(i[:integer], s)
  end
rescue RuntimeError => e
  raise 'Error processing Erlang bit string '\
        "'#{i[:string] || i[:integer]}:#{i[:size]}/#{i[:type]}'. #{e.message}"
end