Module: Evilution::Parallel::WorkQueue::Channel::Frame

Defined in:
lib/evilution/parallel/work_queue/channel/frame.rb

Class Method Summary collapse

Class Method Details

.decode(header, payload) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/evilution/parallel/work_queue/channel/frame.rb', line 13

def decode(header, payload)
  return nil if header.nil? || header.bytesize < 4

  length = header.unpack1("N")
  return nil if payload.nil? || payload.bytesize < length

  Marshal.load(payload) # rubocop:disable Security/MarshalLoad
end

.encode(object) ⇒ Object



8
9
10
11
# File 'lib/evilution/parallel/work_queue/channel/frame.rb', line 8

def encode(object)
  payload = Marshal.dump(object)
  [payload.bytesize].pack("N") + payload
end