warframe 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 388d0677f507123464a3fe14a9f95c281012be81a1384f38b48d5da3e42b4cc0
4
- data.tar.gz: c0777beb4ad16128159da5096f0baca39be67242ddd2ee70cb5dc60afb3ffb77
3
+ metadata.gz: 5fbb7e4ec10b0e0025f2a7270e2c29dd709999cba7658aaea54a21fd3be00947
4
+ data.tar.gz: 0477ac222872fc1409b196c25b570264b1a828fedf72590e9edf75bceca63464
5
5
  SHA512:
6
- metadata.gz: 26368cf03ac61bd44356f739696c220402a6753725bd616d4454874fdfc45bec3769f42ab102332ed3bcf7f561a7540bf9a9d4b70df5376b5bb299d08f90c213
7
- data.tar.gz: 107dcc6d59d1860b21b4bfb0f1ca8d8c217e57e55840b48dd5a0ca42d252fed412b283dfa9283c70043d1eae1d6d834070ea122a1265e07588ab63e2be6b4589
6
+ metadata.gz: 3365b0ea6f6d4d24a5504a9ae3d9245b2dd7fe4aa25a9a8975fd3e93c82fd3e3401aa56968fa5590c3873f3ca0097748d62b8764b2d4f100aa2db8a2d37a501f
7
+ data.tar.gz: 140f505cae2155b0666d8335734818ed46a9becf42eafe77e6034dcb47d3f07311b6989e69bcd788764021855331030385225589792b655db6391e7dd43c68b2
data/README.md CHANGED
@@ -66,6 +66,28 @@ To auto-correct styling offenses, run:
66
66
 
67
67
  > All linting is provided by [RuboCop](https://github.com/rubocop/rubocop).
68
68
 
69
+ ### Generating New Routes / Models with Thor
70
+ Using Thor allows us to create new routes and models via the command line, making it very simple to add new elements.
71
+
72
+ For example if we wanted to add, [conclaveChallenges](https://docs.warframestat.us/#tag/Worldstate/paths/~1{platform}~1conclaveChallenges/get) we run:
73
+
74
+ $ thor generate conclaveChallenges
75
+
76
+ > create lib/warframe/models/conclave_challenge.rb
77
+ > create lib/warframe/rest/api/conclave_challenges.rb
78
+ > conflict lib/warframe/rest/api.rb
79
+ > Overwrite C:/Users/ajrom/RubymineProjects/warframe/lib/warframe/rest/api.rb? (enter "h" for help) [Ynaqdh]
80
+
81
+ $ Y
82
+
83
+ > force lib/warframe/rest/api.rb
84
+
85
+ This creates a blank [model](/lib/warframe/models) for the data and a [route](/lib/warframe/rest/api) with a name spaced method for it, and then adds this method to our [REST::API](/lib/warframe/rest/api). Add attributes to the corresponding model and then run:
86
+
87
+ $ rake test
88
+
89
+ To ensure the new model is able to be created and accessed correctly, feel free to create more tests in the [spec directory](/spec/models).
90
+
69
91
  ## Contributing
70
92
 
71
93
  Bug reports and pull requests are welcome on GitHub at https://github.com/aj-rom/warframe-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/aj-rom/warframe-ruby/blob/master/CODE_OF_CONDUCT.md).
@@ -3,11 +3,18 @@
3
3
  module Warframe
4
4
  module Models
5
5
  module Attributes
6
- # Includes the desc attribute.
6
+ # Includes the desc attribute
7
+ module Desc
8
+ # The description of the data requested
9
+ # @return [String]
10
+ attr_reader :desc
11
+ end
12
+
13
+ # Includes the description attribute.
7
14
  module Description
8
15
  # The description of the data requested.
9
16
  # @return [String]
10
- attr_reader :desc
17
+ attr_reader :description
11
18
  end
12
19
  end
13
20
  end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './base'
4
+ require_relative 'attributes/expiry'
5
+ require_relative 'attributes/eta'
6
+ require_relative 'attributes/description'
7
+ require_relative 'attributes/id'
8
+ require_relative 'attributes/active'
9
+
10
+ module Warframe
11
+ module Models
12
+ # Model for ConclaveChallenge Data
13
+ # {https://api.warframestat.us/pc/conclaveChallenges /:platform/conclaveChallenges}
14
+ class ConclaveChallenge < Warframe::Models::Base
15
+ include Warframe::Models::Attributes::Expiration
16
+ include Warframe::Models::Attributes::ETA
17
+ include Warframe::Models::Attributes::Description
18
+ include Warframe::Models::Attributes::ID
19
+ include Warframe::Models::Attributes::Activation
20
+
21
+ # The mode of the conclave.
22
+ # @return [String]
23
+ attr_reader :mode
24
+
25
+ # The amount of challenges that must be completed.
26
+ # @return [Integer]
27
+ attr_reader :amount
28
+
29
+ # The amount of standing you will gain upon completion.
30
+ # @return [Integer]
31
+ attr_reader :standing
32
+
33
+ # The title of the challenge.
34
+ # @return [String]
35
+ attr_reader :title
36
+
37
+ # The category of mission, usually 'weekly' / 'daily'.
38
+ # @return [String]
39
+ attr_reader :category
40
+
41
+ # Whether or not this is a daily mission.
42
+ # @return [Boolean]
43
+ attr_reader :daily
44
+
45
+ # The challenge information in a one line string.
46
+ # @return [String]
47
+ attr_reader :as_string
48
+
49
+ # Whether or not this is a root challenge.
50
+ # @return [Boolean]
51
+ attr_reader :root_challenge
52
+ end
53
+ end
54
+ end
@@ -9,7 +9,7 @@ module Warframe
9
9
  # Global Upgrades data model.
10
10
  class GlobalUpgrade < Warframe::Models::Base
11
11
  include Warframe::Models::Attributes::Expired
12
- include Warframe::Models::Attributes::Description
12
+ include Warframe::Models::Attributes::Desc
13
13
  include Warframe::Models::Attributes::ETA
14
14
 
15
15
  # The start of the global upgrade.
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './base'
4
+ require_relative 'attributes/id'
5
+ require_relative 'attributes/expiry'
6
+ require_relative 'attributes/active'
7
+ require_relative 'attributes/eta'
8
+
9
+ module Warframe
10
+ module Models
11
+ # Model for Sortie Data {https://api.warframestat.us/pc/sortie> /:platform/sortie}
12
+ class Sortie < Warframe::Models::Base
13
+ include Warframe::Models::Attributes::ID
14
+ include Warframe::Models::Attributes::Activation
15
+ include Warframe::Models::Attributes::Expiration
16
+ include Warframe::Models::Attributes::ETA
17
+
18
+ # The boss for this part of the sortie.
19
+ # @return [String]
20
+ attr_reader :boss
21
+
22
+ # The faction fighting you in this mission.
23
+ # @return [String]
24
+ attr_reader :faction
25
+
26
+ # Modifiers active for this challenge.
27
+ # @return [Array<OpenStruct>]
28
+ attr_reader :variants
29
+
30
+ # The reward pool which this is pulling from.
31
+ # @return [String]
32
+ attr_reader :reward_pool
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './base'
4
+
5
+ module Warframe
6
+ module Models
7
+ # Model for SteelPath Data {https://api.warframestat.us/pc/steelPath> /:platform/steelPath}
8
+ class SteelPath < Warframe::Models::Base
9
+ include Warframe::Models::Attributes::Active
10
+ include Warframe::Models::Attributes::Expiry
11
+
12
+ # The currently available item from Teshin.
13
+ # @return [OpenStruct]
14
+ attr_reader :current_reward
15
+
16
+ # The time remaining of the current reward.
17
+ # @return [String]
18
+ attr_reader :remaining
19
+
20
+ # Current rotation of items the Arbiters have to offer.
21
+ # @return [Array<OpenStruct>]
22
+ attr_reader :rotation
23
+
24
+ # Current rotation of items Teshin has to offer.
25
+ # @return [Array<OpenStruct>]
26
+ attr_reader :evergreens
27
+
28
+ # Current incursion data
29
+ # @return [OpenStruct]
30
+ attr_reader :incursions
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './base'
4
+ require_relative 'attributes/eta'
5
+ require_relative 'attributes/id'
6
+ require_relative 'attributes/active'
7
+ require_relative 'attributes/start_string'
8
+
9
+ module Warframe
10
+ module Models
11
+ # Model for SyndicateMission Data {https://api.warframestat.us/pc/syndicateMissions> /:platform/syndicateMissions}
12
+ class SyndicateMission < Warframe::Models::Base
13
+ include Warframe::Models::Attributes::ETA
14
+ include Warframe::Models::Attributes::ID
15
+ include Warframe::Models::Attributes::ActiveBoth
16
+ include Warframe::Models::Attributes::StartString
17
+
18
+ # 'Jobs' or challenges currently available.
19
+ # @return [Array<OpenStruct>]
20
+ attr_reader :jobs
21
+
22
+ # The syndicate you will be fighting.
23
+ # @return [String]
24
+ attr_reader :syndicate
25
+
26
+ # The nodes that this mission is available on.
27
+ # @return [Array]
28
+ attr_reader :nodes
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'warframe/models/conclave_challenge'
4
+ require_relative '../utils'
5
+
6
+ module Warframe
7
+ module REST
8
+ module API
9
+ # API endpoint for getting information on current ConclaveChallenge data.
10
+ #
11
+ # {https://api.warframestat.us/pc/conclaveChallenges> Example Response}
12
+ module ConclaveChallenges
13
+ include Warframe::REST::Utils
14
+
15
+ # Gets the current conclave challenges.
16
+ # @return [Array<Warframe::Models::ConclaveChallenge>]
17
+ def conclave_challenges
18
+ get('/conclaveChallenges', Warframe::Models::ConclaveChallenge)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +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
@@ -0,0 +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
@@ -0,0 +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,10 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'api/alerts'
4
+ require_relative 'api/conclave_challenges'
4
5
  require_relative 'api/global_upgrades'
5
6
  require_relative 'api/invasions'
6
7
  require_relative 'api/news'
7
8
  require_relative 'api/nightwave'
9
+ require_relative 'api/sortie'
10
+ require_relative 'api/steel_path'
11
+ require_relative 'api/syndicate_missions'
8
12
 
9
13
  module Warframe
10
14
  # A REST-ful API service, provided by https://api.warframestat.us
@@ -16,10 +20,14 @@ module Warframe
16
20
  # Module names are 'routes' to this API. See {Warframe::REST::API::Alerts Alerts} for example.
17
21
  module API
18
22
  include Warframe::REST::API::Alerts
23
+ include Warframe::REST::API::ConclaveChallenges
19
24
  include Warframe::REST::API::GlobalUpgrades
20
25
  include Warframe::REST::API::Invasions
21
26
  include Warframe::REST::API::News
22
27
  include Warframe::REST::API::Nightwave
28
+ include Warframe::REST::API::Sortie
29
+ include Warframe::REST::API::SteelPath
30
+ include Warframe::REST::API::SyndicateMissions
23
31
  end
24
32
  end
25
33
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Warframe
4
4
  # The current version of this gem.
5
- VERSION = '0.1.3'
5
+ VERSION = '0.2.0'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
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.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Romaniello
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-19 00:00:00.000000000 Z
11
+ date: 2021-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fast_underscore
@@ -207,16 +207,24 @@ files:
207
207
  - lib/warframe/models/attributes/start_string.rb
208
208
  - lib/warframe/models/attributes/translations.rb
209
209
  - lib/warframe/models/base.rb
210
+ - lib/warframe/models/conclave_challenge.rb
210
211
  - lib/warframe/models/global_upgrade.rb
211
212
  - lib/warframe/models/invasion.rb
212
213
  - lib/warframe/models/news.rb
213
214
  - lib/warframe/models/nightwave.rb
215
+ - lib/warframe/models/sortie.rb
216
+ - lib/warframe/models/steel_path.rb
217
+ - lib/warframe/models/syndicate_mission.rb
214
218
  - lib/warframe/rest/api.rb
215
219
  - lib/warframe/rest/api/alerts.rb
220
+ - lib/warframe/rest/api/conclave_challenges.rb
216
221
  - lib/warframe/rest/api/global_upgrades.rb
217
222
  - lib/warframe/rest/api/invasions.rb
218
223
  - lib/warframe/rest/api/news.rb
219
224
  - lib/warframe/rest/api/nightwave.rb
225
+ - lib/warframe/rest/api/sortie.rb
226
+ - lib/warframe/rest/api/steel_path.rb
227
+ - lib/warframe/rest/api/syndicate_missions.rb
220
228
  - lib/warframe/rest/client.rb
221
229
  - lib/warframe/rest/request.rb
222
230
  - lib/warframe/rest/utils.rb