Module: SimpleRecord::Sharding::Hashing
- Defined in:
- lib/simple_record/sharding.rb
Overview
Some hashing algorithms
Class Method Summary collapse
Class Method Details
.sdbm_hash(str, len = str.length) ⇒ Object
267 268 269 270 271 272 273 274 275 276 277 278 |
# File 'lib/simple_record/sharding.rb', line 267 def self.sdbm_hash(str, len=str.length) # puts 'sdbm_hash ' + str.inspect hash = 0 len.times { |i| c = str[i] # puts "c=" + c.class.name + "--" + c.inspect + " -- " + c.ord.inspect c = c.ord hash = c + (hash << 6) + (hash << 16) - hash } # puts "hash=" + hash.inspect return hash end |