sightstone 1.3.2 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d40a965b30e05682c13b63f48ee81f586fb8a20e
4
- data.tar.gz: e0205cc8d5a44a87cdd300ce7a7ba870b7803598
3
+ metadata.gz: 84d86f5fd72e4ffcd5a1fdf94aea1e5c3cf1f764
4
+ data.tar.gz: b2aa1702e5bb4d81ecda406ba8bdf88e0cdb229c
5
5
  SHA512:
6
- metadata.gz: b127bc4c6ec0e6073195fc9db1e409ee827d09cacc0fc420a48d1571ffca82b1ef0bcbe3c555577e27e2dd14d3820cc470e2aa15d377e15c890619a96e0f9f32
7
- data.tar.gz: 5a0e23735e8a774425bd887f062c185ee790351c547c06687fab545034c8855c3c4d979a22f988228ad989d66a2e21c60b616821fcc9240b104f641cad83d0de
6
+ metadata.gz: e7fdf5ea80f0c54764de08d60dda91d5aca0df64f85b4620ac17c708522a817b42546657cc7b75f3635ac05acfa6d7b0d210bcc0d3e6b7d261303f440f146ab1
7
+ data.tar.gz: 5897481a88a73958d024586e3060f20688d45922b79bf11798e8c0a0e8e19655b6a12644867339772012f4e4f7d60c4bbc7148ff12b9e5636c6274877658468b
@@ -13,7 +13,7 @@ class LeagueModule < SightstoneBaseModule
13
13
  # @param [Summoner, Integer] summoner
14
14
  # @param optional [Hash] optional arguments: :region => replaces default region
15
15
  # @return [Array<League>] an array of all leagues the summoner and his teams are in
16
- def league(summoner, optional={})
16
+ def leagues(summoner, optional={})
17
17
  region = optional[:region] || @sightstone.region
18
18
  id = if summoner.is_a? Summoner
19
19
  summoner.id
@@ -19,15 +19,15 @@ class SummonerModule < SightstoneBaseModule
19
19
  def summoner(name_or_id, optional={})
20
20
  region = optional[:region] || @sightstone.region
21
21
  uri = if name_or_id.is_a? Integer
22
- "https://prod.api.pvp.net/api/lol/#{region}/v1.2/summoner/#{name_or_id}"
22
+ "https://prod.api.pvp.net/api/lol/#{region}/v1.3/summoner/#{name_or_id}"
23
23
  else
24
- "https://prod.api.pvp.net/api/lol/#{region}/v1.2/summoner/by-name/#{URI::encode(name_or_id)}"
24
+ "https://prod.api.pvp.net/api/lol/#{region}/v1.3/summoner/by-name/#{URI::encode(name_or_id)}"
25
25
  end
26
26
 
27
27
  response = _get_api_response(uri)
28
28
  _parse_response(response) { |resp|
29
29
  data = JSON.parse(resp)
30
- s = Summoner.new(data)
30
+ s = Summoner.new(data.values[0])
31
31
  if block_given?
32
32
  yield s
33
33
  else
@@ -36,6 +36,38 @@ class SummonerModule < SightstoneBaseModule
36
36
  }
37
37
  end
38
38
 
39
+ # returns an array of summoner objects
40
+ # @param names_or_ids [Array<Integer, String>] names or ids of summoners
41
+ # @param optional [Hash] optional arguments: :region => replaces default region
42
+ # @return [Hash<(String or Integer), Summoner>] A Hash mapping summoner ids or names to summoner objects
43
+ def summoners(names_or_ids, optional={})
44
+ return {} if names_or_ids.empty?
45
+
46
+ region = optional[:region] || @sightstone.region
47
+
48
+ uri = if !names_or_ids[0].is_a? String
49
+ "https://prod.api.pvp.net/api/lol/#{region}/v1.3/summoner/#{names_or_ids.join(',')}"
50
+ else
51
+ "https://prod.api.pvp.net/api/lol/#{region}/v1.3/summoner/by-name/#{URI::encode(names_or_ids.join(','))}"
52
+ end
53
+
54
+ response = _get_api_response(uri)
55
+ _parse_response(response) { |resp|
56
+ data = JSON.parse(resp)
57
+ summoners = {}
58
+ data.each do |id_or_name, raw_summoner|
59
+ summoners[id_or_name] = Summoner.new(raw_summoner)
60
+ end
61
+
62
+ if block_given?
63
+ yield summoners
64
+ else
65
+ return summoners
66
+ end
67
+ }
68
+ end
69
+
70
+
39
71
  # returns the names for the ids
40
72
  # @param ids [Array<Numeric>] ids
41
73
  # @param optional [Hash<Symbol, String>] optional arguments: :region => replaces default region
@@ -64,18 +96,18 @@ class SummonerModule < SightstoneBaseModule
64
96
  # @param summoner [Summoner, id] summoner object or id of a summoner
65
97
  # @param optional [Hash<Symbol, String>] optional arguments: :region => replaces default region
66
98
  # @return [Runebook] runebook of the summoner
67
- def runes(summoner, optional={})
99
+ def runebook(summoner, optional={})
68
100
  region = optional[:region] || @sightstone.region
69
101
  id = if summoner.is_a? Summoner
70
102
  summoner.id
71
103
  else
72
104
  summoner
73
105
  end
74
- uri = "http://prod.api.pvp.net/api/lol/#{region}/v1.2/summoner/#{id}/runes"
106
+ uri = "http://prod.api.pvp.net/api/lol/#{region}/v1.3/summoner/#{id}/runes"
75
107
  response = _get_api_response(uri)
76
108
  _parse_response(response) { |resp|
77
109
  data = JSON.parse(resp)
78
- book = RuneBook.new(data)
110
+ book = RuneBook.new(data.values[0])
79
111
  if block_given?
80
112
  yield book
81
113
  else
@@ -84,22 +116,53 @@ class SummonerModule < SightstoneBaseModule
84
116
  }
85
117
  end
86
118
 
119
+ # returns the runebook for multiple summoners
120
+ # @param summoners [Array<(Summoner, Integer)>] list of summoner objects or ids of summoners
121
+ # @param optional [Hash<Symbol, String>] optional arguments: :region => replaces default region
122
+ # @return [Hash<Integer, Runebook>] A hash mapping runebooks to the ids of summoners
123
+ def runebooks(summoners, optional={})
124
+ return {} if summoners.empty?
125
+
126
+ region = optional[:region] || @sightstone.region
127
+ ids = summoners.collect { |summoner|
128
+ if summoner.is_a? Summoner
129
+ summoner.id
130
+ else
131
+ summoner
132
+ end
133
+ }
134
+ uri = "http://prod.api.pvp.net/api/lol/#{region}/v1.3/summoner/#{ids.join(',')}/runes"
135
+ response = _get_api_response(uri)
136
+ _parse_response(response) { |resp|
137
+ data = JSON.parse(resp)
138
+ books = {}
139
+ data.each do |key, raw_book|
140
+ books[key] = RuneBook.new(raw_book)
141
+ end
142
+ if block_given?
143
+ yield books
144
+ else
145
+ return books
146
+ end
147
+ }
148
+ end
149
+
87
150
  # returns the masterybook of a summoner
88
151
  # @param summoner [Summoner, id] summoner object or id of a summoner
89
152
  # @param optional [Hash<Symbol, String>] optional arguments: :region => replaces default region
90
153
  # @return [Masterybook] masterybook of the summoner
91
- def masteries(summoner, optional={})
154
+ def masterybook(summoner, optional={})
92
155
  region = optional[:region] || @sightstone.region
93
156
  id = if summoner.is_a? Summoner
94
157
  summoner.id
95
158
  else
96
159
  summoner
97
160
  end
98
- uri = "http://prod.api.pvp.net/api/lol/#{region}/v1.2/summoner/#{id}/masteries"
161
+ uri = "http://prod.api.pvp.net/api/lol/#{region}/v1.3/summoner/#{id}/masteries"
99
162
  response = _get_api_response(uri)
100
163
  _parse_response(response) { |resp|
101
164
  data = JSON.parse(resp)
102
- book = MasteryBook.new(data)
165
+ book = MasteryBook.new(data.values[0])
103
166
  if block_given?
104
167
  yield book
105
168
  else
@@ -107,5 +170,36 @@ class SummonerModule < SightstoneBaseModule
107
170
  end
108
171
  }
109
172
  end
173
+
174
+ # returns the masterybooks for multiple summoners
175
+ # @param summoners [Array<(Summoner, Integer)>] list of summoner objects or ids of summoners
176
+ # @param optional [Hash<Symbol, String>] optional arguments: :region => replaces default region
177
+ # @return [Hash<Integer, Masterybook>] A hash mapping masterybooks to the ids of summoners
178
+ def masterybooks(summoners, optional={})
179
+ return {} if summoners.empty?
180
+ region = optional[:region] || @sightstone.region
181
+ ids = summoners.collect { |summoner|
182
+ if summoner.is_a? Summoner
183
+ summoner.id
184
+ else
185
+ summoner
186
+ end
187
+ }
188
+
189
+ uri = "http://prod.api.pvp.net/api/lol/#{region}/v1.3/summoner/#{ids.join(',')}/masteries"
190
+ response = _get_api_response(uri)
191
+ _parse_response(response) { |resp|
192
+ data = JSON.parse(resp)
193
+ books = {}
194
+ data.each do |key, raw_book|
195
+ books[key] = MasteryBook.new(raw_book)
196
+ end
197
+ if block_given?
198
+ yield books
199
+ else
200
+ return books
201
+ end
202
+ }
203
+ end
110
204
  end
111
205
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sightstone
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-16 00:00:00.000000000 Z
11
+ date: 2014-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -30,7 +30,6 @@ executables: []
30
30
  extensions: []
31
31
  extra_rdoc_files: []
32
32
  files:
33
- - lib/sightstone.rb
34
33
  - lib/sightstone/champion.rb
35
34
  - lib/sightstone/league.rb
36
35
  - lib/sightstone/masterybook.rb
@@ -48,6 +47,7 @@ files:
48
47
  - lib/sightstone/runebook.rb
49
48
  - lib/sightstone/summoner.rb
50
49
  - lib/sightstone/team.rb
50
+ - lib/sightstone.rb
51
51
  homepage: https://github.com/danijoo/Sightstone
52
52
  licenses:
53
53
  - MIT
@@ -68,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  version: '0'
69
69
  requirements: []
70
70
  rubyforge_project:
71
- rubygems_version: 2.2.0
71
+ rubygems_version: 2.1.10
72
72
  signing_key:
73
73
  specification_version: 4
74
74
  summary: Ruby wrapper for riots league of legends api