class Pangrid::Checksum

CRC checksum for binary format

Attributes

sum[RW]

Public Class Methods

new(seed) click to toggle source
# File lib/pangrid/plugins/acrosslite.rb, line 27
def initialize(seed)
  @sum = seed
end
of_string(s) click to toggle source
# File lib/pangrid/plugins/acrosslite.rb, line 21
def self.of_string s
  c = self.new(0)
  c.add_string s
  c.sum
end

Public Instance Methods

add_char(b) click to toggle source
# File lib/pangrid/plugins/acrosslite.rb, line 31
def add_char(b)
  low = sum & 0x0001
  @sum = sum >> 1
  @sum = sum | 0x8000 if low == 1
  @sum = (sum + b) & 0xffff
end
add_string(s) click to toggle source
# File lib/pangrid/plugins/acrosslite.rb, line 38
def add_string(s)
  s.bytes.map {|b| add_char b}
end
add_string_0(s) click to toggle source
# File lib/pangrid/plugins/acrosslite.rb, line 42
def add_string_0(s)
  add_string (s + "\0") unless s.empty?
end