dota 0.0.20 → 0.0.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{.env.sample → .env.example} +0 -0
- data/README.md +0 -1
- data/data/ability.yml +1954 -1164
- data/data/hero.yml +6 -0
- data/data/item.yml +204 -183
- data/lib/dota/api/ability.rb +5 -8
- data/lib/dota/api/client.rb +1 -1
- data/lib/dota/version.rb +1 -1
- data/spec/dota/api/ability_spec.rb +13 -4
- data/spec/dota/api/hero_spec.rb +1 -1
- data/spec/dota/api/item_spec.rb +1 -1
- data/spec/dota_spec.rb +28 -7
- metadata +3 -3
data/lib/dota/api/ability.rb
CHANGED
@@ -5,11 +5,12 @@ module Dota
|
|
5
5
|
|
6
6
|
attr_reader :id, :name, :full_name
|
7
7
|
|
8
|
+
alias_method :full_name, :name
|
9
|
+
|
8
10
|
def initialize(id)
|
9
11
|
@id = id
|
10
12
|
@internal_name = mapping[id][0]
|
11
|
-
@name = mapping[id][1]
|
12
|
-
@full_name = mapping[id][2]
|
13
|
+
@name = mapping[id][1] || @internal_name
|
13
14
|
end
|
14
15
|
|
15
16
|
def image_url(type = :lg)
|
@@ -18,11 +19,7 @@ module Dota
|
|
18
19
|
# :hp2 - 105x105 PNG image
|
19
20
|
# :lg - 128x128 PNG image
|
20
21
|
|
21
|
-
|
22
|
-
"https://steamcdn-a.akamaihd.net/apps/dota2/images/workshop/itembuilder/stats.png"
|
23
|
-
else
|
24
|
-
"http://cdn.dota2.com/apps/dota2/images/abilities/#{internal_name}_#{type}.png"
|
25
|
-
end
|
22
|
+
"http://cdn.dota2.com/apps/dota2/images/abilities/#{internal_name}_#{type}.png"
|
26
23
|
end
|
27
24
|
|
28
25
|
private
|
@@ -30,4 +27,4 @@ module Dota
|
|
30
27
|
attr_reader :internal_name
|
31
28
|
end
|
32
29
|
end
|
33
|
-
end
|
30
|
+
end
|
data/lib/dota/api/client.rb
CHANGED
@@ -28,7 +28,7 @@ module Dota
|
|
28
28
|
if options.is_a?(Integer)
|
29
29
|
id = options
|
30
30
|
response = get("IDOTA2Match_570", "GetTeamInfoByTeamID", start_at_team_id: id, teams_requested: 1)["result"]["teams"][0]
|
31
|
-
Team.new(response) if response
|
31
|
+
Team.new(response) if response && id == response["team_id"]
|
32
32
|
else
|
33
33
|
options[:start_at_team_id] = options.delete(:after) if options[:after]
|
34
34
|
options[:teams_requested] = options.delete(:limit) if options[:limit]
|
data/lib/dota/version.rb
CHANGED
@@ -4,19 +4,28 @@ RSpec.describe Dota::API::Ability do
|
|
4
4
|
specify ".all" do
|
5
5
|
abilities = described_class.all
|
6
6
|
expect(abilities.first).to be_a described_class
|
7
|
-
expect(abilities.count).to eq
|
7
|
+
expect(abilities.count).to eq 1077
|
8
8
|
end
|
9
9
|
|
10
10
|
specify "#id" do
|
11
11
|
expect(ability.id).to eq 5003
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
describe "#name" do
|
15
|
+
specify "returns a human-friendly name" do
|
16
|
+
expect(ability.name).to eq "Mana Break"
|
17
|
+
end
|
18
|
+
|
19
|
+
specify "falls back to internal name" do
|
20
|
+
ability = described_class.new(9993)
|
21
|
+
expect(ability.name).to eq "roshan_halloween_wave_of_force"
|
22
|
+
end
|
16
23
|
end
|
17
24
|
|
18
25
|
specify "#full_name" do
|
19
|
-
|
26
|
+
# DEPRECATED: Used to just concatenate hero name
|
27
|
+
# with ability (e.g., "Antimage Mana Break")
|
28
|
+
expect(ability.full_name).to eq "Mana Break"
|
20
29
|
end
|
21
30
|
|
22
31
|
specify "#image_url" do
|
data/spec/dota/api/hero_spec.rb
CHANGED
data/spec/dota/api/item_spec.rb
CHANGED
data/spec/dota_spec.rb
CHANGED
@@ -51,7 +51,7 @@ RSpec.describe Dota do
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
describe "#
|
54
|
+
describe "#teams" do
|
55
55
|
context "given an id" do
|
56
56
|
it "returns a single team" do
|
57
57
|
VCR.use_cassette("GetTeamInfoByTeamID") do
|
@@ -76,8 +76,8 @@ RSpec.describe Dota do
|
|
76
76
|
after: :start_at_team_id,
|
77
77
|
limit: :teams_requested
|
78
78
|
}
|
79
|
-
accepted_params.each do |local, remote|
|
80
79
|
|
80
|
+
accepted_params.each do |local, remote|
|
81
81
|
specify ":#{local} should translate to :#{remote}" do
|
82
82
|
random_value = SecureRandom.hex
|
83
83
|
VCR.use_cassette("GetTeamInfoByTeamID") do
|
@@ -87,6 +87,27 @@ RSpec.describe Dota do
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
end
|
90
|
+
|
91
|
+
context "when team cannot be found" do
|
92
|
+
around do |example|
|
93
|
+
VCR.use_cassette("GetMatchDetails") do
|
94
|
+
example.run
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
it "returns nil when api returns a different team" do
|
99
|
+
different_team_id = sample_team_id + 1
|
100
|
+
response = {
|
101
|
+
"result" => {
|
102
|
+
"status" => 1,
|
103
|
+
"teams" => [{ "team_id" => different_team_id }],
|
104
|
+
},
|
105
|
+
}
|
106
|
+
expect(api).to receive(:get).with("IDOTA2Match_570", "GetTeamInfoByTeamID", start_at_team_id: sample_team_id, teams_requested: 1) { response }
|
107
|
+
team = api.teams(sample_team_id)
|
108
|
+
expect(team).to eq nil
|
109
|
+
end
|
110
|
+
end
|
90
111
|
end
|
91
112
|
|
92
113
|
specify "#leagues" do
|
@@ -111,8 +132,8 @@ RSpec.describe Dota do
|
|
111
132
|
from: :date_min,
|
112
133
|
to: :date_max
|
113
134
|
}
|
114
|
-
accepted_params.each do |local, remote|
|
115
135
|
|
136
|
+
accepted_params.each do |local, remote|
|
116
137
|
specify ":#{local} should translate to :#{remote}" do
|
117
138
|
random_value = SecureRandom.hex
|
118
139
|
VCR.use_cassette("GetScheduledLeagueGames") do
|
@@ -139,8 +160,8 @@ RSpec.describe Dota do
|
|
139
160
|
league_id: :league_id,
|
140
161
|
match_id: :match_id
|
141
162
|
}
|
142
|
-
accepted_params.each do |local, remote|
|
143
163
|
|
164
|
+
accepted_params.each do |local, remote|
|
144
165
|
specify ":#{local} should translate to :#{remote}" do
|
145
166
|
random_value = SecureRandom.hex
|
146
167
|
VCR.use_cassette("GetLiveLeagueGames") do
|
@@ -168,9 +189,9 @@ RSpec.describe Dota do
|
|
168
189
|
end
|
169
190
|
end
|
170
191
|
|
171
|
-
describe "#
|
192
|
+
describe "#matches" do
|
172
193
|
context "given an id" do
|
173
|
-
it "returns a single
|
194
|
+
it "returns a single match" do
|
174
195
|
VCR.use_cassette("GetMatchDetails") do
|
175
196
|
match = api.matches(sample_match_id)
|
176
197
|
expect(match).to be_a Dota::API::Match
|
@@ -201,8 +222,8 @@ RSpec.describe Dota do
|
|
201
222
|
limit: :matches_requested,
|
202
223
|
league_only: :tournament_games_only
|
203
224
|
}
|
204
|
-
accepted_params.each do |local, remote|
|
205
225
|
|
226
|
+
accepted_params.each do |local, remote|
|
206
227
|
specify ":#{local} should translate to :#{remote}" do
|
207
228
|
random_value = SecureRandom.hex
|
208
229
|
VCR.use_cassette("GetMatchHistory") do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dota
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vinni Carlo Caños
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facets
|
@@ -171,7 +171,7 @@ executables: []
|
|
171
171
|
extensions: []
|
172
172
|
extra_rdoc_files: []
|
173
173
|
files:
|
174
|
-
- ".env.
|
174
|
+
- ".env.example"
|
175
175
|
- ".gitignore"
|
176
176
|
- ".rspec"
|
177
177
|
- ".travis.yml"
|