Class: Likes::Support::HashFunction

Inherits:
Object
  • Object
show all
Defined in:
lib/likes/support.rb

Overview

Job: Understands random hash function generation

Constant Summary collapse

PRIMES =
PrimeFactory.first(3200)[-250..-1]

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(factor, constant, modulo) ⇒ HashFunction

Returns a new instance of HashFunction.



43
44
45
# File 'lib/likes/support.rb', line 43

def initialize(factor, constant, modulo)
  @factor, @constant, @modulo = factor, constant, modulo
end

Class Method Details

.sample(count, modulo) ⇒ Object



39
40
41
# File 'lib/likes/support.rb', line 39

def self.sample(count, modulo)
  (0...count).map { new(*(sample_primes(2) + [modulo])) }
end

Instance Method Details

#call(value) ⇒ Object



47
48
49
# File 'lib/likes/support.rb', line 47

def call(value)
  (factor * value + constant) % modulo
end

#map(values) ⇒ Object



51
52
53
# File 'lib/likes/support.rb', line 51

def map(values)
  values.map { |value| call(value) }
end