warframe 0.4.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +32 -13
- data/README.md +39 -34
- data/lib/warframe/api/alerts.rb +14 -0
- data/lib/warframe/api/cambion_drift.rb +16 -0
- data/lib/warframe/api/cetus.rb +16 -0
- data/lib/warframe/api/conclave_challenges.rb +16 -0
- data/lib/warframe/api/global_upgrades.rb +16 -0
- data/lib/warframe/api/invasions.rb +16 -0
- data/lib/warframe/api/news.rb +16 -0
- data/lib/warframe/api/nightwave.rb +16 -0
- data/lib/warframe/api/sortie.rb +16 -0
- data/lib/warframe/api/steel_path.rb +16 -0
- data/lib/warframe/api/syndicate_missions.rb +16 -0
- data/lib/warframe/api/vallis_cycle.rb +16 -0
- data/lib/warframe/api.rb +24 -0
- data/lib/warframe/cache.rb +3 -3
- data/lib/warframe/client.rb +98 -0
- data/lib/warframe/models/alert.rb +16 -23
- data/lib/warframe/models/attributes/description.rb +12 -16
- data/lib/warframe/models/attributes/eta.rb +6 -10
- data/lib/warframe/models/attributes/expiry.rb +20 -24
- data/lib/warframe/models/attributes/id.rb +6 -10
- data/lib/warframe/models/attributes/reward_types.rb +6 -10
- data/lib/warframe/models/attributes/start_string.rb +6 -10
- data/lib/warframe/models/attributes/translations.rb +9 -13
- data/lib/warframe/models/base.rb +5 -30
- data/lib/warframe/models/cambion_drift.rb +14 -19
- data/lib/warframe/models/cetus.rb +25 -30
- data/lib/warframe/models/conclave_challenge.rb +43 -50
- data/lib/warframe/models/global_upgrade.rb +33 -37
- data/lib/warframe/models/invasion.rb +58 -67
- data/lib/warframe/models/news.rb +45 -50
- data/lib/warframe/models/nightwave.rb +24 -30
- data/lib/warframe/models/objectified_hash.rb +74 -0
- data/lib/warframe/models/sortie.rb +21 -27
- data/lib/warframe/models/steel_path.rb +22 -24
- data/lib/warframe/models/syndicate_mission.rb +18 -24
- data/lib/warframe/models/vallis_cycle.rb +21 -26
- data/lib/warframe/models.rb +6 -0
- data/lib/warframe/version.rb +1 -1
- data/lib/warframe.rb +4 -2
- data/warframe.gemspec +9 -13
- metadata +37 -94
- data/lib/warframe/client_wrapper.rb +0 -39
- data/lib/warframe/rest/api/alerts.rb +0 -23
- data/lib/warframe/rest/api/cambion_drift.rb +0 -23
- data/lib/warframe/rest/api/cetus.rb +0 -23
- data/lib/warframe/rest/api/conclave_challenges.rb +0 -23
- data/lib/warframe/rest/api/global_upgrades.rb +0 -23
- data/lib/warframe/rest/api/invasions.rb +0 -23
- data/lib/warframe/rest/api/news.rb +0 -23
- data/lib/warframe/rest/api/nightwave.rb +0 -23
- data/lib/warframe/rest/api/sortie.rb +0 -23
- data/lib/warframe/rest/api/steel_path.rb +0 -23
- data/lib/warframe/rest/api/syndicate_missions.rb +0 -23
- data/lib/warframe/rest/api/vallis_cycle.rb +0 -23
- data/lib/warframe/rest/api.rb +0 -39
- data/lib/warframe/rest/client.rb +0 -42
- data/lib/warframe/rest/request.rb +0 -61
- data/lib/warframe/rest/utils.rb +0 -23
@@ -1,61 +0,0 @@
|
|
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
DELETED
@@ -1,23 +0,0 @@
|
|
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
|