Module: Lumberjack::Beats::FrameEncoder

Defined in:
lib/lumberjack/beats/client.rb

Overview

JsonEncoder

Class Method Summary collapse

Class Method Details

.to_frame(hash, sequence) ⇒ Object



228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
# File 'lib/lumberjack/beats/client.rb', line 228

def self.to_frame(hash, sequence)
  frame = ["1", "D", sequence]
  pack = "AAN"
  keys = deep_keys(hash)
  frame << keys.length
  pack << "N"
  keys.each do |k|
    val = deep_get(hash,k)
    key_length = k.bytesize
    val_length = val.bytesize
    frame << key_length
    pack << "N"
    frame << k
    pack << "A#{key_length}"
    frame << val_length
    pack << "N"
    frame << val
    pack << "A#{val_length}"
  end
  frame.pack(pack)
end