class ReqSample::Hash
Custom Hash
methods
Public Class Methods
weighted(h)
click to toggle source
# 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
Public Instance Methods
weighted_sample() { |result| ... }
click to toggle source
# 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