Class: Dicey::SumFrequencyCalculators::Runner
- Inherits:
-
Object
- Object
- Dicey::SumFrequencyCalculators::Runner
- Defined in:
- lib/dicey/sum_frequency_calculators/runner.rb
Overview
The defaultest runner which calculates roll frequencies from command-line dice.
Instance Method Summary collapse
-
#call(arguments, format:, result:) ⇒ nil
Transform die definitions to roll frequencies.
Instance Method Details
#call(arguments, format:, result:) ⇒ nil
Transform die definitions to roll frequencies.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/dicey/sum_frequency_calculators/runner.rb', line 20 def call(arguments, format:, result:, **) raise DiceyError, "no dice!" if arguments.empty? dice = arguments.flat_map { |definition| die_foundry.cast(definition) } calculator = calculator_selector.call(dice) raise DiceyError, "no calculator could handle these dice!" unless calculator frequencies = calculator.call(dice, result_type: result) format.call(frequencies, AbstractDie.describe(dice)) end |