ruby-lol 0.9.12 → 0.9.13

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/demo/demo.rb +132 -6
  4. data/lib/lol/champion.rb +1 -22
  5. data/lib/lol/champion_request.rb +18 -4
  6. data/lib/lol/client.rb +2 -0
  7. data/lib/lol/game.rb +5 -1
  8. data/lib/lol/{talent.rb → mastery.rb} +2 -6
  9. data/lib/lol/mastery_page.rb +5 -5
  10. data/lib/lol/request.rb +10 -2
  11. data/lib/lol/rune_slot.rb +9 -7
  12. data/lib/lol/stats_request.rb +1 -1
  13. data/lib/lol/summoner_request.rb +1 -1
  14. data/lib/lol/version.rb +1 -1
  15. data/spec/api_version_spec.rb +3 -3
  16. data/spec/fixtures/v1.2/get-champion-266.json +8 -0
  17. data/spec/fixtures/v1.2/get-champion.json +1 -0
  18. data/spec/fixtures/v1.3/get-ranked_stats.json +1 -0
  19. data/spec/fixtures/v1.3/get-stats.json +1 -0
  20. data/spec/fixtures/v1.3/get-summoner-masteries.json +1318 -1318
  21. data/spec/fixtures/v1.3/get-summoner-runes.json +4086 -4086
  22. data/spec/fixtures/v1.4/get-summoner-by-name.json +1 -0
  23. data/spec/fixtures/v1.4/get-summoner-masteries.json +898 -0
  24. data/spec/fixtures/v1.4/get-summoner-name.json +1 -0
  25. data/spec/fixtures/v1.4/get-summoner-runes.json +2547 -0
  26. data/spec/fixtures/v1.4/get-summoner.json +1 -0
  27. data/spec/lol/champion_request_spec.rb +28 -11
  28. data/spec/lol/champion_spec.rb +1 -1
  29. data/spec/lol/client_spec.rb +25 -24
  30. data/spec/lol/game_spec.rb +1 -1
  31. data/spec/lol/mastery_page_spec.rb +4 -4
  32. data/spec/lol/{talent_spec.rb → mastery_spec.rb} +2 -2
  33. data/spec/lol/model_spec.rb +1 -1
  34. data/spec/lol/request_spec.rb +6 -1
  35. data/spec/lol/rune_page_spec.rb +1 -1
  36. data/spec/lol/rune_slot_spec.rb +0 -10
  37. metadata +23 -8
  38. data/lib/lol/rune.rb +0 -23
  39. data/spec/lol/rune_spec.rb +0 -17
@@ -0,0 +1 @@
1
+ {"30743211":{"id":30743211,"name":"intinig","profileIconId":616,"summonerLevel":30,"revisionDate":1396368924000}}
@@ -11,22 +11,39 @@ describe ChampionRequest do
11
11
  describe "get" do
12
12
  let(:request) { ChampionRequest.new "api_key", "euw" }
13
13
 
14
- subject do
15
- expect(request).to receive(:perform_request).with(request.api_url("champion")).and_return(load_fixture("champion", ChampionRequest.api_version, "get"))
14
+ context "specifying an id" do
15
+ subject do
16
+ expect(request).to receive(:perform_request).with(request.api_url("champion/266", "freeToPlay" => false)).and_return(load_fixture("champion-266", ChampionRequest.api_version, "get"))
16
17
 
17
- request.get
18
- end
18
+ request.get :id => 266
19
+ end
19
20
 
20
- it "returns an array" do
21
- expect(subject).to be_a(Array)
21
+ it "returns a champion" do
22
+ expect(subject).to be_a(Champion)
23
+ end
22
24
  end
23
25
 
24
- it "returns an array of champions" do
25
- expect(subject.map {|e| e.class}.uniq).to eq([Champion])
26
- end
26
+ context "getting all" do
27
+ subject do
28
+ expect(request).to receive(:perform_request).with(request.api_url("champion", "freeToPlay" => false)).and_return(load_fixture("champion", ChampionRequest.api_version, "get"))
29
+
30
+ request.get
31
+ end
32
+
33
+ it "returns an array" do
34
+ expect(subject).to be_a(Array)
35
+ end
36
+
37
+ it "returns an array of champions" do
38
+ expect(subject.map {|e| e.class}.uniq).to eq([Champion])
39
+ end
40
+
41
+ it "fetches champions from the API" do
42
+ expect(subject.size).to eq(load_fixture("champion", ChampionRequest.api_version, "get")["champions"].size)
43
+ end
27
44
 
28
- it "fetches champions from the API" do
29
- expect(subject.size).to eq(load_fixture("champion", ChampionRequest.api_version, "get")["champions"].size)
30
45
  end
46
+
47
+
31
48
  end
32
49
  end
@@ -8,7 +8,7 @@ describe Champion do
8
8
  let(:valid_attributes) { { id: 1 } }
9
9
  end
10
10
 
11
- %w(id name active attack_rank defense_rank magic_rank difficulty_rank bot_enabled free_to_play bot_mm_enabled ranked_play_enabled).each do |attribute|
11
+ %w(id active bot_enabled free_to_play bot_mm_enabled ranked_play_enabled).each do |attribute|
12
12
  describe "#{attribute} attribute" do
13
13
  it_behaves_like 'plain attribute' do
14
14
  let(:attribute) { attribute }
@@ -19,30 +19,31 @@ describe Client do
19
19
  expect(subject.region).to eq("euw")
20
20
  end
21
21
 
22
- it "sets caching if redis is specified in the options" do
23
- client = Client.new "foo", redis: "redis://dummy-url"
24
- expect(client.cached?).to be_true
25
- end
26
-
27
- it "sets a default ttl of 15 * 60s" do
28
- client = Client.new "foo", redis: "redis://dummy-url"
29
- expect(client.ttl).to eq(15*60)
30
- end
31
-
32
- it "accepts a custom ttl" do
33
- client = Client.new "foo", redis: "redis://dummy-url", ttl: 10
34
- expect(client.ttl).to eq(10)
35
- end
36
-
37
- it "instantiates a redis client if redis is in the options" do
38
- client = Client.new "foo", redis: "redis://localhost:6379"
39
- expect(client.instance_variable_get(:@redis)).to be_a(Redis)
40
- end
41
-
42
- it "passes the redis_store to the request" do
43
- client = Client.new "foo", redis: "redis://localhost:6379"
44
- champion_request = client.champion
45
- expect(champion_request.cache_store).to eq(client.cache_store)
22
+ context "caching" do
23
+ let(:client) { Client.new "foo", redis: "redis://dummy-url" }
24
+ let(:real_redis) { Client.new "foo", redis: "redis://localhost:6379" }
25
+
26
+ it "sets caching if redis is specified in the options" do
27
+ expect(client.cached?).to be_true
28
+ end
29
+
30
+ it "sets a default ttl of 15 * 60s" do
31
+ expect(client.ttl).to eq(15*60)
32
+ end
33
+
34
+ it "accepts a custom ttl" do
35
+ client = Client.new "foo", redis: "redis://dummy-url", ttl: 10
36
+ expect(client.ttl).to eq(10)
37
+ end
38
+
39
+ it "instantiates a redis client if redis is in the options" do
40
+ expect(real_redis.instance_variable_get(:@redis)).to be_a(Redis)
41
+ end
42
+
43
+ it "passes the redis_store to the request" do
44
+ champion_request = real_redis.champion
45
+ expect(champion_request.cache_store).to eq(real_redis.cache_store)
46
+ end
46
47
  end
47
48
  end
48
49
 
@@ -8,7 +8,7 @@ describe Game do
8
8
  let(:valid_attributes) { { game_id: 1 } }
9
9
  end
10
10
 
11
- %w(champion_id game_id game_mode game_type invalid level map_id spell1 spell2 sub_type team_id).each do |attribute|
11
+ %w(champion_id game_id game_mode game_type invalid ip_earned level map_id spell1 spell2 sub_type team_id).each do |attribute|
12
12
  describe "#{attribute} attribute" do
13
13
  it_behaves_like 'plain attribute' do
14
14
  let(:attribute) { attribute }
@@ -15,14 +15,14 @@ describe MasteryPage do
15
15
  end
16
16
  end
17
17
 
18
- describe "#talents" do
19
- let(:fixture) { load_fixture("summoner-masteries", "v1.3", "get") }
20
- let(:talents) { fixture["30743211"]["pages"].first["talents"] }
18
+ describe "#masteries" do
19
+ let(:fixture) { load_fixture("summoner-masteries", SummonerRequest.api_version, "get") }
20
+ let(:masteries) { fixture["30743211"]["pages"].first["masteries"] }
21
21
 
22
22
  subject { MasteryPage.new fixture["30743211"]["pages"].first }
23
23
 
24
24
  it "is populated by talents" do
25
- expect(subject.talents.size).to eq(talents.size)
25
+ expect(subject.masteries.size).to eq(masteries.size)
26
26
  end
27
27
  end
28
28
 
@@ -3,12 +3,12 @@ require "lol"
3
3
 
4
4
  include Lol
5
5
 
6
- describe Talent do
6
+ describe Mastery do
7
7
  it_behaves_like 'Lol model' do
8
8
  let(:valid_attributes) { { id: 1 } }
9
9
  end
10
10
 
11
- %w(id name rank).each do |attribute|
11
+ %w(id rank).each do |attribute|
12
12
  it_behaves_like "plain attribute" do
13
13
  let(:attribute) { attribute }
14
14
  let(:attribute_value) { "asd" }
@@ -5,7 +5,7 @@ include Lol
5
5
 
6
6
  describe Model do
7
7
  describe "#inspect" do
8
- subject { Champion.new "name" => 'intinig' }
8
+ subject { Champion.new "id" => 212 }
9
9
  it "skips @raw" do
10
10
  expect(subject.inspect).not_to match(/@raw/)
11
11
  end
@@ -75,7 +75,7 @@ describe Request do
75
75
  let(:fake_redis) { FakeRedis.new }
76
76
  let(:request) { Request.new "api_key", "euw", {redis: fake_redis, ttl: 60, cached: true }}
77
77
  before :each do
78
- expect(request.class).to receive(:get).with("/foo").and_return({foo: "bar"})
78
+ expect(request.class).to receive(:get).with("/foo").and_return({foo: "bar"}).at_least(:once)
79
79
  first_result = request.perform_request "/foo"
80
80
  end
81
81
 
@@ -93,6 +93,11 @@ describe Request do
93
93
  it "sets ttl" do
94
94
  expect(fake_redis.get("/foo:ttl")).to eq(60)
95
95
  end
96
+
97
+ it "uses clean urls" do
98
+ expect(request).to receive(:clean_url).at_least(:once)
99
+ request.perform_request "/foo"
100
+ end
96
101
  end
97
102
  end
98
103
 
@@ -16,7 +16,7 @@ describe RunePage do
16
16
  end
17
17
 
18
18
  describe "#slots" do
19
- let(:fixture) { load_fixture("summoner-runes", "v1.3", "get") }
19
+ let(:fixture) { load_fixture("summoner-runes", SummonerRequest.api_version, "get") }
20
20
  let(:slots) { fixture["30743211"]["pages"].first["slots"] }
21
21
 
22
22
  subject { RunePage.new fixture["30743211"]["pages"].first }
@@ -13,14 +13,4 @@ describe RuneSlot do
13
13
  let(:attribute_value) { "asd" }
14
14
  end
15
15
 
16
- describe "#rune" do
17
- let(:fixture) { load_fixture("summoner-runes", "v1.3", "get") }
18
- let(:rune) { fixture["30743211"]["pages"].first["slots"].first["rune"] }
19
-
20
- subject { RuneSlot.new fixture["30743211"]["pages"].first["slots"].first }
21
-
22
- it "is a Rune object" do
23
- expect(subject.rune).to be_a(Rune)
24
- end
25
- end
26
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lol
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.12
4
+ version: 0.9.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Giovanni Intini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-29 00:00:00.000000000 Z
11
+ date: 2014-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -283,6 +283,7 @@ files:
283
283
  - lib/lol/league.rb
284
284
  - lib/lol/league_entry.rb
285
285
  - lib/lol/league_request.rb
286
+ - lib/lol/mastery.rb
286
287
  - lib/lol/mastery_page.rb
287
288
  - lib/lol/match_summary.rb
288
289
  - lib/lol/mini_series.rb
@@ -292,14 +293,12 @@ files:
292
293
  - lib/lol/ranked_statistics_summary.rb
293
294
  - lib/lol/request.rb
294
295
  - lib/lol/roster.rb
295
- - lib/lol/rune.rb
296
296
  - lib/lol/rune_page.rb
297
297
  - lib/lol/rune_slot.rb
298
298
  - lib/lol/static_request.rb
299
299
  - lib/lol/stats_request.rb
300
300
  - lib/lol/summoner.rb
301
301
  - lib/lol/summoner_request.rb
302
- - lib/lol/talent.rb
303
302
  - lib/lol/team.rb
304
303
  - lib/lol/team_member.rb
305
304
  - lib/lol/team_request.rb
@@ -309,14 +308,23 @@ files:
309
308
  - spec/acceptance_spec.rb
310
309
  - spec/api_version_spec.rb
311
310
  - spec/fixtures/v1.1/get-champion.json
311
+ - spec/fixtures/v1.2/get-champion-266.json
312
+ - spec/fixtures/v1.2/get-champion.json
312
313
  - spec/fixtures/v1.2/get-ranked_stats.json
313
314
  - spec/fixtures/v1.2/get-stats.json
314
315
  - spec/fixtures/v1.3/get-game.json
316
+ - spec/fixtures/v1.3/get-ranked_stats.json
317
+ - spec/fixtures/v1.3/get-stats.json
315
318
  - spec/fixtures/v1.3/get-summoner-by-name.json
316
319
  - spec/fixtures/v1.3/get-summoner-masteries.json
317
320
  - spec/fixtures/v1.3/get-summoner-name.json
318
321
  - spec/fixtures/v1.3/get-summoner-runes.json
319
322
  - spec/fixtures/v1.3/get-summoner.json
323
+ - spec/fixtures/v1.4/get-summoner-by-name.json
324
+ - spec/fixtures/v1.4/get-summoner-masteries.json
325
+ - spec/fixtures/v1.4/get-summoner-name.json
326
+ - spec/fixtures/v1.4/get-summoner-runes.json
327
+ - spec/fixtures/v1.4/get-summoner.json
320
328
  - spec/fixtures/v1/get-champion-by-id.json
321
329
  - spec/fixtures/v1/get-champion.json
322
330
  - spec/fixtures/v1/get-item-by-id.json
@@ -341,6 +349,7 @@ files:
341
349
  - spec/lol/league_request_spec.rb
342
350
  - spec/lol/league_spec.rb
343
351
  - spec/lol/mastery_page_spec.rb
352
+ - spec/lol/mastery_spec.rb
344
353
  - spec/lol/match_summary_spec.rb
345
354
  - spec/lol/mini_series_spec.rb
346
355
  - spec/lol/model_spec.rb
@@ -351,12 +360,10 @@ files:
351
360
  - spec/lol/roster_spec.rb
352
361
  - spec/lol/rune_page_spec.rb
353
362
  - spec/lol/rune_slot_spec.rb
354
- - spec/lol/rune_spec.rb
355
363
  - spec/lol/static_request_spec.rb
356
364
  - spec/lol/stats_request_spec.rb
357
365
  - spec/lol/summoner_request_spec.rb
358
366
  - spec/lol/summoner_spec.rb
359
- - spec/lol/talent_spec.rb
360
367
  - spec/lol/team_member_spec.rb
361
368
  - spec/lol/team_request_spec.rb
362
369
  - spec/lol/team_spec.rb
@@ -391,14 +398,23 @@ test_files:
391
398
  - spec/acceptance_spec.rb
392
399
  - spec/api_version_spec.rb
393
400
  - spec/fixtures/v1.1/get-champion.json
401
+ - spec/fixtures/v1.2/get-champion-266.json
402
+ - spec/fixtures/v1.2/get-champion.json
394
403
  - spec/fixtures/v1.2/get-ranked_stats.json
395
404
  - spec/fixtures/v1.2/get-stats.json
396
405
  - spec/fixtures/v1.3/get-game.json
406
+ - spec/fixtures/v1.3/get-ranked_stats.json
407
+ - spec/fixtures/v1.3/get-stats.json
397
408
  - spec/fixtures/v1.3/get-summoner-by-name.json
398
409
  - spec/fixtures/v1.3/get-summoner-masteries.json
399
410
  - spec/fixtures/v1.3/get-summoner-name.json
400
411
  - spec/fixtures/v1.3/get-summoner-runes.json
401
412
  - spec/fixtures/v1.3/get-summoner.json
413
+ - spec/fixtures/v1.4/get-summoner-by-name.json
414
+ - spec/fixtures/v1.4/get-summoner-masteries.json
415
+ - spec/fixtures/v1.4/get-summoner-name.json
416
+ - spec/fixtures/v1.4/get-summoner-runes.json
417
+ - spec/fixtures/v1.4/get-summoner.json
402
418
  - spec/fixtures/v1/get-champion-by-id.json
403
419
  - spec/fixtures/v1/get-champion.json
404
420
  - spec/fixtures/v1/get-item-by-id.json
@@ -423,6 +439,7 @@ test_files:
423
439
  - spec/lol/league_request_spec.rb
424
440
  - spec/lol/league_spec.rb
425
441
  - spec/lol/mastery_page_spec.rb
442
+ - spec/lol/mastery_spec.rb
426
443
  - spec/lol/match_summary_spec.rb
427
444
  - spec/lol/mini_series_spec.rb
428
445
  - spec/lol/model_spec.rb
@@ -433,12 +450,10 @@ test_files:
433
450
  - spec/lol/roster_spec.rb
434
451
  - spec/lol/rune_page_spec.rb
435
452
  - spec/lol/rune_slot_spec.rb
436
- - spec/lol/rune_spec.rb
437
453
  - spec/lol/static_request_spec.rb
438
454
  - spec/lol/stats_request_spec.rb
439
455
  - spec/lol/summoner_request_spec.rb
440
456
  - spec/lol/summoner_spec.rb
441
- - spec/lol/talent_spec.rb
442
457
  - spec/lol/team_member_spec.rb
443
458
  - spec/lol/team_request_spec.rb
444
459
  - spec/lol/team_spec.rb
data/lib/lol/rune.rb DELETED
@@ -1,23 +0,0 @@
1
- module Lol
2
- class Rune < Model
3
- # @!attribute [r] id
4
- # @return [Fixnum] Rune id
5
- attr_reader :id
6
-
7
- # @!attribute [r] name
8
- # @return [String] Rune name
9
- attr_reader :name
10
-
11
- # @!attribute [r] description
12
- # @return [String] Rune description
13
- attr_reader :description
14
-
15
- # @!attribute [r] tier
16
- # @return [Fixnum] Rune tier
17
- attr_reader :tier
18
-
19
- private
20
-
21
- attr_writer :id, :name, :description, :tier
22
- end
23
- end
@@ -1,17 +0,0 @@
1
- require "spec_helper"
2
- require "lol"
3
-
4
- include Lol
5
-
6
- describe Rune do
7
- it_behaves_like 'Lol model' do
8
- let(:valid_attributes) { { id: 1 } }
9
- end
10
-
11
- %w(id name description tier).each do |attribute|
12
- it_behaves_like "plain attribute" do
13
- let(:attribute) { attribute }
14
- let(:attribute_value) { "asd" }
15
- end
16
- end
17
- end