riot_lol_api 0.0.4 → 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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +166 -11
  4. data/lib/riot_lol_api/client.rb +220 -20
  5. data/lib/riot_lol_api/model/aggregated_stat.rb +14 -0
  6. data/lib/riot_lol_api/model/altimage.rb +14 -0
  7. data/lib/riot_lol_api/model/entry.rb +14 -0
  8. data/lib/riot_lol_api/model/gold.rb +14 -0
  9. data/lib/riot_lol_api/model/image.rb +22 -12
  10. data/lib/riot_lol_api/model/item.rb +3 -0
  11. data/lib/riot_lol_api/model/league.rb +16 -0
  12. data/lib/riot_lol_api/model/map.rb +18 -0
  13. data/lib/riot_lol_api/model/mastery.rb +16 -2
  14. data/lib/riot_lol_api/model/page.rb +1 -0
  15. data/lib/riot_lol_api/model/player_stat_rank.rb +16 -0
  16. data/lib/riot_lol_api/model/player_stat_summary.rb +16 -0
  17. data/lib/riot_lol_api/model/rune.rb +14 -0
  18. data/lib/riot_lol_api/model/spell.rb +1 -0
  19. data/lib/riot_lol_api/model/summoner.rb +58 -3
  20. data/lib/riot_lol_api/model.rb +0 -2
  21. data/lib/riot_lol_api/version.rb +1 -1
  22. data/lib/riot_lol_api.rb +1 -1
  23. data/riot_lol_api.gemspec +9 -1
  24. data/spec/mock_response/get_all_champions_by_ids.json +13 -0
  25. data/spec/mock_response/get_all_champions_by_ids_all_data.json +13 -0
  26. data/spec/mock_response/get_all_item.json +13 -0
  27. data/spec/mock_response/get_all_masteries.json +13 -0
  28. data/spec/mock_response/get_all_runes.json +13 -0
  29. data/spec/mock_response/get_all_summoner_spells.json +13 -0
  30. data/spec/mock_response/get_all_summoner_spells_by_ids.json +13 -0
  31. data/spec/mock_response/get_item_by_id.json +13 -0
  32. data/spec/mock_response/get_mastery_by_id.json +13 -0
  33. data/spec/mock_response/get_player_league.json +11 -0
  34. data/spec/mock_response/get_player_stat_ranked.json +12 -0
  35. data/spec/mock_response/get_player_stat_summaries.json +13 -0
  36. data/spec/mock_response/get_realm.json +13 -0
  37. data/spec/mock_response/get_rune_by_id.json +13 -0
  38. data/spec/mock_response/get_summoner_spell_by_id.json +13 -0
  39. data/spec/mock_response/get_version.json +13 -0
  40. data/spec/riot_lol_api_spec.rb +313 -8
  41. metadata +43 -6
  42. data/.DS_Store +0 -0
  43. data/lib/.DS_Store +0 -0
  44. data/spec/.DS_Store +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f0c729a9e5623a8a5ba0df115b092558d1db2bc
4
- data.tar.gz: 6781933dc8c5b2c1d113f6d0255ceefd85cbacb0
3
+ metadata.gz: 97acb1526afe0a5c58b273e0001f83e5818f625a
4
+ data.tar.gz: ce093f7638e7986b430e389eddc1cf02bc169dfd
5
5
  SHA512:
6
- metadata.gz: bb38c0b530d75258e241e3001a75cd793422f81befbfd53c22c30a8ce664b4b3cc80e049711bd4e2a09f0208decb97c029e8bafee1d9268e30f5bfd37e7aab85
7
- data.tar.gz: 6a02d861420dc41f4d3e2761836151ff3d65ec977b3e8215b3743b6770fc2042815df85df905f49218301e62629abcd91542ca5ddd7779b6346dbaa50e0424c6
6
+ metadata.gz: 46d383514004bfa91e94ad71e37186cbc15131450d55485f5896a7232a6342cc4556cbd05c23afe8a52da979091bd1d13f77f91ea9f1e079856e8def6b1281ad
7
+ data.tar.gz: 5911f772bf743b5597617b2b077654e022691b3ea18426cedd913a6ae523d188bf5954c6a29562c5c0fb8340abd7bff551ca31f70b9f7e6cc24ac2ef60d37586
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .DS_Store
data/README.md CHANGED
@@ -1,30 +1,185 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/riot_lol_api.svg)](http://badge.fury.io/rb/riot_lol_api)
2
2
 
3
- # RiotLolApi
4
-
5
- RIOT LOL API
3
+ ```
4
+ __________.__ __ _____ __________.___
5
+ \______ \__| _____/ |_ _________ _____ ____ / _ \\______ \ |
6
+ | _/ |/ _ \ __\ / ___\__ \ / \_/ __ \ / /_\ \| ___/ |
7
+ | | \ ( <_> ) | / /_/ > __ \| Y Y \ ___/ / | \ | | |
8
+ |____|_ /__|\____/|__| \___ (____ /__|_| /\___ > \____|__ /____| |___|
9
+ \/ /_____/ \/ \/ \/ \/
10
+ ```
6
11
 
7
12
  ## Status
8
13
 
9
- In work ...
14
+ ###V 0.1.0
15
+
16
+ ```
17
+ - champion-v1.2 ... NO IMPLEMENT
18
+ - game-v1.3 ... OK
19
+ - league-v2.4 ...
20
+ /by-summoner/{summonerIds}/entry ... OK
21
+ - lol-static-data-v1.2 ... OK
22
+ - stats-v1.3 ... OK
23
+ - summoner-v1.4 ... OK
24
+ /{summonerIds}/name ... NO IMPLEMENT
25
+ - team-v2.3 ... NO IMPLEMENT
26
+ ```
10
27
 
11
28
  ## Installation
12
29
 
13
30
  Add this line to your application's Gemfile:
14
-
15
- gem 'riot_lol_api'
31
+ ```ruby
32
+ gem 'riot_lol_api'
33
+ ```
16
34
 
17
35
  And then execute:
18
-
19
- $ bundle
36
+ ```shell
37
+ bundle
38
+ ```
20
39
 
21
40
  Or install it yourself as:
22
-
23
- $ gem install riot_lol_api
41
+ ```shell
42
+ gem install riot_lol_api
43
+ ```
24
44
 
25
45
  ## Usage
46
+ ###1) Token
47
+ Get token api on [http://developer.riotgames.com/](http://developer.riotgames.com/)
48
+
49
+ ###2) Scripts
50
+ Sample scripts
51
+ ```ruby
52
+ # Set token
53
+ RiotLolApi::TOKEN = XXXXXXXXXXXXXXXXXXXXXXXXXXXX
54
+
55
+ # Create client
56
+ client = RiotLolApi::Client.new(:region => 'your_region')
57
+
58
+ # Start get data
59
+ summoner = client.get_summoner_by_name 'your_summoner_name'
60
+
61
+ ```
62
+
63
+ Methods
64
+ ```ruby
65
+ # CLIENT
66
+
67
+ # Create client object
68
+ client = RiotLolApi::Client.new(:region => 'your_region')
69
+
70
+ # SUMMONER
71
+
72
+ # Get summoner by name
73
+ # params : name => string
74
+ client.get_summoner_by_name 'pacoloco'
75
+
76
+ # Get summoner by id
77
+ # params : id => integer
78
+ client.get_summoner_by_id 20639710
79
+
80
+ # CHAMPION
81
+
82
+ # Get champion by id
83
+ # params :
84
+ # id => integer,
85
+ # data => hash (version, champData) - default => nill,
86
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
87
+ client.get_champion_by_id id_champ, data = {:version => num_version, :champData => 'all'}, locale = 'fr_FR'
88
+
89
+ # Get all champions
90
+ # params :
91
+ # data => hash (version, champData) - default => nill,
92
+ # sort_id => boolean - default => false
93
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
94
+ client.get_all_champions data = {:version => num_version, :champData => 'all'}, sort_id = 'false', locale = 'fr_FR'
95
+
96
+ # ITEM
97
+
98
+ # Get item by id
99
+ # params :
100
+ # id => integer,
101
+ # data => hash (version, itemListData) - default => nill,
102
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
103
+ client.get_item_by_id id, data = {:version => num_version, :itemListData => 'all'}, locale = 'fr_FR'
104
+
105
+ # Get all items
106
+ # params :
107
+ # data => hash (version, itemListData) - default => nill,
108
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
109
+ client.get_all_items data = {:version => num_version, :itemListData => 'all'}, locale = 'fr_FR'
110
+
111
+ # MASTERY
112
+
113
+ # Get masteries by id
114
+ # params :
115
+ # id => integer,
116
+ # data => hash (version, masteryListData) - default => nill,
117
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
118
+ client.get_mastery_by_id id, data = {:version => num_version, :masteryListData => 'all'}, locale = 'fr_FR'
119
+
120
+ # Get all masteries
121
+ # params :
122
+ # data => hash (version, masteryListData) - default => nill,
123
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
124
+ client.get_all_masteries data = {:version => num_version, :masteryListData => 'all'}, locale = 'fr_FR'
125
+
126
+ # RUNE
127
+
128
+ # Get rune by id
129
+ # params :
130
+ # id => integer,
131
+ # data => hash (version, runeListData) - default => nill,
132
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
133
+ client.get_rune_by_id id, data = {:version => num_version, :runeListData => 'all'}, locale = 'fr_FR'
134
+
135
+ # Get all rune
136
+ # params :
137
+ # data => hash (version, runeListData) - default => nill,
138
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
139
+ client.get_all_runes data = {:version => num_version, :runeListData => 'all'}, locale = 'fr_FR'
140
+
141
+ # SUMMONER SPELL
142
+
143
+ # Get summoner spell by id
144
+ # params :
145
+ # id => integer,
146
+ # data => hash (version, spellData) - default => nill,
147
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
148
+ client.get_summoner_spell_by_id id, data = {:version => num_version, :spellData => 'all'}, locale = 'fr_FR'
149
+
150
+ # Get all summoner spell
151
+ # params :
152
+ # data => hash (version, spellData) - default => nill,
153
+ # sort_id => boolean - default => false
154
+ # locale => string ('fr_FR','en_EN', ...) - default => 'fr_FR'
155
+ client.get_all_summoner_spells data = {:version => num_version, :spellData => 'all'}, sort_id = 'false', locale = 'fr_FR'
156
+
157
+ # INFORMATION
158
+
159
+ # Get version
160
+ client.get_versions
161
+
162
+ # SUMMONER
163
+
164
+ # Create summoner object
165
+ summoner = client.get_summoner_by_name 'pacoloco'
166
+
167
+ # Get sumoner masteries
168
+ summoner.masteries
169
+
170
+ # Get sumoner runes
171
+ summoner.runes
172
+
173
+ # Get sumoner games
174
+ summoner.games
175
+
176
+ # Get sumoner stat_summaries
177
+ summoner.stat_summaries
178
+
179
+ # Get sumoner get_league_stats
180
+ summoner.get_league_stats
26
181
 
27
- TODO: Write usage instructions here
182
+ ```
28
183
 
29
184
  ## Contributing
30
185
 
@@ -3,6 +3,9 @@ require 'json'
3
3
 
4
4
  module RiotLolApi
5
5
  class Client
6
+ # Constant URL
7
+
8
+ BASE_URL_API = "api.pvp.net/api/lol/"
6
9
 
7
10
  # attr
8
11
  # - region
@@ -11,25 +14,50 @@ module RiotLolApi
11
14
  self.class.send(:attr_accessor, key.to_sym)
12
15
  instance_variable_set("@#{key}", value)
13
16
  end
17
+ if RiotLolApi::Client.realm.nil? && !self.region.nil?
18
+ self.get_realm
19
+ end
20
+ end
21
+
22
+ class << self
23
+ attr_accessor :realm
14
24
  end
15
25
 
16
- def self.get url, data = nil
26
+ def get_realm
27
+ response = Client.get("static-data/#{self.region}/v1.2/realm", "global")
28
+ unless response.nil?
29
+ self.class.realm = response
30
+ else
31
+ nil
32
+ end
33
+ end
34
+
35
+ # TO DO
36
+ # Set callback to get realm constants
37
+ #
38
+
39
+ def self.get url, domaine,data = nil
17
40
  unless RiotLolApi::TOKEN.nil?
41
+ # Set data params
18
42
  if data.nil?
19
43
  data = {:api_key => RiotLolApi::TOKEN}
20
44
  else
21
45
  data.merge!({:api_key => RiotLolApi::TOKEN})
22
46
  end
23
- response = HTTParty.get(url, :query => data)
47
+
48
+ # Set domaine url
49
+ domaine_url = "#{domaine}.#{BASE_URL_API}"
50
+
51
+ response = HTTParty.get("https://#{domaine_url}#{url}", :query => data)
24
52
  case response.code
25
- when 200
26
- JSON.parse(response.body)
27
- when 404
28
- puts "Error server"
29
- nil
30
- when 500...600
31
- puts "ERROR #{response.code}"
32
- nil
53
+ when 200
54
+ JSON.parse(response.body)
55
+ when 404
56
+ puts "Error server"
57
+ nil
58
+ when 500...600
59
+ puts "ERROR #{response.code}"
60
+ nil
33
61
  end
34
62
  else
35
63
  puts "No TOKEN, you have to define RiotLolApi::TOKEN"
@@ -42,7 +70,7 @@ module RiotLolApi
42
70
  def get_summoner_by_name name
43
71
  name = name.downcase
44
72
  name.strip!
45
- response = Client.get("https://prod.api.pvp.net/api/lol/#{@region}/v1.4/summoner/by-name/#{name}")
73
+ response = Client.get("#{@region}/v1.4/summoner/by-name/#{name}",@region)
46
74
  unless response.nil?
47
75
  RiotLolApi::Model::Summoner.new(response[name].to_symbol.merge({:region => @region}))
48
76
  else
@@ -51,7 +79,7 @@ module RiotLolApi
51
79
  end
52
80
 
53
81
  def get_summoner_by_id id
54
- response = Client.get("https://prod.api.pvp.net/api/lol/#{@region}/v1.4/summoner/#{id}")
82
+ response = Client.get("#{@region}/v1.4/summoner/#{id}",@region)
55
83
  unless response.nil?
56
84
  RiotLolApi::Model::Summoner.new(response[id.to_s].to_symbol.merge({:region => @region}))
57
85
  else
@@ -61,20 +89,192 @@ module RiotLolApi
61
89
 
62
90
  # CHAMPION
63
91
 
64
- def get_champion_by_id id, data = nil, local = 'fr_FR'
92
+ def get_champion_by_id id, data = nil, locale = 'fr_FR'
65
93
  if data.nil?
66
- data = {:local => local}
94
+ data = {:locale => locale}
67
95
  else
68
- data.merge!({:local => local})
96
+ data.merge!({:locale => locale})
69
97
  end
70
98
 
71
- response = Client.get("https://prod.api.pvp.net/api/lol/static-data/#{@region}/v1.2/champion/#{id}",data)
72
- unless response.nil?
99
+ response = Client.get("static-data/#{@region}/v1.2/champion/#{id}","global",data)
100
+ unless response.nil?
73
101
  RiotLolApi::Model::Champion.new(response.to_symbol)
74
- else
102
+ else
103
+ nil
104
+ end
105
+ end
106
+
107
+ def get_all_champions data = nil, sort_id = 'false', locale = 'fr_FR'
108
+ if data.nil?
109
+ data = {:locale => locale, :dataById => sort_id}
110
+ else
111
+ data.merge!({:locale => locale, :dataById => sort_id})
112
+ end
113
+
114
+ response = Client.get("static-data/#{@region}/v1.2/champion","global",data)
115
+ unless response.nil?
116
+ tab_champions = Array.new
117
+ response["data"].each do |champion|
118
+ tab_champions << RiotLolApi::Model::Champion.new(champion[1].to_symbol)
119
+ end
120
+ tab_champions
121
+ else
122
+ nil
123
+ end
124
+ end
125
+
126
+ # ITEM
127
+
128
+ def get_all_items data = nil, locale = 'fr_FR'
129
+ if data.nil?
130
+ data = {:locale => locale}
131
+ else
132
+ data.merge!({:locale => locale})
133
+ end
134
+
135
+ response = Client.get("static-data/#{@region}/v1.2/item","global",data)
136
+ unless response.nil?
137
+ tab_items = Array.new
138
+ response["data"].each do |item|
139
+ tab_items << RiotLolApi::Model::Item.new(item[1].to_symbol)
140
+ end
141
+ tab_items
142
+ else
143
+ nil
144
+ end
145
+ end
146
+
147
+ def get_item_by_id id, data = nil, locale = 'fr_FR'
148
+ if data.nil?
149
+ data = {:locale => locale}
150
+ else
151
+ data.merge!({:locale => locale})
152
+ end
153
+
154
+ response = Client.get("static-data/#{@region}/v1.2/item/#{id}","global",data)
155
+ unless response.nil?
156
+ RiotLolApi::Model::Item.new(response.to_symbol)
157
+ else
75
158
  nil
76
- end
77
- end
159
+ end
160
+ end
161
+
162
+ # MASTERY
163
+
164
+ def get_all_masteries data = nil, locale = 'fr_FR'
165
+ if data.nil?
166
+ data = {:locale => locale}
167
+ else
168
+ data.merge!({:locale => locale})
169
+ end
170
+
171
+ response = Client.get("static-data/#{@region}/v1.2/mastery","global",data)
172
+ unless response.nil?
173
+ tab_masteries = Array.new
174
+ response["data"].each do |mastery|
175
+ tab_masteries << RiotLolApi::Model::Mastery.new(mastery[1].to_symbol)
176
+ end
177
+ tab_masteries
178
+ else
179
+ nil
180
+ end
181
+ end
182
+
183
+ def get_mastery_by_id id, data = nil, locale = 'fr_FR'
184
+ if data.nil?
185
+ data = {:locale => locale}
186
+ else
187
+ data.merge!({:locale => locale})
188
+ end
189
+
190
+ response = Client.get("static-data/#{@region}/v1.2/mastery/#{id}","global",data)
191
+ unless response.nil?
192
+ RiotLolApi::Model::Mastery.new(response.to_symbol)
193
+ else
194
+ nil
195
+ end
196
+ end
197
+
198
+ # RUNE
199
+
200
+ def get_all_runes data = nil, locale = 'fr_FR'
201
+ if data.nil?
202
+ data = {:locale => locale}
203
+ else
204
+ data.merge!({:locale => locale})
205
+ end
206
+
207
+ response = Client.get("static-data/#{@region}/v1.2/rune","global",data)
208
+ unless response.nil?
209
+ tab_runes = Array.new
210
+ response["data"].each do |rune|
211
+ tab_runes << RiotLolApi::Model::Rune.new(rune[1].to_symbol)
212
+ end
213
+ tab_runes
214
+ else
215
+ nil
216
+ end
217
+ end
218
+
219
+ def get_rune_by_id id, data = nil, locale = 'fr_FR'
220
+ if data.nil?
221
+ data = {:locale => locale}
222
+ else
223
+ data.merge!({:locale => locale})
224
+ end
225
+
226
+ response = Client.get("static-data/#{@region}/v1.2/rune/#{id}","global",data)
227
+ unless response.nil?
228
+ RiotLolApi::Model::Rune.new(response.to_symbol)
229
+ else
230
+ nil
231
+ end
232
+ end
233
+
234
+ # SUMMONER SPELL
235
+
236
+ def get_all_summoner_spells data = nil, sort_id = 'false', locale = 'fr_FR'
237
+ if data.nil?
238
+ data = {:locale => locale, :dataById => sort_id}
239
+ else
240
+ data.merge!({:locale => locale, :dataById => sort_id})
241
+ end
242
+
243
+ response = Client.get("static-data/#{@region}/v1.2/summoner-spell","global",data)
244
+ unless response.nil?
245
+ tab_summoner_spells = Array.new
246
+ response["data"].each do |summoner_spell|
247
+ tab_summoner_spells << RiotLolApi::Model::Spell.new(summoner_spell[1].to_symbol)
248
+ end
249
+ tab_summoner_spells
250
+ else
251
+ nil
252
+ end
253
+ end
254
+
255
+ def get_summoner_spell_by_id id, data = nil, locale = 'fr_FR'
256
+ if data.nil?
257
+ data = {:locale => locale}
258
+ else
259
+ data.merge!({:locale => locale})
260
+ end
261
+
262
+ response = Client.get("static-data/#{@region}/v1.2/summoner-spell/#{id}","global",data)
263
+ unless response.nil?
264
+ RiotLolApi::Model::Spell.new(response.to_symbol)
265
+ else
266
+ nil
267
+ end
268
+ end
269
+
270
+ def get_versions
271
+ response = Client.get("static-data/#{@region}/v1.2/versions","global")
272
+ unless response.nil?
273
+ response
274
+ else
275
+ nil
276
+ end
277
+ end
78
278
 
79
279
  end
80
280
  end