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