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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +3 -3
  3. data/README.md +99 -75
  4. data/lib/warframe/cache.rb +37 -0
  5. data/lib/warframe/client_wrapper.rb +39 -37
  6. data/lib/warframe/models/alert.rb +30 -29
  7. data/lib/warframe/models/attributes/active.rb +31 -31
  8. data/lib/warframe/models/attributes/description.rb +21 -14
  9. data/lib/warframe/models/attributes/eta.rb +14 -14
  10. data/lib/warframe/models/attributes/expiry.rb +30 -30
  11. data/lib/warframe/models/attributes/id.rb +14 -14
  12. data/lib/warframe/models/attributes/reward_types.rb +14 -14
  13. data/lib/warframe/models/attributes/start_string.rb +14 -14
  14. data/lib/warframe/models/attributes/translations.rb +18 -18
  15. data/lib/warframe/models/base.rb +36 -36
  16. data/lib/warframe/models/cambion_drift.rb +26 -0
  17. data/lib/warframe/models/cetus.rb +40 -0
  18. data/lib/warframe/models/conclave_challenge.rb +54 -0
  19. data/lib/warframe/models/global_upgrade.rb +41 -40
  20. data/lib/warframe/models/invasion.rb +71 -70
  21. data/lib/warframe/models/news.rb +54 -53
  22. data/lib/warframe/models/nightwave.rb +40 -39
  23. data/lib/warframe/models/sortie.rb +36 -0
  24. data/lib/warframe/models/steel_path.rb +34 -0
  25. data/lib/warframe/models/syndicate_mission.rb +32 -0
  26. data/lib/warframe/rest/api/alerts.rb +23 -23
  27. data/lib/warframe/rest/api/cambion_drift.rb +23 -0
  28. data/lib/warframe/rest/api/cetus.rb +23 -0
  29. data/lib/warframe/rest/api/conclave_challenges.rb +23 -0
  30. data/lib/warframe/rest/api/global_upgrades.rb +23 -23
  31. data/lib/warframe/rest/api/invasions.rb +23 -23
  32. data/lib/warframe/rest/api/news.rb +23 -23
  33. data/lib/warframe/rest/api/nightwave.rb +23 -23
  34. data/lib/warframe/rest/api/sortie.rb +23 -0
  35. data/lib/warframe/rest/api/steel_path.rb +23 -0
  36. data/lib/warframe/rest/api/syndicate_missions.rb +23 -0
  37. data/lib/warframe/rest/api.rb +37 -25
  38. data/lib/warframe/rest/client.rb +42 -42
  39. data/lib/warframe/rest/request.rb +61 -55
  40. data/lib/warframe/rest/utils.rb +23 -19
  41. data/lib/warframe/version.rb +6 -6
  42. data/lib/warframe.rb +7 -7
  43. 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
- @path = client.base_url + path + "?language=#{@client.language}"
25
- @klass = klass
26
- end
27
-
28
- # Sends an HTTP request with the attached parameters and headers.
29
- # Will either return the Model, or collection of Models.
30
- # @return [Warframe::Models, Array<[Warframe::Models]>]
31
- def send
32
- uri = URI(path)
33
- req = Net::HTTP::Get.new(uri)
34
- return_parsed get_response uri, req
35
- end
36
-
37
- private
38
-
39
- # Returns the parsed JSON response in the form of a [Warframe::Models] or an array of [Warframe::Models]
40
- # @param resp [Net::HTTP.get]
41
- # @return [Warframe::Models, Array<[Warframe::Models]>]
42
- def return_parsed(resp)
43
- parsed = JSON.parse(resp)
44
- @klass.new parsed
45
- end
46
-
47
- def get_response(uri, req)
48
- Net::HTTP.get(uri) do |http|
49
- http.use_ssl = true
50
- http.request req
51
- end
52
- end
53
- end
54
- end
55
- end
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
@@ -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
- Warframe::REST::Request.new(@client || self, path, klass).send
16
- end
17
- end
18
- end
19
- end
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
@@ -1,6 +1,6 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- # The current version of this gem.
5
- VERSION = '0.1.3'
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.3
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Romaniello
8
- autorequire:
8
+ - Warframe Community Developers
9
+ autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2021-11-19 00:00:00.000000000 Z
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: 0.19.1
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: 0.19.1
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/aj-rom/warframe-ruby
186
+ homepage: https://github.com/WFCD/warframe-ruby
225
187
  licenses:
226
188
  - MIT
227
189
  metadata:
228
- rubygems_mfa_required: 'true'
229
- post_install_message:
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.31
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: []