games_dice 0.3.9 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rubocop.yml +15 -0
- data/.travis.yml +9 -12
- data/CHANGELOG.md +29 -13
- data/Gemfile +2 -0
- data/README.md +5 -5
- data/Rakefile +14 -11
- data/ext/games_dice/extconf.rb +4 -22
- data/ext/games_dice/probabilities.c +1 -1
- data/games_dice.gemspec +26 -28
- data/lib/games_dice/bunch.rb +241 -247
- data/lib/games_dice/complex_die.rb +287 -303
- data/lib/games_dice/complex_die_helpers.rb +68 -0
- data/lib/games_dice/constants.rb +10 -10
- data/lib/games_dice/dice.rb +146 -143
- data/lib/games_dice/die.rb +101 -97
- data/lib/games_dice/die_result.rb +193 -189
- data/lib/games_dice/map_rule.rb +72 -70
- data/lib/games_dice/marshal.rb +18 -13
- data/lib/games_dice/parser.rb +219 -218
- data/lib/games_dice/reroll_rule.rb +76 -77
- data/lib/games_dice/version.rb +3 -1
- data/lib/games_dice.rb +19 -16
- data/spec/bunch_spec.rb +399 -421
- data/spec/complex_die_spec.rb +314 -306
- data/spec/dice_spec.rb +33 -34
- data/spec/die_result_spec.rb +163 -170
- data/spec/die_spec.rb +81 -82
- data/spec/helpers.rb +26 -22
- data/spec/map_rule_spec.rb +40 -44
- data/spec/parser_spec.rb +106 -82
- data/spec/probability_spec.rb +530 -527
- data/spec/readme_spec.rb +404 -384
- data/spec/reroll_rule_spec.rb +40 -44
- metadata +63 -74
- data/lib/games_dice/probabilities.rb +0 -445
data/lib/games_dice.rb
CHANGED
@@ -1,19 +1,21 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'games_dice/version'
|
2
4
|
begin
|
3
|
-
require
|
5
|
+
require 'games_dice/games_dice'
|
4
6
|
rescue LoadError
|
5
|
-
require
|
7
|
+
require 'games_dice/probabilities'
|
6
8
|
end
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
9
|
+
require 'games_dice/constants'
|
10
|
+
require 'games_dice/die'
|
11
|
+
require 'games_dice/die_result'
|
12
|
+
require 'games_dice/reroll_rule'
|
13
|
+
require 'games_dice/map_rule'
|
14
|
+
require 'games_dice/complex_die'
|
15
|
+
require 'games_dice/bunch'
|
16
|
+
require 'games_dice/dice'
|
17
|
+
require 'games_dice/parser'
|
18
|
+
require 'games_dice/marshal'
|
17
19
|
|
18
20
|
module GamesDice
|
19
21
|
# @!visibility private
|
@@ -24,8 +26,9 @@ module GamesDice
|
|
24
26
|
# @param [#rand] prng Optional random number generator, default is to use Ruby's built-in #rand()
|
25
27
|
# @return [GamesDice::Dice] A new dice object.
|
26
28
|
#
|
27
|
-
def self.create
|
28
|
-
parsed = @@parser.parse(
|
29
|
-
|
29
|
+
def self.create(dice_description, prng = nil)
|
30
|
+
parsed = @@parser.parse(dice_description)
|
31
|
+
parsed[:bunches].each { |bunch| bunch.merge!(prng: prng) } if prng
|
32
|
+
GamesDice::Dice.new(parsed[:bunches], parsed[:offset])
|
30
33
|
end
|
31
34
|
end
|