Class: Pangrid::Checksum
- Inherits:
-
Object
- Object
- Pangrid::Checksum
- Defined in:
- lib/pangrid/plugins/acrosslite.rb
Overview
CRC checksum for binary format
Instance Attribute Summary collapse
-
#sum ⇒ Object
Returns the value of attribute sum.
Class Method Summary collapse
Instance Method Summary collapse
- #add_char(b) ⇒ Object
- #add_string(s) ⇒ Object
- #add_string_0(s) ⇒ Object
-
#initialize(seed) ⇒ Checksum
constructor
A new instance of Checksum.
Constructor Details
#initialize(seed) ⇒ Checksum
Returns a new instance of Checksum.
27 28 29 |
# File 'lib/pangrid/plugins/acrosslite.rb', line 27 def initialize(seed) @sum = seed end |
Instance Attribute Details
#sum ⇒ Object
Returns the value of attribute sum.
19 20 21 |
# File 'lib/pangrid/plugins/acrosslite.rb', line 19 def sum @sum end |
Class Method Details
.of_string(s) ⇒ Object
21 22 23 24 25 |
# File 'lib/pangrid/plugins/acrosslite.rb', line 21 def self.of_string s c = self.new(0) c.add_string s c.sum end |
Instance Method Details
#add_char(b) ⇒ Object
31 32 33 34 35 36 |
# 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) ⇒ Object
38 39 40 |
# File 'lib/pangrid/plugins/acrosslite.rb', line 38 def add_string(s) s.bytes.map {|b| add_char b} end |
#add_string_0(s) ⇒ Object
42 43 44 |
# File 'lib/pangrid/plugins/acrosslite.rb', line 42 def add_string_0(s) add_string (s + "\0") unless s.empty? end |