Class: Hackle::Bucketer
- Inherits:
-
Object
- Object
- Hackle::Bucketer
- Defined in:
- lib/hackle/internal/evaluation/bucketer/bucketer.rb
Instance Method Summary collapse
- #bucketing(bucket, identifier) ⇒ Slot?
- #calculate_slot_number(seed:, slot_size:, value:) ⇒ Integer
-
#initialize(hasher:) ⇒ Bucketer
constructor
A new instance of Bucketer.
Constructor Details
#initialize(hasher:) ⇒ Bucketer
Returns a new instance of Bucketer.
9 10 11 12 |
# File 'lib/hackle/internal/evaluation/bucketer/bucketer.rb', line 9 def initialize(hasher:) # @type [Hasher] @hasher = hasher end |
Instance Method Details
#bucketing(bucket, identifier) ⇒ Slot?
17 18 19 20 |
# File 'lib/hackle/internal/evaluation/bucketer/bucketer.rb', line 17 def bucketing(bucket, identifier) slot_number = calculate_slot_number(seed: bucket.seed, slot_size: bucket.slot_size, value: identifier) bucket.get_slot_or_nil(slot_number) end |
#calculate_slot_number(seed:, slot_size:, value:) ⇒ Integer
26 27 28 29 |
# File 'lib/hackle/internal/evaluation/bucketer/bucketer.rb', line 26 def calculate_slot_number(seed:, slot_size:, value:) hash_value = @hasher.hash(value, seed) hash_value.abs % slot_size end |