Module: Adler32
- Defined in:
- lib/adler32.rb,
lib/adler32/version.rb
Overview
implementation of Adler-32, see en.wikipedia.org/wiki/Adler-32
Constant Summary collapse
- MOD =
65521- VERSION =
"0.0.2"
Class Method Summary collapse
Class Method Details
.calc(*args) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/adler32.rb', line 8 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
32 33 34 |
# File 'lib/adler32.rb', line 32 def checksum(*args) "%08x" % calc(*args) end |