Class: Hacklet::Message

Inherits:
BinData::Record
  • Object
show all
Defined in:
lib/hacklet/messages.rb

Instance Method Summary collapse

Instance Method Details

#calculate_checksumObject



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/hacklet/messages.rb', line 5

def calculate_checksum
  checksum_fields = @field_names - [:header, :checksum]
  buffer = StringIO.new
  io = BinData::IO.new(buffer)
  checksum_fields.each do |field|
    send(field).do_write(io)
  end
  buffer.rewind

  buffer.read.bytes.inject(0) { |s,x| s^x }
end