Class: Divisio::ModuloAlgorithm

Inherits:
Object
  • Object
show all
Defined in:
lib/divisio/modulo_algorithm.rb

Instance Method Summary collapse

Constructor Details

#initialize(key, variants) ⇒ ModuloAlgorithm

Returns a new instance of ModuloAlgorithm.



6
7
8
9
# File 'lib/divisio/modulo_algorithm.rb', line 6

def initialize(key, variants)
  @key      = key.to_s
  @variants = variants_as_array(variants)
end

Instance Method Details

#calcObject



11
12
13
14
15
16
# File 'lib/divisio/modulo_algorithm.rb', line 11

def calc
  number_of_variants = variants.size
  position           = Digest::MD5.hexdigest(key).to_i(16) % number_of_variants

  variants[position]
end