dice_box 0.1.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 +7 -0
- data/.cane +5 -0
- data/.gitignore +5 -0
- data/.rspec +3 -0
- data/.rubocop.yml +31 -0
- data/.ruby-version +1 -0
- data/.travis.yml +11 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +22 -0
- data/README.md +75 -0
- data/Rakefile +36 -0
- data/dice.jpg +0 -0
- data/dice_box.gemspec +29 -0
- data/lib/dice_box/dice/side.rb +21 -0
- data/lib/dice_box/dice.rb +86 -0
- data/lib/dice_box/version.rb +4 -0
- data/lib/dice_box.rb +7 -0
- data/spec/dice_box/dice/side_spec.rb +15 -0
- data/spec/dice_box/dice_spec.rb +163 -0
- data/spec/spec_helper.rb +13 -0
- metadata +179 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: edf058b8c28a23ef4bb53a55a9580797bb633f9f
|
4
|
+
data.tar.gz: 2a7e287a785e8d5dc8590092a3bb3fc9b91ab345
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c6fd3e0c0486d889b73f4ab4d365631a4db5e87d5be9f06b43458303cb61f733871846cdef2b38165a792a329fdcad7b9838806527a964433fc3656569235f5c
|
7
|
+
data.tar.gz: 5fac7ec74f9d61bcd92a8fcc8299b1974880d597bce01b829e39f597cd037f731f9df7062c4a053ee662e6580cffbddccb2d7f5aeec04fe5a59097b3e8373998
|
data/.cane
ADDED
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- '*.gemspec'
|
4
|
+
|
5
|
+
Style/EmptyLineBetweenDefs:
|
6
|
+
Severity: error
|
7
|
+
|
8
|
+
Style/HashSyntax:
|
9
|
+
Severity: error
|
10
|
+
|
11
|
+
Style/LineLength:
|
12
|
+
Max: 120
|
13
|
+
Severity: error
|
14
|
+
|
15
|
+
Style/MethodLength:
|
16
|
+
Max: 25
|
17
|
+
Severity: error
|
18
|
+
|
19
|
+
Style/TrailingWhitespace:
|
20
|
+
Severity: error
|
21
|
+
|
22
|
+
Style/TrailingBlankLines:
|
23
|
+
Severity: error
|
24
|
+
|
25
|
+
### Disabled checks
|
26
|
+
|
27
|
+
Documentation:
|
28
|
+
Enabled: false
|
29
|
+
|
30
|
+
Style/SelfAssignment:
|
31
|
+
Enabled: false
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.1.1
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Rafaël Gonzalez
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# DiceBox
|
2
|
+
|
3
|
+

|
4
|
+
|
5
|
+
[](https://travis-ci.org/rafaelgonzalez/dice_box)
|
6
|
+
[](https://codeclimate.com/github/rafaelgonzalez/dice_box)
|
7
|
+
[](https://codeclimate.com/github/rafaelgonzalez/dice_box)
|
8
|
+
|
9
|
+
A gem of dices, to get rolling with Ruby.
|
10
|
+
|
11
|
+
**Supported Ruby versions:**
|
12
|
+
|
13
|
+
- 2.1.0
|
14
|
+
- 2.0.0
|
15
|
+
- 1.9.3
|
16
|
+
|
17
|
+
## Installation
|
18
|
+
|
19
|
+
Via RubyGems:
|
20
|
+
|
21
|
+
$ gem install dice_box
|
22
|
+
|
23
|
+
Or in a Gemfile:
|
24
|
+
|
25
|
+
gem 'dice_box'
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
Complete documentation available [here](http://rubydoc.info/github/rafaelgonzalez/dice_box/frames).
|
30
|
+
|
31
|
+
- [DiceBox::Dice](http://rubydoc.info/github/rafaelgonzalez/dice_box/DiceBox/Dice) (rolling dices)
|
32
|
+
```ruby
|
33
|
+
# Roll a dice with 7 sides
|
34
|
+
DiceBox::Dice.roll(7) # => 4
|
35
|
+
|
36
|
+
# Roll 3 dices with 12 sides
|
37
|
+
DiceBox::Dice.roll(12, 3) # => 27
|
38
|
+
|
39
|
+
# Using an instance
|
40
|
+
dice = DiceBox::Dice.new(12)
|
41
|
+
dice.rolled # => nil
|
42
|
+
dice.roll # => 24
|
43
|
+
dice.rolled # => 24
|
44
|
+
```
|
45
|
+
|
46
|
+
- [DiceBox::Dice::Sides](http://rubydoc.info/github/rafaelgonzalez/dice_box/DiceBox/Dice/Side) (cheating with sides weights)
|
47
|
+
```ruby
|
48
|
+
dice = DiceBox::Dice.new(3)
|
49
|
+
dice.sides[0].weight = 0.0
|
50
|
+
dice.sides[1].weight = 2.0
|
51
|
+
|
52
|
+
dice.roll # => 2
|
53
|
+
dice.roll # => 3
|
54
|
+
dice.roll # => 2
|
55
|
+
dice.roll # => 2
|
56
|
+
dice.roll # => 2
|
57
|
+
```
|
58
|
+
|
59
|
+
## Versioning
|
60
|
+
|
61
|
+
DiceBox follows the principles of [semantic versioning](http://semver.org).
|
62
|
+
|
63
|
+
> Given a version number MAJOR.MINOR.PATCH, increment the:
|
64
|
+
|
65
|
+
> - MAJOR version when you make incompatible API changes,
|
66
|
+
> - MINOR version when you add functionality in a backwards-compatible manner, and
|
67
|
+
> - PATCH version when you make backwards-compatible bug fixes.
|
68
|
+
|
69
|
+
> Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
|
70
|
+
|
71
|
+
## License
|
72
|
+
|
73
|
+
Copyright :copyright: 2014 Rafaël Gonzalez
|
74
|
+
|
75
|
+
Released under the terms of the MIT licence. See the [LICENSE](https://raw.githubusercontent.com/rafaelgonzalez/dice_box/master/LICENSE.txt) file for more details.
|
data/Rakefile
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
RSpec::Core::RakeTask.new('spec')
|
5
|
+
|
6
|
+
task default: :test
|
7
|
+
|
8
|
+
desc 'Run the test suite'
|
9
|
+
task test: :spec
|
10
|
+
|
11
|
+
begin
|
12
|
+
require 'cane/rake_task'
|
13
|
+
|
14
|
+
desc 'Run Cane to check quality metrics'
|
15
|
+
Cane::RakeTask.new(:quality) do |cane|
|
16
|
+
cane.canefile = '.cane'
|
17
|
+
end
|
18
|
+
rescue LoadError
|
19
|
+
warn 'Cane not available, :quality task not provided.'
|
20
|
+
end
|
21
|
+
|
22
|
+
begin
|
23
|
+
require 'rubocop/rake_task'
|
24
|
+
|
25
|
+
desc 'Run RuboCop'
|
26
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
27
|
+
task.fail_on_error = false
|
28
|
+
end
|
29
|
+
rescue LoadError
|
30
|
+
warn 'RuboCop not available, :rubocop task not provided.'
|
31
|
+
end
|
32
|
+
|
33
|
+
Rake::Task[:test].enhance do
|
34
|
+
Rake::Task[:quality].invoke
|
35
|
+
Rake::Task[:rubocop].invoke
|
36
|
+
end
|
data/dice.jpg
ADDED
Binary file
|
data/dice_box.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'dice_box/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'dice_box'
|
8
|
+
spec.version = DiceBox::VERSION
|
9
|
+
spec.authors = ['Rafaël Gonzalez']
|
10
|
+
spec.email = ['github@rafaelgonzalez.me']
|
11
|
+
spec.summary = %q{A gem with dices, to get rolling with Ruby.}
|
12
|
+
spec.description = %q{A gem with dices, to get rolling with Ruby.}
|
13
|
+
spec.homepage = 'https://github.com/rafaelgonzalez/dice_box'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.5'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
|
+
spec.add_development_dependency 'yard'
|
24
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
25
|
+
spec.add_development_dependency 'simplecov', '~> 0.9.0'
|
26
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
27
|
+
spec.add_development_dependency 'cane'
|
28
|
+
spec.add_development_dependency 'rubocop'
|
29
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module DiceBox
|
2
|
+
class Dice
|
3
|
+
# Representation of the side of a dice
|
4
|
+
class Side
|
5
|
+
# @!attribute [r] value
|
6
|
+
# @return [Integer] the actual value of the Side
|
7
|
+
attr_reader :value
|
8
|
+
|
9
|
+
# @!attribute [rw] weight
|
10
|
+
# @return [Float] the weight of the Side
|
11
|
+
attr_accessor :weight
|
12
|
+
|
13
|
+
# @param value [Integer] the actual value of the Side
|
14
|
+
# @param weight [Float] the weight of the Side
|
15
|
+
def initialize(value, weight = 1.0)
|
16
|
+
@value = value
|
17
|
+
@weight = weight
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module DiceBox
|
2
|
+
# Representation of a dice
|
3
|
+
class Dice
|
4
|
+
# @!attribute [r] sides
|
5
|
+
# @return [Array] the Array of Sides of the Dice
|
6
|
+
attr_reader :sides
|
7
|
+
|
8
|
+
# @!attribute [r] rolled_side
|
9
|
+
# @return [Array] the last rolled Side
|
10
|
+
attr_reader :rolled_side
|
11
|
+
|
12
|
+
# @param sides_number [Integer] the number of Sides this Dice should have
|
13
|
+
def initialize(sides_number)
|
14
|
+
@sides = build_sides(sides_number)
|
15
|
+
@rolled_side = nil
|
16
|
+
end
|
17
|
+
|
18
|
+
# Rolls multiple dices with the same number of sides
|
19
|
+
# @param sides_number [Integer] the number of sides of the dices
|
20
|
+
# @param amount [Integer] the number of dices rolled
|
21
|
+
# @return [Integer] the total roll result
|
22
|
+
def self.roll(sides_number, amount = 1)
|
23
|
+
return 0 if amount.nil? || amount <= 0
|
24
|
+
|
25
|
+
amount.times.map do
|
26
|
+
Random.new.rand(1..sides_number)
|
27
|
+
end.reduce(&:+)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Rolls the dice
|
31
|
+
# @note Sets #rolled_side to the rolled Side
|
32
|
+
# @return [Integer] the value of the rolled Side
|
33
|
+
def roll
|
34
|
+
@rolled_side = balanced? ? sides.sample : weighted_roll
|
35
|
+
rolled_side.value
|
36
|
+
end
|
37
|
+
|
38
|
+
# Returns the last value rolled
|
39
|
+
# @return [Integer] the last rolled value.
|
40
|
+
def rolled
|
41
|
+
@rolled_side ? @rolled_side.value : nil
|
42
|
+
end
|
43
|
+
|
44
|
+
# Determines if all Sides of the Dice have the same weight
|
45
|
+
# @return [Boolean]
|
46
|
+
def balanced?
|
47
|
+
!crooked?
|
48
|
+
end
|
49
|
+
|
50
|
+
# Determines if at least one Side has a different weight than any other Side of the Dice
|
51
|
+
# @return [Boolean]
|
52
|
+
def crooked?
|
53
|
+
sides.map(&:weight).any? do |weight|
|
54
|
+
weight != sides.first.weight
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# The weight of the Dice, sum of all Sides weights
|
59
|
+
# @return [Float] the weight of the Dice
|
60
|
+
def weight
|
61
|
+
sides.map(&:weight).reduce(&:+)
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
# Instanciates multiple Sides
|
67
|
+
# @param sides_number [Integer] the number of Sides to instanciate
|
68
|
+
# @return [Array] the Array of instanciated Sides
|
69
|
+
def build_sides(sides_number)
|
70
|
+
sides_number.times.map do |number|
|
71
|
+
Side.new(number + 1)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# Rolls the Dice taking Sides weights into account
|
76
|
+
# @return [Side] the rolled Side
|
77
|
+
def weighted_roll
|
78
|
+
num = rand(0..weight)
|
79
|
+
|
80
|
+
sides.each do |side|
|
81
|
+
return side if side.weight > num
|
82
|
+
num = num - side.weight
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
data/lib/dice_box.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
describe DiceBox::Dice::Side do
|
2
|
+
subject { described_class.new(12) }
|
3
|
+
|
4
|
+
describe '#value' do
|
5
|
+
it 'returns the value' do
|
6
|
+
expect(subject.value).to eql 12
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe '#weight' do
|
11
|
+
it 'returns the value' do
|
12
|
+
expect(subject.weight).to eql 1.0
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
describe DiceBox::Dice do
|
2
|
+
subject { described_class.new(4) }
|
3
|
+
|
4
|
+
describe '#sides' do
|
5
|
+
it 'returns an Array of Sides' do
|
6
|
+
expect(subject.sides).to be_a(Array)
|
7
|
+
|
8
|
+
subject.sides.each do |side|
|
9
|
+
expect(side).to be_a(DiceBox::Dice::Side)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'has the correct number of sides' do
|
14
|
+
expect(subject.sides.length).to eql 4
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#rolled_side' do
|
19
|
+
context 'with a non-rolled Dice' do
|
20
|
+
it 'returns nil' do
|
21
|
+
expect(subject.rolled_side).to be_nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'with a rolled Dice' do
|
26
|
+
it 'returns the last rolled side' do
|
27
|
+
rolled_value = subject.roll
|
28
|
+
|
29
|
+
expect(subject.rolled_side.value).to eql rolled_value
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '.roll' do
|
35
|
+
context 'with 1 dice of 6 sides' do
|
36
|
+
it 'is always superior to 0' do
|
37
|
+
expect(described_class.roll(6, 1)).to be > 0
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'is always inferior to 7' do
|
41
|
+
expect(described_class.roll(6, 1)).to be < 7
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'with 5 dices of 3 sides' do
|
46
|
+
it 'is always superior to 5' do
|
47
|
+
expect(described_class.roll(3, 5)).to be > 4
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'is always inferior to 16' do
|
51
|
+
expect(described_class.roll(3, 5)).to be < 16
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'with 0 dice' do
|
56
|
+
it 'returns 0' do
|
57
|
+
expect(described_class.roll(6, 0)).to eql 0
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'with a negative amount of dices' do
|
62
|
+
it 'returns 0' do
|
63
|
+
expect(described_class.roll(6, -1)).to eql 0
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe '#roll' do
|
69
|
+
it 'sets #rolled_side to the rolled value' do
|
70
|
+
rolled_value = subject.roll
|
71
|
+
|
72
|
+
expect(subject.rolled_side.value).to eql rolled_value
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'with a dice of 6 sides' do
|
76
|
+
subject { described_class.new(6) }
|
77
|
+
|
78
|
+
it 'is always superior to 0' do
|
79
|
+
expect(subject.roll).to be > 0
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'is always inferior to 7' do
|
83
|
+
expect(subject.roll).to be < 7
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context 'with a crooked dice' do
|
88
|
+
subject { described_class.new(3) }
|
89
|
+
|
90
|
+
before do
|
91
|
+
subject.sides[0].weight = 0
|
92
|
+
subject.sides[1].weight = 0
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'rolls the side with weight' do
|
96
|
+
expect(subject.roll).to eql 3
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe '#rolled' do
|
102
|
+
context 'with a non-rolled Dice' do
|
103
|
+
it 'returns nil' do
|
104
|
+
expect(subject.rolled).to be_nil
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context 'with a rolled Dice' do
|
109
|
+
it 'returns the last rolled side' do
|
110
|
+
rolled_value = subject.roll
|
111
|
+
|
112
|
+
expect(subject.rolled).to eql rolled_value
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe '#balanced?' do
|
118
|
+
context 'with Sides of the same weight' do
|
119
|
+
it 'returns true' do
|
120
|
+
expect(subject).to be_balanced
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
context 'with Sides with different weight' do
|
125
|
+
before { subject.sides.first.weight = 2.0 }
|
126
|
+
|
127
|
+
it 'returns false' do
|
128
|
+
expect(subject).not_to be_balanced
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
describe '#crooked?' do
|
134
|
+
context 'with Sides of the same weight' do
|
135
|
+
it 'returns false' do
|
136
|
+
expect(subject).not_to be_crooked
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
context 'with Sides with different weight' do
|
141
|
+
before { subject.sides.first.weight = 2.0 }
|
142
|
+
|
143
|
+
it 'returns true' do
|
144
|
+
expect(subject).to be_crooked
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
describe '#weight' do
|
150
|
+
subject { described_class.new(4) }
|
151
|
+
|
152
|
+
before do
|
153
|
+
subject.sides[0].weight = 2.32
|
154
|
+
subject.sides[1].weight = 3.0
|
155
|
+
subject.sides[2].weight = 1.26
|
156
|
+
subject.sides[3].weight = 0.72
|
157
|
+
end
|
158
|
+
|
159
|
+
it 'returns the total of Sides weights' do
|
160
|
+
expect(subject.weight).to eql 7.3
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dice_box
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Rafaël Gonzalez
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-07-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: yard
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.9.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.9.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: codeclimate-test-reporter
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: cane
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: A gem with dices, to get rolling with Ruby.
|
126
|
+
email:
|
127
|
+
- github@rafaelgonzalez.me
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".cane"
|
133
|
+
- ".gitignore"
|
134
|
+
- ".rspec"
|
135
|
+
- ".rubocop.yml"
|
136
|
+
- ".ruby-version"
|
137
|
+
- ".travis.yml"
|
138
|
+
- Gemfile
|
139
|
+
- LICENSE.txt
|
140
|
+
- README.md
|
141
|
+
- Rakefile
|
142
|
+
- dice.jpg
|
143
|
+
- dice_box.gemspec
|
144
|
+
- lib/dice_box.rb
|
145
|
+
- lib/dice_box/dice.rb
|
146
|
+
- lib/dice_box/dice/side.rb
|
147
|
+
- lib/dice_box/version.rb
|
148
|
+
- spec/dice_box/dice/side_spec.rb
|
149
|
+
- spec/dice_box/dice_spec.rb
|
150
|
+
- spec/spec_helper.rb
|
151
|
+
homepage: https://github.com/rafaelgonzalez/dice_box
|
152
|
+
licenses:
|
153
|
+
- MIT
|
154
|
+
metadata: {}
|
155
|
+
post_install_message:
|
156
|
+
rdoc_options: []
|
157
|
+
require_paths:
|
158
|
+
- lib
|
159
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: '0'
|
164
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
requirements: []
|
170
|
+
rubyforge_project:
|
171
|
+
rubygems_version: 2.2.2
|
172
|
+
signing_key:
|
173
|
+
specification_version: 4
|
174
|
+
summary: A gem with dices, to get rolling with Ruby.
|
175
|
+
test_files:
|
176
|
+
- spec/dice_box/dice/side_spec.rb
|
177
|
+
- spec/dice_box/dice_spec.rb
|
178
|
+
- spec/spec_helper.rb
|
179
|
+
has_rdoc:
|