nerd_dice 0.1.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|