Class: PageRankr::Ranks::Google::Checksum

Inherits:
Object
  • Object
show all
Defined in:
lib/page_rankr/ranks/google/checksum.rb

Class Method Summary collapse

Class Method Details

.generate(site) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/page_rankr/ranks/google/checksum.rb', line 6

def generate(site)
  bytes  = byte_array('info:' + site)
  length = bytes.length
  a = b = 0x9E3779B9
  c = 0xE6359A60
  k, len = 0, length
  while(len >= 12)
    a = m(a + bytes[k + 0] + (bytes[k + 1] << 8) + (bytes[k +  2] << 16) + (bytes[k +  3] << 24))
    b = m(b + bytes[k + 4] + (bytes[k + 5] << 8) + (bytes[k +  6] << 16) + (bytes[k +  7] << 24))
    c = m(c + bytes[k + 8] + (bytes[k + 9] << 8) + (bytes[k + 10] << 16) + (bytes[k + 11] << 24))

    a, b, c = mix(a, b, c)
    k += 12
    len -= 12
  end

  c = c + length

  c = mix(*toss(a, b, c, bytes, len, k))[2]
  "6" + c.to_s
end