Class: ReqSample::Hash
- Inherits:
-
Hash
- Object
- Hash
- ReqSample::Hash
- Defined in:
- lib/reqsample/hash.rb
Overview
Custom Hash methods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.weighted(h) ⇒ Object
4 5 6 7 |
# File 'lib/reqsample/hash.rb', line 4 def self.weighted(h) sum = h.values.reduce(:+) Hash[h.map { |k, weight| [k, (Float weight) / sum] }] end |
Instance Method Details
#weighted_sample ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/reqsample/hash.rb', line 9 def weighted_sample result = max_by do |_, weight| rand**(1.0 / weight) end block_given? ? yield(result) : result.first end |