warframe 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +3 -3
- data/README.md +99 -93
- data/lib/warframe/cache.rb +37 -37
- data/lib/warframe/client_wrapper.rb +39 -39
- data/lib/warframe/models/alert.rb +30 -30
- data/lib/warframe/models/attributes/active.rb +31 -31
- data/lib/warframe/models/attributes/description.rb +21 -21
- 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 -26
- data/lib/warframe/models/cetus.rb +40 -40
- data/lib/warframe/models/conclave_challenge.rb +54 -54
- data/lib/warframe/models/global_upgrade.rb +41 -41
- data/lib/warframe/models/invasion.rb +71 -71
- data/lib/warframe/models/news.rb +54 -54
- data/lib/warframe/models/nightwave.rb +40 -40
- data/lib/warframe/models/sortie.rb +36 -36
- data/lib/warframe/models/steel_path.rb +34 -34
- data/lib/warframe/models/syndicate_mission.rb +32 -32
- data/lib/warframe/rest/api/alerts.rb +23 -23
- data/lib/warframe/rest/api/cambion_drift.rb +23 -23
- data/lib/warframe/rest/api/cetus.rb +23 -23
- data/lib/warframe/rest/api/conclave_challenges.rb +23 -23
- 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 -23
- data/lib/warframe/rest/api/steel_path.rb +23 -23
- data/lib/warframe/rest/api/syndicate_missions.rb +23 -23
- data/lib/warframe/rest/api.rb +37 -37
- data/lib/warframe/rest/client.rb +42 -42
- data/lib/warframe/rest/request.rb +61 -61
- data/lib/warframe/rest/utils.rb +23 -23
- data/lib/warframe/version.rb +6 -6
- data/lib/warframe.rb +7 -7
- metadata +14 -43
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'warframe/models/invasion'
|
4
|
-
require_relative '../utils'
|
5
|
-
|
6
|
-
module Warframe
|
7
|
-
module REST
|
8
|
-
module API
|
9
|
-
# API endpoint for getting information on current Invasions data.
|
10
|
-
#
|
11
|
-
# {https://api.warframestat.us/pc/invasions Example Response}
|
12
|
-
module Invasions
|
13
|
-
include Warframe::REST::Utils
|
14
|
-
|
15
|
-
# Gets the current Invasions data.
|
16
|
-
# @return [Array<[Warframe::Models::Invasion]>]
|
17
|
-
def invasions
|
18
|
-
get('/invasions', Warframe::Models::Invasion)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'warframe/models/invasion'
|
4
|
+
require_relative '../utils'
|
5
|
+
|
6
|
+
module Warframe
|
7
|
+
module REST
|
8
|
+
module API
|
9
|
+
# API endpoint for getting information on current Invasions data.
|
10
|
+
#
|
11
|
+
# {https://api.warframestat.us/pc/invasions Example Response}
|
12
|
+
module Invasions
|
13
|
+
include Warframe::REST::Utils
|
14
|
+
|
15
|
+
# Gets the current Invasions data.
|
16
|
+
# @return [Array<[Warframe::Models::Invasion]>]
|
17
|
+
def invasions
|
18
|
+
get('/invasions', Warframe::Models::Invasion)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'warframe/models/news'
|
4
|
-
require_relative '../utils'
|
5
|
-
|
6
|
-
module Warframe
|
7
|
-
module REST
|
8
|
-
module API
|
9
|
-
# API endpoint for getting information from the News route.
|
10
|
-
#
|
11
|
-
# {https://api.warframestat.us/pc/news Example Response}
|
12
|
-
module News
|
13
|
-
include Warframe::REST::Utils
|
14
|
-
|
15
|
-
# Gets the current news data.
|
16
|
-
# @return [Array<Warframe::Models::News>]
|
17
|
-
def news
|
18
|
-
get('/news', Warframe::Models::News)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'warframe/models/news'
|
4
|
+
require_relative '../utils'
|
5
|
+
|
6
|
+
module Warframe
|
7
|
+
module REST
|
8
|
+
module API
|
9
|
+
# API endpoint for getting information from the News route.
|
10
|
+
#
|
11
|
+
# {https://api.warframestat.us/pc/news Example Response}
|
12
|
+
module News
|
13
|
+
include Warframe::REST::Utils
|
14
|
+
|
15
|
+
# Gets the current news data.
|
16
|
+
# @return [Array<Warframe::Models::News>]
|
17
|
+
def news
|
18
|
+
get('/news', Warframe::Models::News)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'warframe/models/nightwave'
|
4
|
-
require_relative '../utils'
|
5
|
-
|
6
|
-
module Warframe
|
7
|
-
module REST
|
8
|
-
module API
|
9
|
-
# API endpoint for getting information from the Nightwave route.
|
10
|
-
#
|
11
|
-
# {https://api.warframestat.us/pc/nightwave Example Response}
|
12
|
-
module Nightwave
|
13
|
-
include Warframe::REST::Utils
|
14
|
-
|
15
|
-
# Gets the current Nightwave Mission data.
|
16
|
-
# @return [Warframe::Models::Nightwave]
|
17
|
-
def nightwave
|
18
|
-
get('/nightwave', Warframe::Models::Nightwave)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'warframe/models/nightwave'
|
4
|
+
require_relative '../utils'
|
5
|
+
|
6
|
+
module Warframe
|
7
|
+
module REST
|
8
|
+
module API
|
9
|
+
# API endpoint for getting information from the Nightwave route.
|
10
|
+
#
|
11
|
+
# {https://api.warframestat.us/pc/nightwave Example Response}
|
12
|
+
module Nightwave
|
13
|
+
include Warframe::REST::Utils
|
14
|
+
|
15
|
+
# Gets the current Nightwave Mission data.
|
16
|
+
# @return [Warframe::Models::Nightwave]
|
17
|
+
def nightwave
|
18
|
+
get('/nightwave', Warframe::Models::Nightwave)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'warframe/models/sortie'
|
4
|
-
require_relative '../utils'
|
5
|
-
|
6
|
-
module Warframe
|
7
|
-
module REST
|
8
|
-
module API
|
9
|
-
# API endpoint for getting information on current Sortie data.
|
10
|
-
#
|
11
|
-
# {https://api.warframestat.us/pc/sortie Example Response}
|
12
|
-
module Sortie
|
13
|
-
include Warframe::REST::Utils
|
14
|
-
|
15
|
-
# Gets the current sortie missions.
|
16
|
-
# @return [Array<Warframe::Models::Sortie>]
|
17
|
-
def sortie
|
18
|
-
get('/sortie', Warframe::Models::Sortie)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'warframe/models/sortie'
|
4
|
+
require_relative '../utils'
|
5
|
+
|
6
|
+
module Warframe
|
7
|
+
module REST
|
8
|
+
module API
|
9
|
+
# API endpoint for getting information on current Sortie data.
|
10
|
+
#
|
11
|
+
# {https://api.warframestat.us/pc/sortie Example Response}
|
12
|
+
module Sortie
|
13
|
+
include Warframe::REST::Utils
|
14
|
+
|
15
|
+
# Gets the current sortie missions.
|
16
|
+
# @return [Array<Warframe::Models::Sortie>]
|
17
|
+
def sortie
|
18
|
+
get('/sortie', Warframe::Models::Sortie)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'warframe/models/steel_path'
|
4
|
-
require_relative '../utils'
|
5
|
-
|
6
|
-
module Warframe
|
7
|
-
module REST
|
8
|
-
module API
|
9
|
-
# API endpoint for getting information on current SteelPath data.
|
10
|
-
#
|
11
|
-
# {https://api.warframestat.us/pc/steelPath Example Response}
|
12
|
-
module SteelPath
|
13
|
-
include Warframe::REST::Utils
|
14
|
-
|
15
|
-
# Steel Path data
|
16
|
-
# @return [Warframe::Models::SteelPath]
|
17
|
-
def steel_path
|
18
|
-
get('/steelPath', Warframe::Models::SteelPath)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'warframe/models/steel_path'
|
4
|
+
require_relative '../utils'
|
5
|
+
|
6
|
+
module Warframe
|
7
|
+
module REST
|
8
|
+
module API
|
9
|
+
# API endpoint for getting information on current SteelPath data.
|
10
|
+
#
|
11
|
+
# {https://api.warframestat.us/pc/steelPath Example Response}
|
12
|
+
module SteelPath
|
13
|
+
include Warframe::REST::Utils
|
14
|
+
|
15
|
+
# Steel Path data
|
16
|
+
# @return [Warframe::Models::SteelPath]
|
17
|
+
def steel_path
|
18
|
+
get('/steelPath', Warframe::Models::SteelPath)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'warframe/models/syndicate_mission'
|
4
|
-
require_relative '../utils'
|
5
|
-
|
6
|
-
module Warframe
|
7
|
-
module REST
|
8
|
-
module API
|
9
|
-
# API endpoint for getting information on current SyndicateMission data.
|
10
|
-
#
|
11
|
-
# {https://api.warframestat.us/pc/syndicateMissions Example Response}
|
12
|
-
module SyndicateMissions
|
13
|
-
include Warframe::REST::Utils
|
14
|
-
|
15
|
-
# Gets the current syndicateMissions Data.
|
16
|
-
# @return [Array<Warframe::Models::SyndicateMission>]
|
17
|
-
def syndicate_missions
|
18
|
-
get('/syndicateMissions', Warframe::Models::SyndicateMission)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'warframe/models/syndicate_mission'
|
4
|
+
require_relative '../utils'
|
5
|
+
|
6
|
+
module Warframe
|
7
|
+
module REST
|
8
|
+
module API
|
9
|
+
# API endpoint for getting information on current SyndicateMission data.
|
10
|
+
#
|
11
|
+
# {https://api.warframestat.us/pc/syndicateMissions Example Response}
|
12
|
+
module SyndicateMissions
|
13
|
+
include Warframe::REST::Utils
|
14
|
+
|
15
|
+
# Gets the current syndicateMissions Data.
|
16
|
+
# @return [Array<Warframe::Models::SyndicateMission>]
|
17
|
+
def syndicate_missions
|
18
|
+
get('/syndicateMissions', Warframe::Models::SyndicateMission)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/warframe/rest/api.rb
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'api/alerts'
|
4
|
-
require_relative 'api/cambion_drift'
|
5
|
-
require_relative 'api/cetus'
|
6
|
-
require_relative 'api/conclave_challenges'
|
7
|
-
require_relative 'api/global_upgrades'
|
8
|
-
require_relative 'api/invasions'
|
9
|
-
require_relative 'api/news'
|
10
|
-
require_relative 'api/nightwave'
|
11
|
-
require_relative 'api/sortie'
|
12
|
-
require_relative 'api/steel_path'
|
13
|
-
require_relative 'api/syndicate_missions'
|
14
|
-
|
15
|
-
module Warframe
|
16
|
-
# A REST-ful API service, provided by https://api.warframestat.us.
|
17
|
-
module REST
|
18
|
-
# The API Router for getting live data.
|
19
|
-
#
|
20
|
-
# Attempting to have every accessible route from {https://docs.warframestat.us Warframe Stat}.
|
21
|
-
#
|
22
|
-
# Module names are 'routes' to this API. See {Warframe::REST::API::Alerts Alerts} for example.
|
23
|
-
module API
|
24
|
-
include Warframe::REST::API::Alerts
|
25
|
-
include Warframe::REST::API::CambionDrift
|
26
|
-
include Warframe::REST::API::Cetus
|
27
|
-
include Warframe::REST::API::ConclaveChallenges
|
28
|
-
include Warframe::REST::API::GlobalUpgrades
|
29
|
-
include Warframe::REST::API::Invasions
|
30
|
-
include Warframe::REST::API::News
|
31
|
-
include Warframe::REST::API::Nightwave
|
32
|
-
include Warframe::REST::API::Sortie
|
33
|
-
include Warframe::REST::API::SteelPath
|
34
|
-
include Warframe::REST::API::SyndicateMissions
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'api/alerts'
|
4
|
+
require_relative 'api/cambion_drift'
|
5
|
+
require_relative 'api/cetus'
|
6
|
+
require_relative 'api/conclave_challenges'
|
7
|
+
require_relative 'api/global_upgrades'
|
8
|
+
require_relative 'api/invasions'
|
9
|
+
require_relative 'api/news'
|
10
|
+
require_relative 'api/nightwave'
|
11
|
+
require_relative 'api/sortie'
|
12
|
+
require_relative 'api/steel_path'
|
13
|
+
require_relative 'api/syndicate_missions'
|
14
|
+
|
15
|
+
module Warframe
|
16
|
+
# A REST-ful API service, provided by https://api.warframestat.us.
|
17
|
+
module REST
|
18
|
+
# The API Router for getting live data.
|
19
|
+
#
|
20
|
+
# Attempting to have every accessible route from {https://docs.warframestat.us Warframe Stat}.
|
21
|
+
#
|
22
|
+
# Module names are 'routes' to this API. See {Warframe::REST::API::Alerts Alerts} for example.
|
23
|
+
module API
|
24
|
+
include Warframe::REST::API::Alerts
|
25
|
+
include Warframe::REST::API::CambionDrift
|
26
|
+
include Warframe::REST::API::Cetus
|
27
|
+
include Warframe::REST::API::ConclaveChallenges
|
28
|
+
include Warframe::REST::API::GlobalUpgrades
|
29
|
+
include Warframe::REST::API::Invasions
|
30
|
+
include Warframe::REST::API::News
|
31
|
+
include Warframe::REST::API::Nightwave
|
32
|
+
include Warframe::REST::API::Sortie
|
33
|
+
include Warframe::REST::API::SteelPath
|
34
|
+
include Warframe::REST::API::SyndicateMissions
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/warframe/rest/client.rb
CHANGED
@@ -1,42 +1,42 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'warframe/client_wrapper'
|
4
|
-
require_relative './api'
|
5
|
-
|
6
|
-
module Warframe
|
7
|
-
module REST
|
8
|
-
# The main application Client for access live feed data.
|
9
|
-
#
|
10
|
-
# == Example Usage
|
11
|
-
#
|
12
|
-
# client = Warframe::REST::Client.new
|
13
|
-
# client.nightwave.tag # => 'Radio Legion Intermission'
|
14
|
-
#
|
15
|
-
# == Accepted Platforms
|
16
|
-
#
|
17
|
-
# default = 'pc'
|
18
|
-
# all_platorms = [ 'pc', 'ps4', 'xb1', 'swi' ]
|
19
|
-
#
|
20
|
-
# client = Waframe::REST::Client.new(platform: 'ps4')
|
21
|
-
# client.platform # => 'ps4'
|
22
|
-
# client.language # => 'en'
|
23
|
-
#
|
24
|
-
# == Accepted Languages
|
25
|
-
#
|
26
|
-
# default = 'en'
|
27
|
-
# all_languages = [ 'de', 'es', 'en', 'fr', 'it', 'ko', 'pl', 'pt', 'ru', 'zh' ]
|
28
|
-
#
|
29
|
-
# client = Warframe::REST::Client.new(language: 'fr')
|
30
|
-
# client.language # => 'fr'
|
31
|
-
# client.platform # => 'pc'
|
32
|
-
#
|
33
|
-
# == Setting both Platform and Language
|
34
|
-
#
|
35
|
-
# client = Warframe::REST::Client.new(platform: 'ps4', language: 'de')
|
36
|
-
# client.platform # => 'ps4'
|
37
|
-
# client.language # => 'de'
|
38
|
-
class Client < Warframe::ClientWrapper
|
39
|
-
include Warframe::REST::API
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'warframe/client_wrapper'
|
4
|
+
require_relative './api'
|
5
|
+
|
6
|
+
module Warframe
|
7
|
+
module REST
|
8
|
+
# The main application Client for access live feed data.
|
9
|
+
#
|
10
|
+
# == Example Usage
|
11
|
+
#
|
12
|
+
# client = Warframe::REST::Client.new
|
13
|
+
# client.nightwave.tag # => 'Radio Legion Intermission'
|
14
|
+
#
|
15
|
+
# == Accepted Platforms
|
16
|
+
#
|
17
|
+
# default = 'pc'
|
18
|
+
# all_platorms = [ 'pc', 'ps4', 'xb1', 'swi' ]
|
19
|
+
#
|
20
|
+
# client = Waframe::REST::Client.new(platform: 'ps4')
|
21
|
+
# client.platform # => 'ps4'
|
22
|
+
# client.language # => 'en'
|
23
|
+
#
|
24
|
+
# == Accepted Languages
|
25
|
+
#
|
26
|
+
# default = 'en'
|
27
|
+
# all_languages = [ 'de', 'es', 'en', 'fr', 'it', 'ko', 'pl', 'pt', 'ru', 'zh' ]
|
28
|
+
#
|
29
|
+
# client = Warframe::REST::Client.new(language: 'fr')
|
30
|
+
# client.language # => 'fr'
|
31
|
+
# client.platform # => 'pc'
|
32
|
+
#
|
33
|
+
# == Setting both Platform and Language
|
34
|
+
#
|
35
|
+
# client = Warframe::REST::Client.new(platform: 'ps4', language: 'de')
|
36
|
+
# client.platform # => 'ps4'
|
37
|
+
# client.language # => 'de'
|
38
|
+
class Client < Warframe::ClientWrapper
|
39
|
+
include Warframe::REST::API
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -1,61 +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
|
-
@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
|
+
# 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,23 +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
|
-
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
|
+
# 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.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
|