games_dice 0.3.12 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.rubocop.yml +15 -0
- data/.travis.yml +7 -10
- data/CHANGELOG.md +6 -0
- data/Gemfile +2 -0
- 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 -32
- data/lib/games_dice/bunch.rb +241 -247
- data/lib/games_dice/complex_die.rb +287 -270
- data/lib/games_dice/complex_die_helpers.rb +68 -60
- 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 -19
- data/spec/bunch_spec.rb +399 -420
- data/spec/complex_die_spec.rb +314 -305
- data/spec/dice_spec.rb +33 -34
- data/spec/die_result_spec.rb +162 -169
- data/spec/die_spec.rb +81 -81
- data/spec/helpers.rb +23 -21
- data/spec/map_rule_spec.rb +40 -44
- data/spec/parser_spec.rb +106 -82
- data/spec/probability_spec.rb +530 -526
- data/spec/readme_spec.rb +404 -390
- data/spec/reroll_rule_spec.rb +40 -44
- metadata +39 -28
- data/lib/games_dice/prob_helpers.rb +0 -259
- data/lib/games_dice/probabilities.rb +0 -244
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7c1046747fdad80e794bb7883aaaade1a14e737a39641b6e85e7c179e96a3375
|
4
|
+
data.tar.gz: 54b1c1aa41b58b53e8a72ad59f835de932fde926a038626a0df165605677300c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60e56aa2b32a4550ae6334c372ad1a9b0a07820c8a58ae4ce07c0ae3d5721ff91b8422d3d2d52b690e387738d3ee5bb6a7c05bed2d40145b776ef9a9d6295c0c
|
7
|
+
data.tar.gz: 7a0e7c3759def3b6f482e4242ae23b770c50876fc26f5464bca4e77b91cbf64596c901c4eb9cc69e9eee351d63fa8978426ceae7125eb34aa7c3e0856a0a8e1e
|
data/.rubocop.yml
ADDED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# GamesDice Changelog
|
2
2
|
|
3
|
+
## 0.4.0 ( 19 September 2021 )
|
4
|
+
|
5
|
+
* Dropping support for older Ruby versions (< 2.6)
|
6
|
+
* Native extensions are no longer optional, to reduce maintenance overhead. Effectively dropping support for JRuby.
|
7
|
+
* Tidy up code for maintainability (Rubocop and RSpec)
|
8
|
+
|
3
9
|
## 0.3.11 ( 26 May 2014 )
|
4
10
|
|
5
11
|
* Bugfix. Actually use custom PRNG passed to GamesDice.create or GamesDice::Bunch.new
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,16 +1,19 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/gem_tasks'
|
4
|
+
require 'rspec/core/rake_task'
|
3
5
|
require 'rake/extensiontask'
|
4
|
-
require
|
6
|
+
require 'yard'
|
5
7
|
|
6
8
|
def can_compile_extensions
|
7
9
|
return false if RUBY_DESCRIPTION =~ /jruby/
|
8
|
-
|
10
|
+
|
11
|
+
true
|
9
12
|
end
|
10
13
|
|
11
|
-
desc
|
14
|
+
desc 'GamesDice unit tests'
|
12
15
|
RSpec::Core::RakeTask.new(:test) do |t|
|
13
|
-
t.pattern =
|
16
|
+
t.pattern = 'spec/*_spec.rb'
|
14
17
|
t.verbose = false
|
15
18
|
end
|
16
19
|
|
@@ -21,20 +24,20 @@ end
|
|
21
24
|
gemspec = Gem::Specification.load('games_dice.gemspec')
|
22
25
|
Rake::ExtensionTask.new do |ext|
|
23
26
|
ext.name = 'games_dice'
|
24
|
-
ext.source_pattern =
|
27
|
+
ext.source_pattern = '*.{c,h}'
|
25
28
|
ext.ext_dir = 'ext/games_dice'
|
26
29
|
ext.lib_dir = 'lib/games_dice'
|
27
30
|
ext.gem_spec = gemspec
|
28
31
|
end
|
29
32
|
|
30
|
-
task :delete_compiled_ext do |
|
33
|
+
task :delete_compiled_ext do |_t|
|
31
34
|
`rm lib/games_dice/games_dice.*`
|
32
35
|
end
|
33
36
|
|
34
|
-
task :
|
37
|
+
task pure_test: %i[delete_compiled_ext test]
|
35
38
|
|
36
39
|
if can_compile_extensions
|
37
|
-
task :
|
40
|
+
task default: %i[compile test]
|
38
41
|
else
|
39
|
-
task :
|
42
|
+
task default: [:test]
|
40
43
|
end
|
data/ext/games_dice/extconf.rb
CHANGED
@@ -1,25 +1,7 @@
|
|
1
|
-
#
|
2
|
-
can_compile_extensions = false
|
3
|
-
want_extensions = true
|
4
|
-
|
5
|
-
begin
|
6
|
-
require 'mkmf'
|
7
|
-
can_compile_extensions = true
|
8
|
-
rescue Exception
|
9
|
-
# This will appear only in verbose mode.
|
10
|
-
$stderr.puts "Could not require 'mkmf'. Not fatal: The extensions are optional."
|
11
|
-
end
|
1
|
+
# frozen_string_literal: true
|
12
2
|
|
3
|
+
# ext/games_dice/extconf.rb
|
13
4
|
|
14
|
-
|
15
|
-
create_makefile( 'games_dice/games_dice' )
|
16
|
-
|
17
|
-
else
|
18
|
-
# Create a dummy Makefile, to satisfy Gem::Installer#install
|
19
|
-
mfile = open("Makefile", "wb")
|
20
|
-
mfile.puts '.PHONY: install'
|
21
|
-
mfile.puts 'install:'
|
22
|
-
mfile.puts "\t" + '@echo "Extensions not installed, falling back to pure Ruby version."'
|
23
|
-
mfile.close
|
5
|
+
require 'mkmf'
|
24
6
|
|
25
|
-
|
7
|
+
create_makefile('games_dice/games_dice')
|
@@ -472,7 +472,7 @@ ProbabilityList *pl_repeat_n_sum_k( ProbabilityList *pl, int n, int k, int kbest
|
|
472
472
|
pl_result->offset = pl->offset * k;
|
473
473
|
|
474
474
|
for ( i = 0; i < pl->slots; i++ ) {
|
475
|
-
if (
|
475
|
+
if ( pl->probs[i] <= 0.0 ) continue;
|
476
476
|
|
477
477
|
q = i + pl->offset;
|
478
478
|
calc_keep_distributions( pl, k, q, kbest, keep_distributions );
|
data/games_dice.gemspec
CHANGED
@@ -1,46 +1,40 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'English'
|
4
|
+
lib = File.expand_path('lib', __dir__)
|
3
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
6
|
require 'games_dice/version'
|
5
7
|
|
6
8
|
Gem::Specification.new do |gem|
|
7
|
-
gem.name =
|
9
|
+
gem.name = 'games_dice'
|
8
10
|
gem.version = GamesDice::VERSION
|
9
|
-
gem.authors = [
|
10
|
-
gem.email = [
|
11
|
-
gem.description =
|
12
|
-
gem.summary =
|
13
|
-
results of 10 roll again and add on".
|
14
|
-
gem.homepage =
|
15
|
-
gem.license =
|
16
|
-
|
17
|
-
gem.add_development_dependency "rspec", ">= 2.13.0"
|
18
|
-
gem.add_development_dependency "rake", ">= 1.9.1"
|
19
|
-
gem.add_development_dependency "yard", ">= 0.8.6"
|
20
|
-
gem.add_development_dependency "coveralls", ">= 0.6.7"
|
21
|
-
gem.add_development_dependency "json", ">= 1.7.7"
|
22
|
-
gem.add_development_dependency "rake-compiler", ">= 0.8.3"
|
23
|
-
if RUBY_VERSION <= "1.9.2"
|
24
|
-
gem.add_development_dependency "mime-types", "< 2.0.0"
|
25
|
-
end
|
11
|
+
gem.authors = ['Neil Slater']
|
12
|
+
gem.email = ['slobo777@gmail.com']
|
13
|
+
gem.description = 'A library for simulating dice. Use it to construct dice-rolling systems used in role-playing and board games.'
|
14
|
+
gem.summary = 'Simulates and explains dice rolls from simple "1d6" to complex "roll 7 ten-sided dice, take best 3,
|
15
|
+
results of 10 roll again and add on".'
|
16
|
+
gem.homepage = 'https://github.com/neilslater/games_dice'
|
17
|
+
gem.license = 'MIT'
|
26
18
|
|
19
|
+
gem.required_ruby_version = '>= 2.6.0'
|
20
|
+
gem.add_development_dependency 'coveralls', '>= 0.6.7'
|
21
|
+
gem.add_development_dependency 'json', '>= 1.7.7'
|
22
|
+
gem.add_development_dependency 'rake', '>= 1.9.1'
|
23
|
+
gem.add_development_dependency 'rake-compiler', '>= 0.8.3'
|
24
|
+
gem.add_development_dependency 'rspec', '>= 2.13.0'
|
25
|
+
gem.add_development_dependency 'rubocop', '>= 1.2.1'
|
26
|
+
gem.add_development_dependency 'yard', '>= 0.8.6'
|
27
27
|
|
28
28
|
# Red Carpet renders README.md, and is optional even when developing the gem.
|
29
|
-
# However, it has a C extension,
|
29
|
+
# However, it has a C extension, which will not work in JRuby. This only affects the gem build process, so
|
30
30
|
# is only really used in environments like Travis, and is safe to wrap like this in the gemspec.
|
31
|
-
if RUBY_DESCRIPTION !~ /jruby/
|
32
|
-
if RUBY_VERSION >= "1.9.0"
|
33
|
-
gem.add_development_dependency "redcarpet", ">=2.3.0"
|
34
|
-
else
|
35
|
-
gem.add_development_dependency "redcarpet", ">=2.3.0", "<3.0.0"
|
36
|
-
end
|
37
|
-
end
|
31
|
+
gem.add_development_dependency 'redcarpet', '>=3.5.1' if RUBY_DESCRIPTION !~ /jruby/
|
38
32
|
|
39
|
-
gem.add_dependency
|
33
|
+
gem.add_dependency 'parslet', '>= 1.5.0'
|
40
34
|
|
41
|
-
gem.files = `git ls-files`.split(
|
42
|
-
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
35
|
+
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
36
|
+
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
43
37
|
gem.extensions = gem.files.grep(%r{/extconf\.rb$})
|
44
38
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
45
|
-
gem.require_paths = [
|
39
|
+
gem.require_paths = ['lib']
|
46
40
|
end
|