warframe 0.1.3 → 0.3.1
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 +4 -4
- data/.yardopts +3 -3
- data/README.md +99 -75
- data/lib/warframe/cache.rb +37 -0
- data/lib/warframe/client_wrapper.rb +39 -37
- data/lib/warframe/models/alert.rb +30 -29
- data/lib/warframe/models/attributes/active.rb +31 -31
- data/lib/warframe/models/attributes/description.rb +21 -14
- data/lib/warframe/models/attributes/eta.rb +14 -14
- data/lib/warframe/models/attributes/expiry.rb +30 -30
- data/lib/warframe/models/attributes/id.rb +14 -14
- data/lib/warframe/models/attributes/reward_types.rb +14 -14
- data/lib/warframe/models/attributes/start_string.rb +14 -14
- data/lib/warframe/models/attributes/translations.rb +18 -18
- data/lib/warframe/models/base.rb +36 -36
- data/lib/warframe/models/cambion_drift.rb +26 -0
- data/lib/warframe/models/cetus.rb +40 -0
- data/lib/warframe/models/conclave_challenge.rb +54 -0
- data/lib/warframe/models/global_upgrade.rb +41 -40
- data/lib/warframe/models/invasion.rb +71 -70
- data/lib/warframe/models/news.rb +54 -53
- data/lib/warframe/models/nightwave.rb +40 -39
- data/lib/warframe/models/sortie.rb +36 -0
- data/lib/warframe/models/steel_path.rb +34 -0
- data/lib/warframe/models/syndicate_mission.rb +32 -0
- data/lib/warframe/rest/api/alerts.rb +23 -23
- data/lib/warframe/rest/api/cambion_drift.rb +23 -0
- data/lib/warframe/rest/api/cetus.rb +23 -0
- data/lib/warframe/rest/api/conclave_challenges.rb +23 -0
- data/lib/warframe/rest/api/global_upgrades.rb +23 -23
- data/lib/warframe/rest/api/invasions.rb +23 -23
- data/lib/warframe/rest/api/news.rb +23 -23
- data/lib/warframe/rest/api/nightwave.rb +23 -23
- data/lib/warframe/rest/api/sortie.rb +23 -0
- data/lib/warframe/rest/api/steel_path.rb +23 -0
- data/lib/warframe/rest/api/syndicate_missions.rb +23 -0
- data/lib/warframe/rest/api.rb +37 -25
- data/lib/warframe/rest/client.rb +42 -42
- data/lib/warframe/rest/request.rb +61 -55
- data/lib/warframe/rest/utils.rb +23 -19
- data/lib/warframe/version.rb +6 -6
- data/lib/warframe.rb +7 -7
- metadata +27 -63
@@ -1,55 +1,61 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'net/http'
|
4
|
-
require 'json'
|
5
|
-
|
6
|
-
module Warframe
|
7
|
-
module REST
|
8
|
-
# A request to send to the Warframe Stat API.
|
9
|
-
class Request
|
10
|
-
# @return [Warframe::REST::Client]
|
11
|
-
attr_reader :client
|
12
|
-
|
13
|
-
# @return [String]
|
14
|
-
attr_reader :path
|
15
|
-
|
16
|
-
# Instantiate a Request
|
17
|
-
#
|
18
|
-
# @param client [Warframe::REST::Client]
|
19
|
-
# @param path [String]
|
20
|
-
# @param klass [Warframe::Models]
|
21
|
-
# @return [Warframe:REST:Request]
|
22
|
-
def initialize(client, path, klass)
|
23
|
-
@client = client
|
24
|
-
@
|
25
|
-
@
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
#
|
30
|
-
#
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
#
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'net/http'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module Warframe
|
7
|
+
module REST
|
8
|
+
# A request to send to the Warframe Stat API.
|
9
|
+
class Request
|
10
|
+
# @return [Warframe::REST::Client]
|
11
|
+
attr_reader :client
|
12
|
+
|
13
|
+
# @return [String]
|
14
|
+
attr_reader :path
|
15
|
+
|
16
|
+
# Instantiate a Request
|
17
|
+
#
|
18
|
+
# @param client [Warframe::REST::Client]
|
19
|
+
# @param path [String]
|
20
|
+
# @param klass [Warframe::Models]
|
21
|
+
# @return [Warframe:REST:Request]
|
22
|
+
def initialize(client, path, klass)
|
23
|
+
@client = client
|
24
|
+
@route = path
|
25
|
+
@path = client.base_url + path + "?language=#{@client.language}"
|
26
|
+
@klass = klass
|
27
|
+
end
|
28
|
+
|
29
|
+
# Sends an HTTP request with the attached parameters and headers.
|
30
|
+
# Will either return the Model, or collection of Models.
|
31
|
+
# @return [Warframe::Models, Array<[Warframe::Models]>]
|
32
|
+
def send
|
33
|
+
uri = URI(path)
|
34
|
+
req = Net::HTTP::Get.new(uri)
|
35
|
+
resp = get_response uri, req
|
36
|
+
return_parsed resp
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
# Returns the parsed JSON response in the form of a [Warframe::Models] or an array of [Warframe::Models]
|
42
|
+
# @param resp [Net::HTTP.get]
|
43
|
+
# @return [Warframe::Models, Array<[Warframe::Models]>]
|
44
|
+
def return_parsed(resp)
|
45
|
+
parsed = JSON.parse(resp)
|
46
|
+
|
47
|
+
# Return Empty array if no data found.
|
48
|
+
return [] if parsed.is_a?(Array) && parsed.empty?
|
49
|
+
|
50
|
+
@klass.new parsed
|
51
|
+
end
|
52
|
+
|
53
|
+
def get_response(uri, req)
|
54
|
+
Net::HTTP.get(uri) do |http|
|
55
|
+
http.use_ssl = true
|
56
|
+
http.request req
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/lib/warframe/rest/utils.rb
CHANGED
@@ -1,19 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative './request'
|
4
|
-
|
5
|
-
module Warframe
|
6
|
-
module REST
|
7
|
-
# Private REST Utilities
|
8
|
-
module Utils
|
9
|
-
private
|
10
|
-
|
11
|
-
# Performs a get operation on the requested path, and returns a mapped response of the requested model.
|
12
|
-
# @param path [String]
|
13
|
-
# @param klass [Warframe::Models]
|
14
|
-
def get(path, klass)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative './request'
|
4
|
+
|
5
|
+
module Warframe
|
6
|
+
module REST
|
7
|
+
# Private REST Utilities
|
8
|
+
module Utils
|
9
|
+
private
|
10
|
+
|
11
|
+
# Performs a get operation on the requested path, and returns a mapped response of the requested model.
|
12
|
+
# @param path [String]
|
13
|
+
# @param klass [Warframe::Models]
|
14
|
+
def get(path, klass)
|
15
|
+
inst = @client || self
|
16
|
+
return inst.get_from_cache(path) if inst.find_in_cache(path)
|
17
|
+
|
18
|
+
result = Warframe::REST::Request.new(inst, path, klass).send
|
19
|
+
inst.add_to_cache(path, result)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/warframe/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Warframe
|
4
|
-
# The current version of this gem.
|
5
|
-
VERSION = '0.1
|
6
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Warframe
|
4
|
+
# The current version of this gem.
|
5
|
+
VERSION = '0.3.1'
|
6
|
+
end
|
data/lib/warframe.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'warframe/version'
|
4
|
-
require 'warframe/rest/client'
|
5
|
-
|
6
|
-
# Warframe Stat Ruby Client main module
|
7
|
-
module Warframe; end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'warframe/version'
|
4
|
+
require 'warframe/rest/client'
|
5
|
+
|
6
|
+
# Warframe Stat Ruby Client main module
|
7
|
+
module Warframe; end
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warframe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.J. Romaniello
|
8
|
-
|
8
|
+
- Warframe Community Developers
|
9
|
+
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date: 2021-
|
12
|
+
date: 2021-12-14 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: fast_underscore
|
@@ -64,26 +65,6 @@ dependencies:
|
|
64
65
|
- - ">="
|
65
66
|
- !ruby/object:Gem::Version
|
66
67
|
version: 2.6.1
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: activesupport
|
69
|
-
requirement: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
71
|
-
- - "~>"
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: '5.0'
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 5.0.0.1
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '5.0'
|
84
|
-
- - ">="
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: 5.0.0.1
|
87
68
|
- !ruby/object:Gem::Dependency
|
88
69
|
name: bundler
|
89
70
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,9 +72,6 @@ dependencies:
|
|
91
72
|
- - "~>"
|
92
73
|
- !ruby/object:Gem::Version
|
93
74
|
version: '2.1'
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 2.2.31
|
97
75
|
type: :development
|
98
76
|
prerelease: false
|
99
77
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -101,29 +79,6 @@ dependencies:
|
|
101
79
|
- - "~>"
|
102
80
|
- !ruby/object:Gem::Version
|
103
81
|
version: '2.1'
|
104
|
-
- - ">="
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: 2.2.31
|
107
|
-
- !ruby/object:Gem::Dependency
|
108
|
-
name: rake
|
109
|
-
requirement: !ruby/object:Gem::Requirement
|
110
|
-
requirements:
|
111
|
-
- - "~>"
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: '13.0'
|
114
|
-
- - ">="
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: 13.0.6
|
117
|
-
type: :development
|
118
|
-
prerelease: false
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '13.0'
|
124
|
-
- - ">="
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: 13.0.6
|
127
82
|
- !ruby/object:Gem::Dependency
|
128
83
|
name: rspec
|
129
84
|
requirement: !ruby/object:Gem::Requirement
|
@@ -145,9 +100,6 @@ dependencies:
|
|
145
100
|
- - "~>"
|
146
101
|
- !ruby/object:Gem::Version
|
147
102
|
version: '1.22'
|
148
|
-
- - ">="
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: 1.22.3
|
151
103
|
type: :development
|
152
104
|
prerelease: false
|
153
105
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -155,23 +107,20 @@ dependencies:
|
|
155
107
|
- - "~>"
|
156
108
|
- !ruby/object:Gem::Version
|
157
109
|
version: '1.22'
|
158
|
-
- - ">="
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
version: 1.22.3
|
161
110
|
- !ruby/object:Gem::Dependency
|
162
111
|
name: thor
|
163
112
|
requirement: !ruby/object:Gem::Requirement
|
164
113
|
requirements:
|
165
114
|
- - "~>"
|
166
115
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
116
|
+
version: 1.1.0
|
168
117
|
type: :development
|
169
118
|
prerelease: false
|
170
119
|
version_requirements: !ruby/object:Gem::Requirement
|
171
120
|
requirements:
|
172
121
|
- - "~>"
|
173
122
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
123
|
+
version: 1.1.0
|
175
124
|
- !ruby/object:Gem::Dependency
|
176
125
|
name: yard
|
177
126
|
requirement: !ruby/object:Gem::Requirement
|
@@ -187,7 +136,7 @@ dependencies:
|
|
187
136
|
- !ruby/object:Gem::Version
|
188
137
|
version: 0.9.26
|
189
138
|
description: A Ruby interface to the WarframeStat API.
|
190
|
-
email:
|
139
|
+
email:
|
191
140
|
executables: []
|
192
141
|
extensions: []
|
193
142
|
extra_rdoc_files: []
|
@@ -196,6 +145,7 @@ files:
|
|
196
145
|
- LICENSE.txt
|
197
146
|
- README.md
|
198
147
|
- lib/warframe.rb
|
148
|
+
- lib/warframe/cache.rb
|
199
149
|
- lib/warframe/client_wrapper.rb
|
200
150
|
- lib/warframe/models/alert.rb
|
201
151
|
- lib/warframe/models/attributes/active.rb
|
@@ -207,26 +157,40 @@ files:
|
|
207
157
|
- lib/warframe/models/attributes/start_string.rb
|
208
158
|
- lib/warframe/models/attributes/translations.rb
|
209
159
|
- lib/warframe/models/base.rb
|
160
|
+
- lib/warframe/models/cambion_drift.rb
|
161
|
+
- lib/warframe/models/cetus.rb
|
162
|
+
- lib/warframe/models/conclave_challenge.rb
|
210
163
|
- lib/warframe/models/global_upgrade.rb
|
211
164
|
- lib/warframe/models/invasion.rb
|
212
165
|
- lib/warframe/models/news.rb
|
213
166
|
- lib/warframe/models/nightwave.rb
|
167
|
+
- lib/warframe/models/sortie.rb
|
168
|
+
- lib/warframe/models/steel_path.rb
|
169
|
+
- lib/warframe/models/syndicate_mission.rb
|
214
170
|
- lib/warframe/rest/api.rb
|
215
171
|
- lib/warframe/rest/api/alerts.rb
|
172
|
+
- lib/warframe/rest/api/cambion_drift.rb
|
173
|
+
- lib/warframe/rest/api/cetus.rb
|
174
|
+
- lib/warframe/rest/api/conclave_challenges.rb
|
216
175
|
- lib/warframe/rest/api/global_upgrades.rb
|
217
176
|
- lib/warframe/rest/api/invasions.rb
|
218
177
|
- lib/warframe/rest/api/news.rb
|
219
178
|
- lib/warframe/rest/api/nightwave.rb
|
179
|
+
- lib/warframe/rest/api/sortie.rb
|
180
|
+
- lib/warframe/rest/api/steel_path.rb
|
181
|
+
- lib/warframe/rest/api/syndicate_missions.rb
|
220
182
|
- lib/warframe/rest/client.rb
|
221
183
|
- lib/warframe/rest/request.rb
|
222
184
|
- lib/warframe/rest/utils.rb
|
223
185
|
- lib/warframe/version.rb
|
224
|
-
homepage: https://github.com/
|
186
|
+
homepage: https://github.com/WFCD/warframe-ruby
|
225
187
|
licenses:
|
226
188
|
- MIT
|
227
189
|
metadata:
|
228
|
-
|
229
|
-
|
190
|
+
source_code_uri: https://github.com/WFCD/warframe-ruby
|
191
|
+
bug_tracker_uri: https://github.com/WFCD/warframe-ruby/issues
|
192
|
+
documentation_uri: https://rubydoc.info/gems/warframe
|
193
|
+
post_install_message:
|
230
194
|
rdoc_options: []
|
231
195
|
require_paths:
|
232
196
|
- lib
|
@@ -241,8 +205,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
241
205
|
- !ruby/object:Gem::Version
|
242
206
|
version: '0'
|
243
207
|
requirements: []
|
244
|
-
rubygems_version: 3.2.
|
245
|
-
signing_key:
|
208
|
+
rubygems_version: 3.2.32
|
209
|
+
signing_key:
|
246
210
|
specification_version: 4
|
247
211
|
summary: A Ruby interface to the WarframeStat API.
|
248
212
|
test_files: []
|