Module: Adler32
- Defined in:
- lib/hyalite/adler32.rb
Constant Summary collapse
- MOD =
65521
Class Method Summary collapse
Class Method Details
.calc(*args) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/hyalite/adler32.rb', line 5 def calc(*args) a = 1 b = 0 c = 1000 args.each do |str| throw ArgumentError, "Only string can be passed: #{str.inspect}:#{str.class}" unless str.is_a? String str.each_char do |char| a += char.ord b += a c -= 1 if c <= 0 a %= MOD b %= MOD c = 1000 end end end a %= MOD b %= MOD (b << 16) | a end |
.checksum(*args) ⇒ Object
29 30 31 |
# File 'lib/hyalite/adler32.rb', line 29 def checksum(*args) "%08x" % calc(*args) end |