nerd_dice 0.1.0 → 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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.github/workflows/main.yml +67 -0
- data/.rubocop.yml +114 -0
- data/CHANGELOG.md +76 -2
- data/Gemfile +2 -2
- data/Gemfile.lock +54 -32
- data/README.md +372 -5
- data/bin/generate_checksums +13 -0
- data/bin/nerd_dice_benchmark +322 -0
- data/certs/msducheminjr.pem +26 -0
- data/checksum/nerd_dice-0.1.0.gem.sha256 +1 -0
- data/checksum/nerd_dice-0.1.0.gem.sha512 +1 -0
- data/checksum/nerd_dice-0.1.1.gem.sha256 +1 -0
- data/checksum/nerd_dice-0.1.1.gem.sha512 +1 -0
- data/checksum/nerd_dice-0.2.0.gem.sha256 +1 -0
- data/checksum/nerd_dice-0.2.0.gem.sha512 +1 -0
- data/checksum/nerd_dice-0.3.0.gem.sha256 +1 -0
- data/checksum/nerd_dice-0.3.0.gem.sha512 +1 -0
- data/lib/nerd_dice/class_methods/configure.rb +50 -0
- data/lib/nerd_dice/class_methods/execute_die_roll.rb +47 -0
- data/lib/nerd_dice/class_methods/harvest_totals.rb +40 -0
- data/lib/nerd_dice/class_methods/refresh_seed.rb +83 -0
- data/lib/nerd_dice/class_methods/roll_ability_scores.rb +73 -0
- data/lib/nerd_dice/class_methods/roll_dice.rb +45 -0
- data/lib/nerd_dice/class_methods/total_ability_scores.rb +52 -0
- data/lib/nerd_dice/class_methods/total_dice.rb +44 -0
- data/lib/nerd_dice/class_methods.rb +30 -0
- data/lib/nerd_dice/configuration.rb +91 -0
- data/lib/nerd_dice/convenience_methods.rb +279 -0
- data/lib/nerd_dice/dice_set.rb +166 -0
- data/lib/nerd_dice/die.rb +51 -0
- data/lib/nerd_dice/sets_randomization_technique.rb +19 -0
- data/lib/nerd_dice/version.rb +1 -1
- data/lib/nerd_dice.rb +15 -33
- data/nerd_dice.gemspec +12 -7
- data.tar.gz.sig +0 -0
- metadata +97 -21
- metadata.gz.sig +0 -0
- data/.travis.yml +0 -6
@@ -0,0 +1,166 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module NerdDice
|
4
|
+
# The NerdDice::DiceSet class allows you to instantiate and roll a set of dice by specifying
|
5
|
+
# the number of sides, the number of dice (with a default of 1) and other options. As part of
|
6
|
+
# initialization the DiceSet will initialize and roll the Die objects specified by the
|
7
|
+
# DiceSet.new method. The parameters align with the NerdDice.total_dice method and
|
8
|
+
# NerdDice::DiceSet.new(6, 3, bonus: 5).total would be equivalent to
|
9
|
+
# NerdDice.total_dice(6, 3, bonus: 5)
|
10
|
+
#
|
11
|
+
# Usage:
|
12
|
+
# Instantiate a d20:
|
13
|
+
# <tt>dice = NerdDice::DiceSet.new(20)
|
14
|
+
# dice.total # between 1 and 20
|
15
|
+
# </tt>
|
16
|
+
#
|
17
|
+
# Instantiate 3d6 + 5:
|
18
|
+
# <tt>dice = NerdDice::DiceSet.new(6, 3, bonus: 5)
|
19
|
+
# dice.total # between 8 and 23
|
20
|
+
# </tt>
|
21
|
+
#
|
22
|
+
# You can also specify options that will cascade to the member dice when instantiating
|
23
|
+
# <tt>NerdDice::DiceSet.new(6, 3, randomization_technique: :randomized,
|
24
|
+
# foreground_color: "#FF0000",
|
25
|
+
# background_color: "#FFFFFF"
|
26
|
+
# damage_type: "necrotic"))
|
27
|
+
# </tt>
|
28
|
+
class DiceSet
|
29
|
+
include Enumerable
|
30
|
+
include SetsRandomizationTechnique
|
31
|
+
|
32
|
+
attr_reader :number_of_sides, :number_of_dice, :dice, :bonus
|
33
|
+
attr_accessor :background_color, :foreground_color, :damage_type
|
34
|
+
|
35
|
+
# required to implement Enumerable uses the @dice collection
|
36
|
+
def each(&block)
|
37
|
+
@dice.each(&block)
|
38
|
+
end
|
39
|
+
|
40
|
+
# not included by default in Enumerable: allows [] directly on the DiceSet object
|
41
|
+
def [](index)
|
42
|
+
@dice[index]
|
43
|
+
end
|
44
|
+
|
45
|
+
# not included by default in Enumerable: adds length property directly to the DiceSet object
|
46
|
+
def length
|
47
|
+
@dice.length
|
48
|
+
end
|
49
|
+
|
50
|
+
# sorts the @dice collection in place
|
51
|
+
def sort!
|
52
|
+
@dice.sort!
|
53
|
+
end
|
54
|
+
|
55
|
+
# reverses the @dice collection in place
|
56
|
+
def reverse!
|
57
|
+
@dice.reverse!
|
58
|
+
end
|
59
|
+
|
60
|
+
# re-rolls each Die in the collection and sets its is_included_in_total property back to true
|
61
|
+
def reroll_all!
|
62
|
+
@dice.map do |die|
|
63
|
+
die.roll
|
64
|
+
die.is_included_in_total = true
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# resets is_included_in_total property back to true for each Die in the collection
|
69
|
+
def include_all_dice!
|
70
|
+
@dice.map { |die| die.is_included_in_total = true }
|
71
|
+
end
|
72
|
+
|
73
|
+
###################################
|
74
|
+
# highest instance method
|
75
|
+
# (aliased as with_advantage)
|
76
|
+
###################################
|
77
|
+
# Arguments:
|
78
|
+
# number_to_take (Integer default: nil) => the number dice to take
|
79
|
+
#
|
80
|
+
# Notes:
|
81
|
+
# * If the method is called with a nil value it will take all but one of the dice
|
82
|
+
# * If the method is called on a DiceSet with one Die, the lone Die will remain included
|
83
|
+
# * The method will raise an ArgumentError if you try to take more dice than the DiceSet contains
|
84
|
+
# * Even though this method doesn't have a bang at the end, it does call other bang methods
|
85
|
+
#
|
86
|
+
# Return (NerdDice::DiceSet) => Returns the instance the method was called on with
|
87
|
+
# die objects that have is_included_in_total property modified as true for the highest(n)
|
88
|
+
# dice and false for the remaining dice.
|
89
|
+
def highest(number_to_take = nil)
|
90
|
+
include_all_dice!
|
91
|
+
number_to_take = check_low_high_argument!(number_to_take)
|
92
|
+
get_default_to_take if number_to_take.nil?
|
93
|
+
@dice.sort.reverse.each_with_index do |die, index|
|
94
|
+
die.is_included_in_total = false if index >= number_to_take
|
95
|
+
end
|
96
|
+
self
|
97
|
+
end
|
98
|
+
|
99
|
+
alias with_advantage highest
|
100
|
+
|
101
|
+
###################################
|
102
|
+
# lowest instance method
|
103
|
+
# (aliased as with_disadvantage)
|
104
|
+
###################################
|
105
|
+
# Arguments and Notes are the same as for the highest method documented above
|
106
|
+
#
|
107
|
+
# Return (NerdDice::DiceSet) => Returns the instance the method was called on with
|
108
|
+
# die objects that have is_included_in_total property modified as true for the lowest(n)
|
109
|
+
# dice and false for the remaining dice.
|
110
|
+
def lowest(number_to_take = nil)
|
111
|
+
include_all_dice!
|
112
|
+
number_to_take = check_low_high_argument!(number_to_take)
|
113
|
+
get_default_to_take if number_to_take.nil?
|
114
|
+
@dice.sort.each_with_index do |die, index|
|
115
|
+
die.is_included_in_total = false if index >= number_to_take
|
116
|
+
end
|
117
|
+
self
|
118
|
+
end
|
119
|
+
|
120
|
+
alias with_disadvantage lowest
|
121
|
+
|
122
|
+
# custom attribute writer that ensures the argument is an Integer duck-type and calls to_i
|
123
|
+
def bonus=(new_value)
|
124
|
+
@bonus = new_value.to_i
|
125
|
+
rescue NoMethodError
|
126
|
+
raise ArgumentError, "Bonus must be a value that responds to :to_i"
|
127
|
+
end
|
128
|
+
|
129
|
+
###################################
|
130
|
+
# total method
|
131
|
+
###################################
|
132
|
+
# Return (Integer) => Returns the sum of the values on the Die objects in the collection
|
133
|
+
# where is_included_in_total is set to true and then adds the value of the bonus
|
134
|
+
# attribute (which may be negative)
|
135
|
+
def total
|
136
|
+
@dice.select(&:included_in_total?).sum(&:value) + @bonus
|
137
|
+
end
|
138
|
+
|
139
|
+
private
|
140
|
+
|
141
|
+
def initialize(number_of_sides, number_of_dice = 1, **opts)
|
142
|
+
@number_of_sides = number_of_sides
|
143
|
+
@number_of_dice = number_of_dice
|
144
|
+
parse_options(opts)
|
145
|
+
@dice = []
|
146
|
+
@number_of_dice.times { @dice << Die.new(@number_of_sides, **opts) }
|
147
|
+
end
|
148
|
+
|
149
|
+
def parse_options(opts)
|
150
|
+
self.randomization_technique = opts[:randomization_technique]
|
151
|
+
@background_color = opts[:background_color] || NerdDice.configuration.die_background_color
|
152
|
+
@foreground_color = opts[:foreground_color] || NerdDice.configuration.die_foreground_color
|
153
|
+
@damage_type = opts[:damage_type]
|
154
|
+
self.bonus = opts[:bonus]
|
155
|
+
end
|
156
|
+
|
157
|
+
# validates the argument input to the highest and lowest methods
|
158
|
+
# sets a default value if number_to_take is nil
|
159
|
+
def check_low_high_argument!(number_to_take)
|
160
|
+
number_to_take ||= number_of_dice == 1 ? 1 : number_of_dice - 1
|
161
|
+
raise ArgumentError, "Argument cannot exceed number of dice" if number_to_take > number_of_dice
|
162
|
+
|
163
|
+
number_to_take
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module NerdDice
|
4
|
+
# The NerdDice::Die class allows you to instantiate and roll a die by specifying
|
5
|
+
# the number of sides with other options. As part of initialization the die will
|
6
|
+
# be rolled and have a value
|
7
|
+
#
|
8
|
+
# Usage:
|
9
|
+
# Instantiate a d20:
|
10
|
+
# <tt>die = NerdDice::Die.new(20)
|
11
|
+
# die.value # between 1 and 20
|
12
|
+
# </tt>
|
13
|
+
#
|
14
|
+
# You can also specify options when instantiating
|
15
|
+
# <tt>NerdDice::Die.new(12, randomization_technique: :randomized,
|
16
|
+
# foreground_color: "#FF0000",
|
17
|
+
# background_color: "#FFFFFF",
|
18
|
+
# damage_type: "necrotic"))
|
19
|
+
# </tt>
|
20
|
+
class Die
|
21
|
+
include Comparable
|
22
|
+
include SetsRandomizationTechnique
|
23
|
+
|
24
|
+
attr_reader :number_of_sides, :value
|
25
|
+
attr_accessor :background_color, :foreground_color, :damage_type, :is_included_in_total
|
26
|
+
|
27
|
+
# comparison operator override using value: required to implement Comparable
|
28
|
+
def <=>(other)
|
29
|
+
value <=> other.value
|
30
|
+
end
|
31
|
+
|
32
|
+
# rolls the die, setting the value to the new roll and returning that value
|
33
|
+
def roll
|
34
|
+
@value = NerdDice.execute_die_roll(@number_of_sides, @randomization_technique)
|
35
|
+
end
|
36
|
+
|
37
|
+
alias included_in_total? is_included_in_total
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def initialize(number_of_sides, **opts)
|
42
|
+
@number_of_sides = number_of_sides
|
43
|
+
self.randomization_technique = opts[:randomization_technique]
|
44
|
+
@background_color = opts[:background_color] || NerdDice.configuration.die_background_color
|
45
|
+
@foreground_color = opts[:foreground_color] || NerdDice.configuration.die_foreground_color
|
46
|
+
@damage_type = opts[:damage_type]
|
47
|
+
@is_included_in_total = true
|
48
|
+
roll
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module NerdDice
|
4
|
+
# The NerdDice::SetsRandomizationTechnique is a module mixin that can be included
|
5
|
+
# in classes. It provides an attribute reader and writer for randomization_technique
|
6
|
+
# and checks against the NerdDice::RANDOMIZATION_TECHNIQUES constant to make sure the
|
7
|
+
# input provided is valid
|
8
|
+
module SetsRandomizationTechnique
|
9
|
+
attr_reader :randomization_technique
|
10
|
+
|
11
|
+
def randomization_technique=(new_value)
|
12
|
+
unless RANDOMIZATION_TECHNIQUES.include?(new_value) || new_value.nil?
|
13
|
+
raise NerdDice::Error, "randomization_technique must be one of #{NerdDice::RANDOMIZATION_TECHNIQUES.join(', ')}"
|
14
|
+
end
|
15
|
+
|
16
|
+
@randomization_technique = new_value
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/nerd_dice/version.rb
CHANGED
data/lib/nerd_dice.rb
CHANGED
@@ -1,47 +1,29 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "nerd_dice/version"
|
4
|
+
require "nerd_dice/configuration"
|
5
|
+
require "nerd_dice/sets_randomization_technique"
|
6
|
+
require "nerd_dice/die"
|
7
|
+
require "nerd_dice/dice_set"
|
8
|
+
require "nerd_dice/class_methods"
|
9
|
+
require "securerandom"
|
10
|
+
require "nerd_dice/convenience_methods"
|
4
11
|
# Nerd dice allows you to roll polyhedral dice and add bonuses as you would in
|
5
12
|
# a tabletop roleplaying game. You can choose to roll multiple dice and keep a
|
6
13
|
# specified number of dice such as rolling 4d6 and dropping the lowest for
|
7
14
|
# ability scores or rolling with advantage and disadvantage if those mechanics
|
8
15
|
# exist in your game.
|
9
16
|
#
|
10
|
-
#
|
11
|
-
#
|
17
|
+
# This module is broken down into multiple source files:
|
18
|
+
# The class_methods file has all of the module_level methods called by NerdDice.method_name
|
12
19
|
#
|
13
|
-
#
|
14
|
-
# <tt>NerdDice.total_dice(4)</tt>
|
15
|
-
#
|
16
|
-
# If you wanted to roll 3d6, you would execute
|
17
|
-
# <tt>NerdDice.total_dice(6, 3)</tt>
|
18
|
-
#
|
19
|
-
# If you wanted to roll a d20 and add 5 to the value, you would execute
|
20
|
-
# <tt>NerdDice.total_dice(20, 1, { bonus: 5 })</tt>
|
21
|
-
#
|
22
|
-
# The bonus in the options hash must be an Integer or it will be ignored
|
20
|
+
# See the README for overall usage for the module
|
23
21
|
module NerdDice
|
24
22
|
class Error < StandardError; end
|
25
23
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
# number_of_dice (Integer, DEFAULT: 1) => the quantity to roll of the type
|
32
|
-
# of die specified in the number_of_sides argument.
|
33
|
-
# options (Hash, DEFAULT: {}) any additional options you wish to include
|
34
|
-
# :bonus (Integer) => The total bonus (positive integer) or penalty
|
35
|
-
# (negative integer) to modify the total by. Is added to the total of
|
36
|
-
# all dice after they are totaled, not to each die rolled
|
37
|
-
#
|
38
|
-
# Return (Integer) => Total of the dice rolled, plus modifier if applicable
|
39
|
-
def self.total_dice(number_of_sides, number_of_dice = 1, opts = {})
|
40
|
-
total = 0
|
41
|
-
number_of_dice.times do
|
42
|
-
total += rand(number_of_sides) + 1
|
43
|
-
end
|
44
|
-
total += opts[:bonus] if opts[:bonus].is_a?(Integer)
|
45
|
-
total
|
46
|
-
end
|
24
|
+
RANDOMIZATION_TECHNIQUES = %i[securerandom random_rand random_object randomized].freeze
|
25
|
+
ABILITY_SCORE_KEYS = %i[ability_score_array_size ability_score_number_of_sides ability_score_dice_rolled
|
26
|
+
ability_score_dice_kept].freeze
|
27
|
+
|
28
|
+
extend ConvenienceMethods
|
47
29
|
end
|
data/nerd_dice.gemspec
CHANGED
@@ -24,10 +24,10 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.metadata["homepage_uri"] = spec.homepage
|
26
26
|
spec.metadata["source_code_uri"] = "https://github.com/statelesscode/nerd_dice"
|
27
|
-
spec.metadata["changelog_uri"] = "https://github.com/statelesscode/nerd_dice/CHANGELOG.md"
|
27
|
+
spec.metadata["changelog_uri"] = "https://github.com/statelesscode/nerd_dice/blob/master/CHANGELOG.md"
|
28
28
|
spec.metadata["bug_tracker_uri"] = "https://github.com/statelesscode/nerd_dice/issues"
|
29
29
|
spec.metadata["documentation_uri"] = "https://github.com/statelesscode/nerd_dice/README.md"
|
30
|
-
spec.metadata["
|
30
|
+
spec.metadata["github_repo"] = "https://github.com/statelesscode/nerd_dice"
|
31
31
|
|
32
32
|
# Specify which files should be added to the gem when it is released.
|
33
33
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -40,11 +40,16 @@ Gem::Specification.new do |spec|
|
|
40
40
|
|
41
41
|
# Certs and signing
|
42
42
|
spec.cert_chain = ["certs/msducheminjr.pem"]
|
43
|
-
spec.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $PROGRAM_NAME.
|
43
|
+
spec.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $PROGRAM_NAME.end_with?("gem")
|
44
44
|
|
45
45
|
# Dependencies
|
46
|
-
spec.
|
47
|
-
|
48
|
-
|
49
|
-
spec.add_development_dependency "
|
46
|
+
spec.add_dependency "securerandom", "~> 0.1", ">= 0.1.1"
|
47
|
+
|
48
|
+
# Development Dependencies
|
49
|
+
spec.add_development_dependency "coveralls_reborn", "~> 0.23.0"
|
50
|
+
spec.add_development_dependency "rubocop", "~> 1.22", ">= 1.22.2"
|
51
|
+
spec.add_development_dependency "rubocop-performance", "~> 1.11", ">= 1.11.5"
|
52
|
+
spec.add_development_dependency "rubocop-rake", "~> 0.6", ">= 0.6.0"
|
53
|
+
spec.add_development_dependency "rubocop-rspec", "~> 2.5", ">= 2.5.0"
|
54
|
+
spec.add_development_dependency "simplecov-lcov", "~> 0.8.0"
|
50
55
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nerd_dice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Duchemin
|
@@ -35,88 +35,136 @@ cert_chain:
|
|
35
35
|
WQ4faXJSevxT+x9TgyUNJINPkz/KqreClzdL83cwxPzFFQto7zF6zMCsj0slqJjW
|
36
36
|
EQ==
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2021-10-23 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: securerandom
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.1'
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.1.1
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0.1'
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 0.1.1
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: coveralls_reborn
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 0.23.0
|
67
|
+
type: :development
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 0.23.0
|
40
74
|
- !ruby/object:Gem::Dependency
|
41
75
|
name: rubocop
|
42
76
|
requirement: !ruby/object:Gem::Requirement
|
43
77
|
requirements:
|
44
78
|
- - "~>"
|
45
79
|
- !ruby/object:Gem::Version
|
46
|
-
version: '1.
|
80
|
+
version: '1.22'
|
47
81
|
- - ">="
|
48
82
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.
|
83
|
+
version: 1.22.2
|
50
84
|
type: :development
|
51
85
|
prerelease: false
|
52
86
|
version_requirements: !ruby/object:Gem::Requirement
|
53
87
|
requirements:
|
54
88
|
- - "~>"
|
55
89
|
- !ruby/object:Gem::Version
|
56
|
-
version: '1.
|
90
|
+
version: '1.22'
|
57
91
|
- - ">="
|
58
92
|
- !ruby/object:Gem::Version
|
59
|
-
version: 1.
|
93
|
+
version: 1.22.2
|
60
94
|
- !ruby/object:Gem::Dependency
|
61
95
|
name: rubocop-performance
|
62
96
|
requirement: !ruby/object:Gem::Requirement
|
63
97
|
requirements:
|
64
98
|
- - "~>"
|
65
99
|
- !ruby/object:Gem::Version
|
66
|
-
version: '1.
|
100
|
+
version: '1.11'
|
67
101
|
- - ">="
|
68
102
|
- !ruby/object:Gem::Version
|
69
|
-
version: 1.
|
103
|
+
version: 1.11.5
|
70
104
|
type: :development
|
71
105
|
prerelease: false
|
72
106
|
version_requirements: !ruby/object:Gem::Requirement
|
73
107
|
requirements:
|
74
108
|
- - "~>"
|
75
109
|
- !ruby/object:Gem::Version
|
76
|
-
version: '1.
|
110
|
+
version: '1.11'
|
77
111
|
- - ">="
|
78
112
|
- !ruby/object:Gem::Version
|
79
|
-
version: 1.
|
113
|
+
version: 1.11.5
|
80
114
|
- !ruby/object:Gem::Dependency
|
81
115
|
name: rubocop-rake
|
82
116
|
requirement: !ruby/object:Gem::Requirement
|
83
117
|
requirements:
|
84
118
|
- - "~>"
|
85
119
|
- !ruby/object:Gem::Version
|
86
|
-
version: '0.
|
120
|
+
version: '0.6'
|
87
121
|
- - ">="
|
88
122
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
123
|
+
version: 0.6.0
|
90
124
|
type: :development
|
91
125
|
prerelease: false
|
92
126
|
version_requirements: !ruby/object:Gem::Requirement
|
93
127
|
requirements:
|
94
128
|
- - "~>"
|
95
129
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0.
|
130
|
+
version: '0.6'
|
97
131
|
- - ">="
|
98
132
|
- !ruby/object:Gem::Version
|
99
|
-
version: 0.
|
133
|
+
version: 0.6.0
|
100
134
|
- !ruby/object:Gem::Dependency
|
101
135
|
name: rubocop-rspec
|
102
136
|
requirement: !ruby/object:Gem::Requirement
|
103
137
|
requirements:
|
104
138
|
- - "~>"
|
105
139
|
- !ruby/object:Gem::Version
|
106
|
-
version: '2.
|
140
|
+
version: '2.5'
|
107
141
|
- - ">="
|
108
142
|
- !ruby/object:Gem::Version
|
109
|
-
version: 2.0
|
143
|
+
version: 2.5.0
|
110
144
|
type: :development
|
111
145
|
prerelease: false
|
112
146
|
version_requirements: !ruby/object:Gem::Requirement
|
113
147
|
requirements:
|
114
148
|
- - "~>"
|
115
149
|
- !ruby/object:Gem::Version
|
116
|
-
version: '2.
|
150
|
+
version: '2.5'
|
117
151
|
- - ">="
|
118
152
|
- !ruby/object:Gem::Version
|
119
|
-
version: 2.0
|
153
|
+
version: 2.5.0
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: simplecov-lcov
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 0.8.0
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - "~>"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: 0.8.0
|
120
168
|
description: |2
|
121
169
|
Nerd dice allows you to roll polyhedral dice and add bonuses as you would in
|
122
170
|
a tabletop roleplaying game. You can choose to roll multiple dice and keep a
|
@@ -127,14 +175,16 @@ email:
|
|
127
175
|
- statelesscode@gmail.com
|
128
176
|
executables:
|
129
177
|
- console
|
178
|
+
- generate_checksums
|
179
|
+
- nerd_dice_benchmark
|
130
180
|
- setup
|
131
181
|
extensions: []
|
132
182
|
extra_rdoc_files: []
|
133
183
|
files:
|
184
|
+
- ".github/workflows/main.yml"
|
134
185
|
- ".gitignore"
|
135
186
|
- ".rspec"
|
136
187
|
- ".rubocop.yml"
|
137
|
-
- ".travis.yml"
|
138
188
|
- BURN_THE_CONTRIBUTOR_COVENANT_WITH_FIRE.md
|
139
189
|
- CHANGELOG.md
|
140
190
|
- Gemfile
|
@@ -144,8 +194,33 @@ files:
|
|
144
194
|
- Rakefile
|
145
195
|
- UNLICENSE.txt
|
146
196
|
- bin/console
|
197
|
+
- bin/generate_checksums
|
198
|
+
- bin/nerd_dice_benchmark
|
147
199
|
- bin/setup
|
200
|
+
- certs/msducheminjr.pem
|
201
|
+
- checksum/nerd_dice-0.1.0.gem.sha256
|
202
|
+
- checksum/nerd_dice-0.1.0.gem.sha512
|
203
|
+
- checksum/nerd_dice-0.1.1.gem.sha256
|
204
|
+
- checksum/nerd_dice-0.1.1.gem.sha512
|
205
|
+
- checksum/nerd_dice-0.2.0.gem.sha256
|
206
|
+
- checksum/nerd_dice-0.2.0.gem.sha512
|
207
|
+
- checksum/nerd_dice-0.3.0.gem.sha256
|
208
|
+
- checksum/nerd_dice-0.3.0.gem.sha512
|
148
209
|
- lib/nerd_dice.rb
|
210
|
+
- lib/nerd_dice/class_methods.rb
|
211
|
+
- lib/nerd_dice/class_methods/configure.rb
|
212
|
+
- lib/nerd_dice/class_methods/execute_die_roll.rb
|
213
|
+
- lib/nerd_dice/class_methods/harvest_totals.rb
|
214
|
+
- lib/nerd_dice/class_methods/refresh_seed.rb
|
215
|
+
- lib/nerd_dice/class_methods/roll_ability_scores.rb
|
216
|
+
- lib/nerd_dice/class_methods/roll_dice.rb
|
217
|
+
- lib/nerd_dice/class_methods/total_ability_scores.rb
|
218
|
+
- lib/nerd_dice/class_methods/total_dice.rb
|
219
|
+
- lib/nerd_dice/configuration.rb
|
220
|
+
- lib/nerd_dice/convenience_methods.rb
|
221
|
+
- lib/nerd_dice/dice_set.rb
|
222
|
+
- lib/nerd_dice/die.rb
|
223
|
+
- lib/nerd_dice/sets_randomization_technique.rb
|
149
224
|
- lib/nerd_dice/version.rb
|
150
225
|
- nerd_dice.gemspec
|
151
226
|
homepage: https://github.com/statelesscode/nerd_dice
|
@@ -156,9 +231,10 @@ metadata:
|
|
156
231
|
allowed_push_host: https://rubygems.org
|
157
232
|
homepage_uri: https://github.com/statelesscode/nerd_dice
|
158
233
|
source_code_uri: https://github.com/statelesscode/nerd_dice
|
159
|
-
changelog_uri: https://github.com/statelesscode/nerd_dice/CHANGELOG.md
|
234
|
+
changelog_uri: https://github.com/statelesscode/nerd_dice/blob/master/CHANGELOG.md
|
160
235
|
bug_tracker_uri: https://github.com/statelesscode/nerd_dice/issues
|
161
236
|
documentation_uri: https://github.com/statelesscode/nerd_dice/README.md
|
237
|
+
github_repo: https://github.com/statelesscode/nerd_dice
|
162
238
|
post_install_message:
|
163
239
|
rdoc_options: []
|
164
240
|
require_paths:
|
@@ -174,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
250
|
- !ruby/object:Gem::Version
|
175
251
|
version: '0'
|
176
252
|
requirements: []
|
177
|
-
rubygems_version: 3.
|
253
|
+
rubygems_version: 3.2.22
|
178
254
|
signing_key:
|
179
255
|
specification_version: 4
|
180
256
|
summary: A Ruby Gem for rolling polyhedral dice.
|
metadata.gz.sig
CHANGED
Binary file
|