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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 388d0677f507123464a3fe14a9f95c281012be81a1384f38b48d5da3e42b4cc0
4
- data.tar.gz: c0777beb4ad16128159da5096f0baca39be67242ddd2ee70cb5dc60afb3ffb77
3
+ metadata.gz: d14b695f778a8720be1940cede86886f31104f9d0760ff6fc2ec83c38234fc0d
4
+ data.tar.gz: 5d06096041b3915849b52d18df667e98c441373fb7fef054d0d9b77aa9117b6a
5
5
  SHA512:
6
- metadata.gz: 26368cf03ac61bd44356f739696c220402a6753725bd616d4454874fdfc45bec3769f42ab102332ed3bcf7f561a7540bf9a9d4b70df5376b5bb299d08f90c213
7
- data.tar.gz: 107dcc6d59d1860b21b4bfb0f1ca8d8c217e57e55840b48dd5a0ca42d252fed412b283dfa9283c70043d1eae1d6d834070ea122a1265e07588ab63e2be6b4589
6
+ metadata.gz: 924f6fd8fb604b19dbb77a2f9088f3c0e4f2edfe27df2df16dd08fe3fafb4273b89a81feedf512998fc7509c2dcc88c05aa1abe3d84242e48607f4ad4757420b
7
+ data.tar.gz: a87e8635e2b5983344cea2b6ae92fe16ec378d3f42c431638322034ed732f4b0f8b1c37c0eed2cd749614f641ac0d0bd771d5ce845f16d732341a07a34053bfe
data/.yardopts CHANGED
@@ -1,4 +1,4 @@
1
- --no-private
2
- --protected
3
- -
1
+ --no-private
2
+ --protected
3
+ -
4
4
  README.md
data/README.md CHANGED
@@ -1,75 +1,99 @@
1
- # warframe-ruby
2
- [![Ruby Gem Version](https://badgen.net/rubygems/v/warframe)](https://rubygems.org/gems/warframe)
3
- [![Downloads](https://badgen.net/rubygems/dt/warframe)](https://rubygems.org/gems/warframe)
4
- [![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)
5
- [![Platform](https://badgen.net/rubygems/p/warframe)](https://www.ruby-lang.org/en/)
6
-
7
- A Ruby client for [Warframe Stat](https://warframestat.us) bringing you live modeled data from their API.
8
-
9
- ## Installation
10
-
11
- Add this line to your application's Gemfile:
12
-
13
- ```ruby
14
- gem 'warframe'
15
- ```
16
-
17
- And then execute:
18
-
19
- $ bundle install
20
-
21
- Or install it yourself as:
22
-
23
- $ gem install warframe
24
-
25
- ## Usage
26
-
27
- To get started accessing live data, you must instantiate a new `Warframe::REST::Client`
28
- ```ruby
29
- require 'warframe'
30
-
31
- client = Warframe::REST::Client.new # => <Warframe::REST::Client platform='pc' language='en'>
32
-
33
- # You can supply a hash to set your preferred platform or language.
34
- my_custom_options = { platform: 'ps4', language: 'de' }
35
- german_ps4 = Warframe::REST:Client.new my_custom_options # => <Warframe::REST::Client platform='ps4' language='de'>
36
- ```
37
-
38
- This gives us access to a plethora of methods, check out the [documentation](https://rubydoc.info/gems/warframe) for more info.
39
- ```ruby
40
-
41
- client = Warframe::REST::Client.new
42
- client.nightwave # => <Warframe::Models::Nightwave>
43
- client.alerts # => [ <Warframe::Models::Alert>, <Warframe::Models::Alert> ]
44
- ```
45
-
46
- ## Documentation
47
-
48
- Documentation is currently provided by [rubydoc.info](https://rubydoc.info), check out the current versions documentation at https://rubydoc.info/gems/warframe.
49
-
50
- ## Development
51
-
52
- ### Dependency Management
53
- After checking out the repo, run `bundle install` to install required dependencies.
54
-
55
- ### Testing
56
- To check if your changes are passing tests, run:
57
-
58
- $ rake test
59
-
60
- > Testing framework provided by [RSpec](https://rspec.info/).
61
-
62
- ### Linting
63
- To auto-correct styling offenses, run:
64
-
65
- $ rake lint
66
-
67
- > All linting is provided by [RuboCop](https://github.com/rubocop/rubocop).
68
-
69
- ## Contributing
70
-
71
- 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).
72
-
73
- ## License
74
-
75
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
1
+ # warframe-ruby
2
+ [![Supported by Warframe Community Developers](https://warframestat.us/wfcd.png)](https://github.com/WFCD/banner/blob/main/PROJECTS.md "Supported by Warframe Community Developers")
3
+ [![Ruby Gem Version](https://badgen.net/rubygems/v/warframe)](https://rubygems.org/gems/warframe)
4
+ [![Downloads](https://badgen.net/rubygems/dt/warframe)](https://rubygems.org/gems/warframe)
5
+ [![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)
6
+ [![Platform](https://badgen.net/rubygems/p/warframe)](https://www.ruby-lang.org/en/)
7
+
8
+
9
+ A Ruby client for [Warframe Stat](https://warframestat.us) bringing you live modeled data from their API.
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ ```ruby
16
+ gem 'warframe'
17
+ ```
18
+
19
+ And then execute:
20
+
21
+ $ bundle install
22
+
23
+ Or install it yourself as:
24
+
25
+ $ gem install warframe
26
+
27
+ ## Usage
28
+
29
+ To get started accessing live data, you must instantiate a new `Warframe::REST::Client`
30
+ ```ruby
31
+ require 'warframe'
32
+
33
+ client = Warframe::REST::Client.new # => <Warframe::REST::Client platform='pc' language='en'>
34
+
35
+ # You can supply a hash to set your preferred platform or language.
36
+ my_custom_options = { platform: 'ps4', language: 'de' }
37
+ german_ps4 = Warframe::REST:Client.new my_custom_options # => <Warframe::REST::Client platform='ps4' language='de'>
38
+ ```
39
+
40
+ This gives us access to a plethora of methods, check out the [documentation](https://rubydoc.info/gems/warframe) for more info.
41
+ ```ruby
42
+
43
+ client = Warframe::REST::Client.new
44
+ client.nightwave # => <Warframe::Models::Nightwave>
45
+ client.alerts # => [ <Warframe::Models::Alert>, <Warframe::Models::Alert> ]
46
+ ```
47
+
48
+ ## Documentation
49
+
50
+ Documentation is currently provided by [rubydoc.info](https://rubydoc.info), check out the current versions documentation at https://rubydoc.info/gems/warframe.
51
+
52
+ ## Development
53
+
54
+ ### Dependency Management
55
+ After checking out the repo, run:
56
+
57
+ $ bundle install
58
+
59
+ > This will install all required dependencies for this gem to run.
60
+
61
+ ### Testing
62
+ To check if your changes are passing tests, run:
63
+
64
+ $ thor test:rspec
65
+
66
+ > Testing framework provided by [RSpec](https://rspec.info/).
67
+
68
+ ### Linting
69
+ To auto-correct styling offenses, run:
70
+
71
+ $ thor style:fix
72
+
73
+ > All linting is provided by [RuboCop](https://github.com/rubocop/rubocop).
74
+
75
+ ### Generating New Routes / Models with Thor
76
+ Using Thor allows us to create new routes and models via the command line, making it very simple to add new elements.
77
+
78
+ For example if we wanted to add, [conclaveChallenges](https://docs.warframestat.us/#tag/Worldstate/paths/~1{platform}~1conclaveChallenges/get) we run:
79
+
80
+ $ thor generate conclaveChallenges
81
+
82
+ > create lib/warframe/models/conclave_challenge.rb
83
+ > create lib/warframe/rest/api/conclave_challenges.rb
84
+ > conflict lib/warframe/rest/api.rb
85
+ > Overwrite ~/warframe/lib/warframe/rest/api.rb? (enter "h" for help) [Ynaqdh]
86
+
87
+ $ Y
88
+
89
+ > force lib/warframe/rest/api.rb
90
+
91
+ 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 write associated tests.
92
+
93
+ ## Contributing
94
+
95
+ 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).
96
+
97
+ ## License
98
+
99
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Warframe
4
+ # @private
5
+ class Cache
6
+ # Expiration time in seconds
7
+ EXPIRATION_TIME = 5 * 60
8
+ attr_accessor :cache
9
+
10
+ def initialize
11
+ @cache = {}
12
+ end
13
+
14
+ def get_from_cache(key)
15
+ cache[key][:result]
16
+ end
17
+
18
+ def find_in_cache(key)
19
+ cache[key][:result] if exist?(key) && !expired?(key)
20
+ end
21
+
22
+ def add_to_cache(key, val, time = EXPIRATION_TIME)
23
+ cache[key] = { time: Time.now.to_i + time, result: val }
24
+ val
25
+ end
26
+
27
+ private
28
+
29
+ def exist?(key)
30
+ !cache[key].nil?
31
+ end
32
+
33
+ def expired?(key)
34
+ cache[key][:time] - Time.now.to_i <= 0
35
+ end
36
+ end
37
+ end
@@ -1,37 +1,39 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- # @abstract
5
- # @private
6
- # Wraps the {Warframe::REST::Client REST::Client} with necessary variables and methods.
7
- #
8
- # This class should < not be used > for interacting with the API.
9
- class ClientWrapper
10
- # The base Warframe Stat API link
11
- BASE_URL = 'https://api.warframestat.us/'
12
- # Default attributes
13
- DEFAULT_OPTIONS = { platform: 'pc', language: 'en' }.freeze
14
- attr_accessor :platform, :language
15
-
16
- # Initialize the Wrapper for {Warframe::REST::Client REST::Client}
17
- #
18
- # @param options [Hash] merges with {DEFAULT_OPTIONS}
19
- #
20
- # See {Warframe::REST::Client REST::Client} for all accepted languages, platforms, and examples.
21
- #
22
- # This class is ABSTRACT and should not be instantiated outside of {Warframe::REST::Client REST::Client}.
23
- # @return [Warframe::ClientWrapper]
24
- def initialize(options = {})
25
- DEFAULT_OPTIONS.merge(options).each { |k, v| instance_variable_set "@#{k}", v }
26
-
27
- yield self if block_given?
28
- end
29
-
30
- # @return [String] the base url and platform combined.
31
- def base_url
32
- BASE_URL + platform
33
- end
34
-
35
- # might need to manipulate user_agent
36
- end
37
- end
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'cache'
4
+
5
+ module Warframe
6
+ # @abstract
7
+ # @private
8
+ # Wraps the {Warframe::REST::Client REST::Client} with necessary variables and methods.
9
+ #
10
+ # This class should < not be used > for interacting with the API.
11
+ class ClientWrapper < Warframe::Cache
12
+ # The base Warframe Stat API link
13
+ BASE_URL = 'https://api.warframestat.us/'
14
+ # Default attributes
15
+ DEFAULT_OPTIONS = { platform: 'pc', language: 'en' }.freeze
16
+
17
+ # The Client Cache
18
+ attr_accessor :platform, :language
19
+
20
+ # Initialize the Wrapper for {Warframe::REST::Client REST::Client}
21
+ #
22
+ # @param options [Hash] merges with {DEFAULT_OPTIONS}
23
+ #
24
+ # See {Warframe::REST::Client REST::Client} for all accepted languages, platforms, and examples.
25
+ #
26
+ # This class is ABSTRACT and should not be instantiated outside of {Warframe::REST::Client REST::Client}.
27
+ # @return [Warframe::ClientWrapper]
28
+ def initialize(options = {})
29
+ super()
30
+ DEFAULT_OPTIONS.merge(options).each { |k, v| instance_variable_set "@#{k}", v }
31
+ yield self if block_given?
32
+ end
33
+
34
+ # @return [String] the base url and platform combined.
35
+ def base_url
36
+ BASE_URL + platform
37
+ end
38
+ end
39
+ end
@@ -1,29 +1,30 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative './base'
4
- require_relative './attributes/expiry'
5
- require_relative './attributes/active'
6
- require_relative './attributes/eta'
7
- require_relative './attributes/reward_types'
8
- require_relative './attributes/start_string'
9
-
10
- module Warframe
11
- module Models
12
- # Model for World State data {https://api.warframestat.hub/pc/alerts /:platform/alerts}
13
- class Alert < Warframe::Models::Base
14
- include Warframe::Models::Attributes::Expired
15
- include Warframe::Models::Attributes::Active
16
- include Warframe::Models::Attributes::ETA
17
- include Warframe::Models::Attributes::RewardTypes
18
- include Warframe::Models::Attributes::StartString
19
-
20
- # The id of the Alert.
21
- # @return [String]
22
- attr_reader :id
23
-
24
- # The mission data of this alert.
25
- # @return [OpenStruct]
26
- attr_reader :mission
27
- end
28
- end
29
- end
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './base'
4
+ require_relative './attributes/expiry'
5
+ require_relative './attributes/active'
6
+ require_relative './attributes/eta'
7
+ require_relative './attributes/reward_types'
8
+ require_relative './attributes/start_string'
9
+
10
+ module Warframe
11
+ module Models
12
+ # Model for Alert data.
13
+ # {https://api.warframestat.hub/pc/alerts /:platform/alerts}
14
+ class Alert < Warframe::Models::Base
15
+ include Warframe::Models::Attributes::Expired
16
+ include Warframe::Models::Attributes::Active
17
+ include Warframe::Models::Attributes::ETA
18
+ include Warframe::Models::Attributes::RewardTypes
19
+ include Warframe::Models::Attributes::StartString
20
+
21
+ # The id of the Alert.
22
+ # @return [String]
23
+ attr_reader :id
24
+
25
+ # The mission data of this alert.
26
+ # @return [OpenStruct]
27
+ attr_reader :mission
28
+ end
29
+ end
30
+ end
@@ -1,31 +1,31 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- module Models
5
- module Attributes
6
- # Includes the active? attribute.
7
- module Active
8
- # Whether or not the event is active.
9
- # @return [Boolean]
10
- attr_reader :active
11
- alias active? active
12
- end
13
-
14
- # Includes the activation date as an attribute.
15
- module Activation
16
- # The time the event was activated.
17
- # @return [String]
18
- attr_reader :activation
19
- end
20
-
21
- # For models that require both {Warframe::Models::Common::Active Common::Active}
22
- # and {Warframe::Models::Common::Activation Common::Activation}
23
- #
24
- # Includes both the active? and activation methods.
25
- module ActiveBoth
26
- include Activation
27
- include Active
28
- end
29
- end
30
- end
31
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Warframe
4
+ module Models
5
+ module Attributes
6
+ # Includes the active? attribute.
7
+ module Active
8
+ # Whether or not the event is active.
9
+ # @return [Boolean]
10
+ attr_reader :active
11
+ alias active? active
12
+ end
13
+
14
+ # Includes the activation date as an attribute.
15
+ module Activation
16
+ # The time the event was activated.
17
+ # @return [String]
18
+ attr_reader :activation
19
+ end
20
+
21
+ # For models that require both {Warframe::Models::Common::Active Common::Active}
22
+ # and {Warframe::Models::Common::Activation Common::Activation}
23
+ #
24
+ # Includes both the active? and activation methods.
25
+ module ActiveBoth
26
+ include Activation
27
+ include Active
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,14 +1,21 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- module Models
5
- module Attributes
6
- # Includes the desc attribute.
7
- module Description
8
- # The description of the data requested.
9
- # @return [String]
10
- attr_reader :desc
11
- end
12
- end
13
- end
14
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Warframe
4
+ module Models
5
+ module Attributes
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.
14
+ module Description
15
+ # The description of the data requested.
16
+ # @return [String]
17
+ attr_reader :description
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,14 +1,14 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- module Models
5
- module Attributes
6
- # Adds the eta attribute.
7
- module ETA
8
- # The estimated time until arrival.
9
- # @return [String]
10
- attr_reader :eta
11
- end
12
- end
13
- end
14
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Warframe
4
+ module Models
5
+ module Attributes
6
+ # Adds the eta attribute.
7
+ module ETA
8
+ # The estimated time until arrival.
9
+ # @return [String]
10
+ attr_reader :eta
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,30 +1,30 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- module Models
5
- # Common Attributes between models.
6
- module Attributes
7
- # Includes the expiry attribute.
8
- module Expiry
9
- # When the event will expire.
10
- # @return [String]
11
- attr_reader :expiry
12
- end
13
-
14
- # Adds a boolean attribute expired? to see whether or not the even has expired.
15
- module Expired
16
- # Whether or not the event has expired.
17
- # @return [Boolean]
18
- attr_reader :expired
19
- alias expired? expired
20
- end
21
-
22
- # Adds the {Warframe::Models::Attributes::Expiry Attributes::Expiry} &
23
- # {Warframe::Models::Attributes::Expired Attributes::Expired} attributes.
24
- module Expiration
25
- include Expiry
26
- include Expired
27
- end
28
- end
29
- end
30
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Warframe
4
+ module Models
5
+ # Common Attributes between models.
6
+ module Attributes
7
+ # Includes the expiry attribute.
8
+ module Expiry
9
+ # When the event will expire.
10
+ # @return [String]
11
+ attr_reader :expiry
12
+ end
13
+
14
+ # Adds a boolean attribute expired? to see whether or not the even has expired.
15
+ module Expired
16
+ # Whether or not the event has expired.
17
+ # @return [Boolean]
18
+ attr_reader :expired
19
+ alias expired? expired
20
+ end
21
+
22
+ # Adds the {Warframe::Models::Attributes::Expiry Attributes::Expiry} &
23
+ # {Warframe::Models::Attributes::Expired Attributes::Expired} attributes.
24
+ module Expiration
25
+ include Expiry
26
+ include Expired
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,14 +1,14 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- module Models
5
- module Attributes
6
- # Unique data response ID.
7
- module ID
8
- # The unique ID of the event.
9
- # @return [String]
10
- attr_reader :id
11
- end
12
- end
13
- end
14
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Warframe
4
+ module Models
5
+ module Attributes
6
+ # Unique data response ID.
7
+ module ID
8
+ # The unique ID of the event.
9
+ # @return [String]
10
+ attr_reader :id
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,14 +1,14 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- module Models
5
- module Attributes
6
- # The types of rewards you can get from this event.
7
- module RewardTypes
8
- # The types of rewards you can get from this event.
9
- # @return [Array<String>]
10
- attr_reader :reward_types
11
- end
12
- end
13
- end
14
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Warframe
4
+ module Models
5
+ module Attributes
6
+ # The types of rewards you can get from this event.
7
+ module RewardTypes
8
+ # The types of rewards you can get from this event.
9
+ # @return [Array<String>]
10
+ attr_reader :reward_types
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,14 +1,14 @@
1
- # frozen_string_literal: true
2
-
3
- module Warframe
4
- module Models
5
- module Attributes
6
- # Adds the start_string attribute, for when an event will begin.
7
- module StartString
8
- # When this event goes into effect.
9
- # @return [String]
10
- attr_reader :start_string
11
- end
12
- end
13
- end
14
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Warframe
4
+ module Models
5
+ module Attributes
6
+ # Adds the start_string attribute, for when an event will begin.
7
+ module StartString
8
+ # When this event goes into effect.
9
+ # @return [String]
10
+ attr_reader :start_string
11
+ end
12
+ end
13
+ end
14
+ end