rtanque 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.ruby-version +1 -1
- data/.travis.yml +5 -0
- data/Gemfile.ci +2 -3
- data/README.md +5 -1
- data/bin/rtanque +1 -1
- data/lib/rtanque/version.rb +1 -1
- data/rtanque.gemspec +6 -7
- data/spec/rtanque/bot_spec.rb +2 -2
- data/spec/rtanque/heading_spec.rb +8 -8
- data/spec/rtanque/match_spec.rb +4 -4
- data/spec/rtanque/normalized_attr_spec.rb +3 -5
- data/spec/rtanque/point_spec.rb +11 -11
- data/spec/rtanque/radar_spec.rb +7 -7
- data/spec/rtanque/shell_spec.rb +2 -2
- data/spec/spec_helper.rb +0 -1
- metadata +37 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 904ec986676c1508ca635f9410de479034ffd7c17d5fa62b0f1024e0321f7b18
|
4
|
+
data.tar.gz: cc73862924bab7dfbd15c440dc80454080a5bde83ea1f29abd9b5f78aca366d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 829cba49a0e2c4de0d280ea42b3eb0cb5dd5c8684deb2a3491aac0717799be420696ad740c71712fc8c4403f778f77c34344d83de86a14f7ebb9816cf9e867ff
|
7
|
+
data.tar.gz: 24dad8514f8d856dd6e30b08a0118b4c76a6ddccf540394130d3f619182c867b855765065571f267113b9d3923c024e93ed3ea95b528a1e9cc7d5cddbe268b2b
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.5.0
|
data/.travis.yml
CHANGED
data/Gemfile.ci
CHANGED
data/README.md
CHANGED
@@ -33,7 +33,7 @@ RTanque is based on the Java project [Robocode](http://robocode.sourceforge.net/
|
|
33
33
|
## Requirements
|
34
34
|
|
35
35
|
* The [Gosu](https://github.com/jlnr/gosu) library used for rendering has some dependencies. Use the [Gosu getting started](https://github.com/jlnr/gosu/wiki/Getting-Started-on-Linux) to resolve any for your system.
|
36
|
-
* Ruby 2.
|
36
|
+
* Ruby 2.2 or later (also tested on earlier versions)
|
37
37
|
|
38
38
|
## Quick Start
|
39
39
|
|
@@ -91,6 +91,10 @@ At some point you'll want to compete against other bots, or maybe you'll even or
|
|
91
91
|
Ask your friends to upload their bot(s) in a [gist](https://gist.github.com/), which you can then download with the following command:
|
92
92
|
|
93
93
|
bundle exec rtanque get_gist <gist_id> ...
|
94
|
+
|
95
|
+
For example, to download [Marksman](https://gist.github.com/SteveRidout/5909793)
|
96
|
+
|
97
|
+
bundle exec rtanque get_gist 5909793
|
94
98
|
|
95
99
|
If you'd like to publicly share your bot, post its gist id on the wiki https://github.com/awilliams/RTanque/wiki/bot-gists
|
96
100
|
|
data/bin/rtanque
CHANGED
@@ -103,7 +103,7 @@ LONGDESC
|
|
103
103
|
puts set_color("Error! Gist #{gist_id} not found. Please ensure the gist id is correct.", :red)
|
104
104
|
else
|
105
105
|
gist.files.attrs.each do |name, gist_file|
|
106
|
-
gist_path = "#{BOT_DIR}/#{gist.
|
106
|
+
gist_path = "#{BOT_DIR}/#{gist.owner.login}.#{gist_id}/#{name}"
|
107
107
|
create_file(gist_path, gist_file.content, options)
|
108
108
|
end
|
109
109
|
end
|
data/lib/rtanque/version.rb
CHANGED
data/rtanque.gemspec
CHANGED
@@ -22,13 +22,12 @@ Have fun competing against friends' tanks or the sample ones included. Maybe you
|
|
22
22
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
23
23
|
gem.require_paths = ["lib"]
|
24
24
|
|
25
|
-
gem.add_dependency 'gosu', '~> 0.
|
26
|
-
gem.add_dependency 'configuration', '~> 1.3.
|
27
|
-
gem.add_dependency 'octokit', '~>
|
28
|
-
gem.add_dependency 'thor', '~> 0.
|
29
|
-
gem.add_dependency 'texplay'
|
25
|
+
gem.add_dependency 'gosu', '~> 0.13.1'
|
26
|
+
gem.add_dependency 'configuration', '~> 1.3.4'
|
27
|
+
gem.add_dependency 'octokit', '~> 4.8.0'
|
28
|
+
gem.add_dependency 'thor', '~> 0.20.0'
|
29
|
+
gem.add_dependency 'texplay', '>= 0.4.4pre'
|
30
30
|
|
31
31
|
gem.add_development_dependency 'pry'
|
32
|
-
gem.add_development_dependency 'rspec', '~>
|
33
|
-
gem.add_development_dependency 'rspec-mocks', '~> 2.13.0'
|
32
|
+
gem.add_development_dependency 'rspec', '~> 3.7.0'
|
34
33
|
end
|
data/spec/rtanque/bot_spec.rb
CHANGED
@@ -6,12 +6,12 @@ describe RTanque::Bot do
|
|
6
6
|
|
7
7
|
context '#dead?' do
|
8
8
|
it 'should not initially be dead' do
|
9
|
-
expect(bot.dead?).to
|
9
|
+
expect(bot.dead?).to be_falsey
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should be true if health is below min' do
|
13
13
|
bot.health = RTanque::Configuration.bot.health.min - 1
|
14
|
-
expect(bot.dead?).to
|
14
|
+
expect(bot.dead?).to be_truthy
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -110,7 +110,7 @@ describe RTanque::Heading do
|
|
110
110
|
end
|
111
111
|
|
112
112
|
it 'creates frozen object' do
|
113
|
-
expect(described_class.new(0).frozen?).to
|
113
|
+
expect(described_class.new(0).frozen?).to be_truthy
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
@@ -135,43 +135,43 @@ describe RTanque::Heading do
|
|
135
135
|
describe '#==' do
|
136
136
|
it 'works like Numeric, ignoring type' do
|
137
137
|
a = described_class.new(1.0)
|
138
|
-
expect(a == 1).to
|
138
|
+
expect(a == 1).to be_truthy
|
139
139
|
end
|
140
140
|
|
141
141
|
it 'correctly compares two equal headings' do
|
142
142
|
a = described_class.new(1.0)
|
143
143
|
b = described_class.new(1.0)
|
144
|
-
expect(a == b).to
|
144
|
+
expect(a == b).to be_truthy
|
145
145
|
end
|
146
146
|
|
147
147
|
it 'correctly compares two different headings' do
|
148
148
|
a = described_class.new(0)
|
149
149
|
b = described_class.new(1.0)
|
150
|
-
expect(a == b).to
|
150
|
+
expect(a == b).to be_falsey
|
151
151
|
end
|
152
152
|
|
153
153
|
it 'compares to a numeric on LHS' do
|
154
154
|
a = described_class.new(Math::PI)
|
155
|
-
expect(Math::PI == a).to
|
155
|
+
expect(Math::PI == a).to be_truthy
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
159
159
|
describe '#eql?' do
|
160
160
|
it 'compares types like Numeric, comparing type' do
|
161
161
|
a = described_class.new(1.0)
|
162
|
-
expect(a.eql?(1)).to
|
162
|
+
expect(a.eql?(1)).to be_falsey
|
163
163
|
end
|
164
164
|
|
165
165
|
it 'correctly compares two equal headings' do
|
166
166
|
a = described_class.new(1.0)
|
167
167
|
b = described_class.new(1.0)
|
168
|
-
expect(a.eql?(b)).to
|
168
|
+
expect(a.eql?(b)).to be_truthy
|
169
169
|
end
|
170
170
|
|
171
171
|
it 'correctly compares two different headings' do
|
172
172
|
a = described_class.new(0)
|
173
173
|
b = described_class.new(1.0)
|
174
|
-
expect(a.eql?(b)).to
|
174
|
+
expect(a.eql?(b)).to be_falsey
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
data/spec/rtanque/match_spec.rb
CHANGED
@@ -12,19 +12,19 @@ describe RTanque::Match do
|
|
12
12
|
it 'should allow adding bots' do
|
13
13
|
bot = double('bot')
|
14
14
|
@instance.add_bots(bot)
|
15
|
-
expect(@instance.bots.include?(bot)).to
|
15
|
+
expect(@instance.bots.include?(bot)).to be_truthy
|
16
16
|
end
|
17
17
|
|
18
18
|
describe '#finished?' do
|
19
19
|
it 'should be true if one or less bots left' do
|
20
|
-
expect(@instance.finished?).to
|
20
|
+
expect(@instance.finished?).to be_truthy
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'should be false if two or more bots left' do
|
24
24
|
bot1 = double('bot', :name => "bot1")
|
25
25
|
bot2 = double('bot', :name => "bot2")
|
26
26
|
@instance.add_bots(bot1, bot2)
|
27
|
-
expect(@instance.finished?).to
|
27
|
+
expect(@instance.finished?).to be_falsey
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'should be true if two or more bots left w/ same name' do
|
@@ -32,7 +32,7 @@ describe RTanque::Match do
|
|
32
32
|
bot1 = double('bot', :name => "bot1")
|
33
33
|
bot2 = double('bot', :name => "bot1")
|
34
34
|
@instance.add_bots(bot1, bot2)
|
35
|
-
expect(@instance.finished?).to
|
35
|
+
expect(@instance.finished?).to be_truthy
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -8,7 +8,7 @@ describe RTanque::NormalizedAttr do
|
|
8
8
|
described_class::AttrContainer.new(1..5)
|
9
9
|
end
|
10
10
|
let(:attached_instance) do
|
11
|
-
|
11
|
+
double('some_object')
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'has -infinity as max_delta' do
|
@@ -33,13 +33,11 @@ describe RTanque::NormalizedAttr do
|
|
33
33
|
described_class::AttrContainer.new(0..5, lambda{ |attached| attached.max_delta })
|
34
34
|
end
|
35
35
|
let(:attached_instance) do
|
36
|
-
|
36
|
+
double('some_object', :max_delta => 0.1)
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'should call block for max_delta' do
|
40
|
-
|
41
|
-
attached.should_receive(:max_delta).and_return(0.1)
|
42
|
-
expect(instance.max_delta(attached)).to eq 0.1
|
40
|
+
expect(instance.max_delta(attached_instance)).to eq 0.1
|
43
41
|
end
|
44
42
|
|
45
43
|
it 'does not allow a change greater than given delta' do
|
data/spec/rtanque/point_spec.rb
CHANGED
@@ -19,7 +19,7 @@ describe RTanque::Point do
|
|
19
19
|
context '#initialize' do
|
20
20
|
it 'should be frozen' do
|
21
21
|
a = described_class.new(10, 10, @arena)
|
22
|
-
expect(a.frozen?).to
|
22
|
+
expect(a.frozen?).to be_truthy
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'should not allow modification' do
|
@@ -83,15 +83,15 @@ describe RTanque::Point do
|
|
83
83
|
it 'is true when x & y are equal' do
|
84
84
|
a = described_class.new(1, 1, @arena)
|
85
85
|
b = described_class.new(1, 1, @arena)
|
86
|
-
expect(a == b).to
|
87
|
-
expect(b == a).to
|
86
|
+
expect(a == b).to be_truthy
|
87
|
+
expect(b == a).to be_truthy
|
88
88
|
end
|
89
89
|
|
90
90
|
it 'is not true when x & y are equal' do
|
91
91
|
a = described_class.new(2, 1, @arena)
|
92
92
|
b = described_class.new(1, 1, @arena)
|
93
|
-
expect(a == b).to
|
94
|
-
expect(b == a).to
|
93
|
+
expect(a == b).to be_falsey
|
94
|
+
expect(b == a).to be_falsey
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
@@ -165,32 +165,32 @@ describe RTanque::Point do
|
|
165
165
|
|
166
166
|
it 'correctly detects equal points' do
|
167
167
|
@b = @a.clone
|
168
|
-
expect(@a.within_radius?(@b, 1)).to
|
168
|
+
expect(@a.within_radius?(@b, 1)).to be_truthy
|
169
169
|
end
|
170
170
|
|
171
171
|
it 'correctly detects point 1 to left' do
|
172
172
|
@b = described_class.new(4, 5, @arena)
|
173
|
-
expect(@a.within_radius?(@b, 1)).to
|
173
|
+
expect(@a.within_radius?(@b, 1)).to be_truthy
|
174
174
|
end
|
175
175
|
|
176
176
|
it 'correctly detects point 1 to right' do
|
177
177
|
@b = described_class.new(6, 5, @arena)
|
178
|
-
expect(@a.within_radius?(@b, 1)).to
|
178
|
+
expect(@a.within_radius?(@b, 1)).to be_truthy
|
179
179
|
end
|
180
180
|
|
181
181
|
it 'correctly detects point 1 above' do
|
182
182
|
@b = described_class.new(5, 6, @arena)
|
183
|
-
expect(@a.within_radius?(@b, 1)).to
|
183
|
+
expect(@a.within_radius?(@b, 1)).to be_truthy
|
184
184
|
end
|
185
185
|
|
186
186
|
it 'correctly detects point 1 below' do
|
187
187
|
@b = described_class.new(5, 4, @arena)
|
188
|
-
expect(@a.within_radius?(@b, 1)).to
|
188
|
+
expect(@a.within_radius?(@b, 1)).to be_truthy
|
189
189
|
end
|
190
190
|
|
191
191
|
it 'correctly detects point 1 NE' do
|
192
192
|
@b = described_class.new(6, 6, @arena)
|
193
|
-
expect(@a.within_radius?(@b, 1)).to
|
193
|
+
expect(@a.within_radius?(@b, 1)).to be_falsey
|
194
194
|
end
|
195
195
|
end
|
196
196
|
end
|
data/spec/rtanque/radar_spec.rb
CHANGED
@@ -15,12 +15,12 @@ describe RTanque::Bot::Radar do
|
|
15
15
|
|
16
16
|
it 'should return an empty array' do
|
17
17
|
radar.scan([])
|
18
|
-
expect(radar.empty?).to
|
18
|
+
expect(radar.empty?).to be_truthy
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'should 1 Reflection' do
|
22
22
|
radar.scan([mockbot(10, 20)])
|
23
|
-
expect(radar).to
|
23
|
+
expect(radar.instance_variable_get(:@reflections).size).to eq 1
|
24
24
|
expect(radar.first).to be_an_instance_of described_class::Reflection
|
25
25
|
end
|
26
26
|
|
@@ -32,7 +32,7 @@ describe RTanque::Bot::Radar do
|
|
32
32
|
it 'should clear self' do
|
33
33
|
radar.scan([mockbot(10, 20, 'otherbot')])
|
34
34
|
radar.scan([])
|
35
|
-
expect(radar.empty?).to
|
35
|
+
expect(radar.empty?).to be_truthy
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'reflections should be correct' do
|
@@ -57,7 +57,7 @@ describe RTanque::Bot::Radar do
|
|
57
57
|
y = 10 + Math.cos(RTanque::Bot::Radar::VISION_RANGE.last) * 10
|
58
58
|
bots = [mockbot(x, y, 'border')]
|
59
59
|
radar.scan(bots)
|
60
|
-
expect(radar.
|
60
|
+
expect(radar.instance_variable_get(:@reflections).size).to eq 1
|
61
61
|
end
|
62
62
|
|
63
63
|
it 'should detect point on min vision range' do
|
@@ -65,7 +65,7 @@ describe RTanque::Bot::Radar do
|
|
65
65
|
y = 10 + Math.cos(RTanque::Bot::Radar::VISION_RANGE.first) * 10
|
66
66
|
bots = [mockbot(x, y, 'border')]
|
67
67
|
radar.scan(bots)
|
68
|
-
expect(radar.
|
68
|
+
expect(radar.instance_variable_get(:@reflections).size).to eq 1
|
69
69
|
end
|
70
70
|
|
71
71
|
it 'should not detect point outside max vision range' do
|
@@ -73,7 +73,7 @@ describe RTanque::Bot::Radar do
|
|
73
73
|
y = 10 + Math.cos(RTanque::Bot::Radar::VISION_RANGE.last) * 10
|
74
74
|
bots = [mockbot(x + 0.01, y, 'border')]
|
75
75
|
radar.scan(bots)
|
76
|
-
expect(radar.
|
76
|
+
expect(radar.instance_variable_get(:@reflections).size).to eq 0
|
77
77
|
end
|
78
78
|
|
79
79
|
it 'should not detect point outside max vision range' do
|
@@ -81,7 +81,7 @@ describe RTanque::Bot::Radar do
|
|
81
81
|
y = 10 + Math.cos(RTanque::Bot::Radar::VISION_RANGE.first) * 10
|
82
82
|
bots = [mockbot(x, y - 0.01, 'border')]
|
83
83
|
radar.scan(bots)
|
84
|
-
expect(radar.
|
84
|
+
expect(radar.instance_variable_get(:@reflections).size).to eq 0
|
85
85
|
end
|
86
86
|
end
|
87
87
|
end
|
data/spec/rtanque/shell_spec.rb
CHANGED
@@ -17,9 +17,9 @@ describe RTanque::Shell do
|
|
17
17
|
|
18
18
|
it 'shell should be dead after hit' do
|
19
19
|
bots = [mockbot(10, 10, 'deadbot')]
|
20
|
-
expect(shell.dead?).to
|
20
|
+
expect(shell.dead?).to be_falsey
|
21
21
|
shell.hits(bots)
|
22
|
-
expect(shell.dead?).to
|
22
|
+
expect(shell.dead?).to be_truthy
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'should hit shell on bot radius' do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,127 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtanque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gosu
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.13.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.13.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: configuration
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.3.
|
33
|
+
version: 1.3.4
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.3.
|
40
|
+
version: 1.3.4
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: octokit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 4.8.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 4.8.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: thor
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.20.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 0.20.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: texplay
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.4.4pre
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 0.4.4pre
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: pry
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - ~>
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 2.13.0
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 2.13.0
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rspec-mocks
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ~>
|
101
|
+
- - "~>"
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
103
|
+
version: 3.7.0
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
|
-
- - ~>
|
108
|
+
- - "~>"
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
110
|
+
version: 3.7.0
|
125
111
|
description: |-
|
126
112
|
RTanque is a game for programmers. Players program the brain of a tank and then send their tank+brain into battle with other tanks. All tanks are otherwise equal.
|
127
113
|
|
@@ -135,12 +121,12 @@ executables:
|
|
135
121
|
extensions: []
|
136
122
|
extra_rdoc_files: []
|
137
123
|
files:
|
138
|
-
- .gitignore
|
139
|
-
- .rspec
|
140
|
-
- .ruby-gemset
|
141
|
-
- .ruby-version
|
142
|
-
- .travis.yml
|
143
|
-
- .yardopts
|
124
|
+
- ".gitignore"
|
125
|
+
- ".rspec"
|
126
|
+
- ".ruby-gemset"
|
127
|
+
- ".ruby-version"
|
128
|
+
- ".travis.yml"
|
129
|
+
- ".yardopts"
|
144
130
|
- Gemfile
|
145
131
|
- Gemfile.ci
|
146
132
|
- LICENSE.txt
|
@@ -276,17 +262,17 @@ require_paths:
|
|
276
262
|
- lib
|
277
263
|
required_ruby_version: !ruby/object:Gem::Requirement
|
278
264
|
requirements:
|
279
|
-
- -
|
265
|
+
- - ">="
|
280
266
|
- !ruby/object:Gem::Version
|
281
267
|
version: '0'
|
282
268
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
283
269
|
requirements:
|
284
|
-
- -
|
270
|
+
- - ">="
|
285
271
|
- !ruby/object:Gem::Version
|
286
272
|
version: '0'
|
287
273
|
requirements: []
|
288
274
|
rubyforge_project:
|
289
|
-
rubygems_version: 2.
|
275
|
+
rubygems_version: 2.7.3
|
290
276
|
signing_key:
|
291
277
|
specification_version: 4
|
292
278
|
summary: RTanque is a game for programmers. Players program the brain of a tank and
|