Class: TrailGuide::Algorithms::Weighted
- Defined in:
- lib/trail_guide/algorithms/weighted.rb
Instance Attribute Summary
Attributes inherited from Algorithm
Instance Method Summary collapse
Methods inherited from Algorithm
Constructor Details
This class inherits a constructor from TrailGuide::Algorithms::Algorithm
Instance Method Details
#choose!(**opts) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/trail_guide/algorithms/weighted.rb', line 4 def choose!(**opts) reference = rand * variants.sum(&:weight) variants.each do |variant| return variant if variant.weight >= reference reference -= variant.weight end end |