riot_lol_api 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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