warframe 0.1.0
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.
- checksums.yaml +7 -0
 - data/.rspec +3 -0
 - data/.rubocop.yml +5 -0
 - data/.yardopts +5 -0
 - data/CODE_OF_CONDUCT.md +84 -0
 - data/Gemfile +5 -0
 - data/Gemfile.lock +103 -0
 - data/LICENSE.txt +21 -0
 - data/README.md +71 -0
 - data/Rakefile +12 -0
 - data/lib/warframe/client_wrapper.rb +36 -0
 - data/lib/warframe/models/alert.rb +29 -0
 - data/lib/warframe/models/attributes/active.rb +31 -0
 - data/lib/warframe/models/attributes/description.rb +14 -0
 - data/lib/warframe/models/attributes/eta.rb +14 -0
 - data/lib/warframe/models/attributes/expiry.rb +30 -0
 - data/lib/warframe/models/attributes/id.rb +14 -0
 - data/lib/warframe/models/attributes/reward_types.rb +14 -0
 - data/lib/warframe/models/attributes/start_string.rb +14 -0
 - data/lib/warframe/models/attributes/translations.rb +18 -0
 - data/lib/warframe/models/base.rb +36 -0
 - data/lib/warframe/models/global_upgrade.rb +40 -0
 - data/lib/warframe/models/invasion.rb +70 -0
 - data/lib/warframe/models/news.rb +53 -0
 - data/lib/warframe/models/nightwave.rb +39 -0
 - data/lib/warframe/rest/api/alerts.rb +23 -0
 - data/lib/warframe/rest/api/global_upgrades.rb +23 -0
 - data/lib/warframe/rest/api/invasions.rb +23 -0
 - data/lib/warframe/rest/api/news.rb +23 -0
 - data/lib/warframe/rest/api/nightwave.rb +23 -0
 - data/lib/warframe/rest/api.rb +25 -0
 - data/lib/warframe/rest/client.rb +42 -0
 - data/lib/warframe/rest/request.rb +55 -0
 - data/lib/warframe/rest/utils.rb +19 -0
 - data/lib/warframe/version.rb +6 -0
 - data/lib/warframe.rb +7 -0
 - data/warframe.gemspec +46 -0
 - metadata +243 -0
 
| 
         @@ -0,0 +1,70 @@ 
     | 
|
| 
      
 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 
     | 
    
         
            +
            require_relative './attributes/description'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require_relative './attributes/reward_types'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require_relative './attributes/start_string'
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            module Warframe
         
     | 
| 
      
 13 
     | 
    
         
            +
              module Models
         
     | 
| 
      
 14 
     | 
    
         
            +
                # Invasion data model.
         
     | 
| 
      
 15 
     | 
    
         
            +
                class Invasion < Warframe::Models::Base
         
     | 
| 
      
 16 
     | 
    
         
            +
                  include Warframe::Models::Attributes::ID
         
     | 
| 
      
 17 
     | 
    
         
            +
                  include Warframe::Models::Attributes::Activation
         
     | 
| 
      
 18 
     | 
    
         
            +
                  include Warframe::Models::Attributes::Expiry
         
     | 
| 
      
 19 
     | 
    
         
            +
                  include Warframe::Models::Attributes::ETA
         
     | 
| 
      
 20 
     | 
    
         
            +
                  include Warframe::Models::Attributes::Description
         
     | 
| 
      
 21 
     | 
    
         
            +
                  include Warframe::Models::Attributes::RewardTypes
         
     | 
| 
      
 22 
     | 
    
         
            +
                  include Warframe::Models::Attributes::StartString
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  # Attacking faction data.
         
     | 
| 
      
 25 
     | 
    
         
            +
                  # @return [OpenStruct]
         
     | 
| 
      
 26 
     | 
    
         
            +
                  attr_reader :attacker
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  # The rewards for helping the attacking faction.
         
     | 
| 
      
 29 
     | 
    
         
            +
                  # @return [OpenStruct]
         
     | 
| 
      
 30 
     | 
    
         
            +
                  attr_reader :attacker_reward
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  # Attacking Faction Name
         
     | 
| 
      
 33 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 34 
     | 
    
         
            +
                  attr_reader :attacking_faction
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  # Whether or not the invasion has been completed.
         
     | 
| 
      
 37 
     | 
    
         
            +
                  # @return [Boolean]
         
     | 
| 
      
 38 
     | 
    
         
            +
                  attr_reader :completed
         
     | 
| 
      
 39 
     | 
    
         
            +
                  alias completed? completed
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                  # The status of completion of the invasion.
         
     | 
| 
      
 42 
     | 
    
         
            +
                  # @return [Array<Float>]
         
     | 
| 
      
 43 
     | 
    
         
            +
                  attr_reader :completion
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                  # Defending faction data.
         
     | 
| 
      
 46 
     | 
    
         
            +
                  # @return [OpenStruct]
         
     | 
| 
      
 47 
     | 
    
         
            +
                  attr_reader :defender
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                  # The rewards for helping the defending faction.
         
     | 
| 
      
 50 
     | 
    
         
            +
                  # @return [OpenStruct]
         
     | 
| 
      
 51 
     | 
    
         
            +
                  attr_reader :defender_reward
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                  # The name of the defending faction.
         
     | 
| 
      
 54 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 55 
     | 
    
         
            +
                  attr_reader :defending_faction
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  # The name of the node of the invasion.
         
     | 
| 
      
 58 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 59 
     | 
    
         
            +
                  attr_reader :node
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                  # The key of the node.
         
     | 
| 
      
 62 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 63 
     | 
    
         
            +
                  attr_reader :node_key
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                  # The amount of runs required for completion.
         
     | 
| 
      
 66 
     | 
    
         
            +
                  # @return [Integer]
         
     | 
| 
      
 67 
     | 
    
         
            +
                  attr_reader :required_runs
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,53 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative './base'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require_relative './attributes/translations'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require_relative './attributes/eta'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require_relative './attributes/id'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            module Warframe
         
     | 
| 
      
 9 
     | 
    
         
            +
              module Models
         
     | 
| 
      
 10 
     | 
    
         
            +
                # Model for the response of {https://api.warframestat.us/pc/news /:platform/news}
         
     | 
| 
      
 11 
     | 
    
         
            +
                class News < Warframe::Models::Base
         
     | 
| 
      
 12 
     | 
    
         
            +
                  include Warframe::Models::Attributes::Translations
         
     | 
| 
      
 13 
     | 
    
         
            +
                  include Warframe::Models::Attributes::ETA
         
     | 
| 
      
 14 
     | 
    
         
            +
                  include Warframe::Models::Attributes::ID
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  # The date the news was released.
         
     | 
| 
      
 17 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 18 
     | 
    
         
            +
                  attr_reader :date
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  # The image link from the news page.
         
     | 
| 
      
 21 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 22 
     | 
    
         
            +
                  attr_reader :image_link
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  # Link for more information on this news.
         
     | 
| 
      
 25 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 26 
     | 
    
         
            +
                  attr_reader :link
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  # Whether or not the news has to do with Prime Access.
         
     | 
| 
      
 29 
     | 
    
         
            +
                  # @return [Boolean]
         
     | 
| 
      
 30 
     | 
    
         
            +
                  attr_reader :prime_access
         
     | 
| 
      
 31 
     | 
    
         
            +
                  alias prime_access? prime_access
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  # Whether or not a DEV stream is available.
         
     | 
| 
      
 34 
     | 
    
         
            +
                  # @return [Boolean]
         
     | 
| 
      
 35 
     | 
    
         
            +
                  attr_reader :stream
         
     | 
| 
      
 36 
     | 
    
         
            +
                  alias stream? stream
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  # Whether or not this news is regarding an update.
         
     | 
| 
      
 39 
     | 
    
         
            +
                  # @return [Boolean]
         
     | 
| 
      
 40 
     | 
    
         
            +
                  attr_reader :update
         
     | 
| 
      
 41 
     | 
    
         
            +
                  alias update? update
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  # Whether or not this news is of priority.
         
     | 
| 
      
 44 
     | 
    
         
            +
                  # @return [Boolean]
         
     | 
| 
      
 45 
     | 
    
         
            +
                  attr_reader :priority
         
     | 
| 
      
 46 
     | 
    
         
            +
                  alias priority? priority
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  # The entire response as a long string.
         
     | 
| 
      
 49 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 50 
     | 
    
         
            +
                  attr_reader :as_string
         
     | 
| 
      
 51 
     | 
    
         
            +
                end
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,39 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative './base'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require_relative './attributes/active'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require_relative './attributes/id'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require_relative './attributes/expiry'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require_relative './attributes/reward_types'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            module Warframe
         
     | 
| 
      
 10 
     | 
    
         
            +
              module Models
         
     | 
| 
      
 11 
     | 
    
         
            +
                # Model for the response of {https://api.warframestat.us/pc/nightwave /:platform/nightwave}
         
     | 
| 
      
 12 
     | 
    
         
            +
                class Nightwave < Warframe::Models::Base
         
     | 
| 
      
 13 
     | 
    
         
            +
                  include Warframe::Models::Attributes::Activation
         
     | 
| 
      
 14 
     | 
    
         
            +
                  include Warframe::Models::Attributes::ID
         
     | 
| 
      
 15 
     | 
    
         
            +
                  include Warframe::Models::Attributes::Expiry
         
     | 
| 
      
 16 
     | 
    
         
            +
                  include Warframe::Models::Attributes::RewardTypes
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  # The current phase of this event.
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # @return [Integer]
         
     | 
| 
      
 20 
     | 
    
         
            +
                  attr_reader :phase
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  # The current Nightwave Tag
         
     | 
| 
      
 23 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 24 
     | 
    
         
            +
                  attr_reader :tag
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  # The current Nightwave Season
         
     | 
| 
      
 27 
     | 
    
         
            +
                  # @return [Integer]
         
     | 
| 
      
 28 
     | 
    
         
            +
                  attr_reader :season
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  # List of all possible challenges.
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # @return [Array<OpenStruct>]
         
     | 
| 
      
 32 
     | 
    
         
            +
                  attr_reader :possible_challenges
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  # Active Challenges for this event.
         
     | 
| 
      
 35 
     | 
    
         
            +
                  # @return [Array<OpenStruct>]
         
     | 
| 
      
 36 
     | 
    
         
            +
                  attr_reader :active_challenges
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'warframe/models/alert'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require_relative '../utils'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module Warframe
         
     | 
| 
      
 7 
     | 
    
         
            +
              module REST
         
     | 
| 
      
 8 
     | 
    
         
            +
                module API
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # API endpoint for getting information on current Alerts data.
         
     | 
| 
      
 10 
     | 
    
         
            +
                  #
         
     | 
| 
      
 11 
     | 
    
         
            +
                  # {https://api.warframestat.us/pc/alerts Example Response}
         
     | 
| 
      
 12 
     | 
    
         
            +
                  module Alerts
         
     | 
| 
      
 13 
     | 
    
         
            +
                    include Warframe::REST::Utils
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    # Gets the current Alerts data.
         
     | 
| 
      
 16 
     | 
    
         
            +
                    # @return [Array<[Warframe::Models::Alert]>]
         
     | 
| 
      
 17 
     | 
    
         
            +
                    def alerts
         
     | 
| 
      
 18 
     | 
    
         
            +
                      get('/alerts', Warframe::Models::Alert)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'warframe/models/global_upgrade'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require_relative '../utils'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module Warframe
         
     | 
| 
      
 7 
     | 
    
         
            +
              module REST
         
     | 
| 
      
 8 
     | 
    
         
            +
                module API
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # API endpoint for getting information on current Global Upgrades data.
         
     | 
| 
      
 10 
     | 
    
         
            +
                  #
         
     | 
| 
      
 11 
     | 
    
         
            +
                  # {https://api.warframestat.us/pc/globalUpgrades Example Response}
         
     | 
| 
      
 12 
     | 
    
         
            +
                  module GlobalUpgrades
         
     | 
| 
      
 13 
     | 
    
         
            +
                    include Warframe::REST::Utils
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    # Gets the current Global Upgrades data.
         
     | 
| 
      
 16 
     | 
    
         
            +
                    # @return [Array<[Warframe::Models::GlobalUpgrade]>]
         
     | 
| 
      
 17 
     | 
    
         
            +
                    def global_upgrades
         
     | 
| 
      
 18 
     | 
    
         
            +
                      get('/globalUpgrades', Warframe::Models::GlobalUpgrade)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +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
         
     | 
| 
         @@ -0,0 +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
         
     | 
| 
         @@ -0,0 +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
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative 'api/nightwave'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require_relative 'api/news'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require_relative 'api/alerts'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require_relative 'api/invasions'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require_relative 'api/global_upgrades'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            module Warframe
         
     | 
| 
      
 10 
     | 
    
         
            +
              # A REST-ful API service, provided by https://api.warframestat.us
         
     | 
| 
      
 11 
     | 
    
         
            +
              module REST
         
     | 
| 
      
 12 
     | 
    
         
            +
                # The API Router for getting live data.
         
     | 
| 
      
 13 
     | 
    
         
            +
                #
         
     | 
| 
      
 14 
     | 
    
         
            +
                # Attempting to have every accessible route from {https://docs.warframestat.us Warframe Stat}.
         
     | 
| 
      
 15 
     | 
    
         
            +
                #
         
     | 
| 
      
 16 
     | 
    
         
            +
                # Module names are 'routes' to this API. See {Warframe::REST::API::Alerts Alerts} for example.
         
     | 
| 
      
 17 
     | 
    
         
            +
                module API
         
     | 
| 
      
 18 
     | 
    
         
            +
                  include Warframe::REST::API::Alerts
         
     | 
| 
      
 19 
     | 
    
         
            +
                  include Warframe::REST::API::GlobalUpgrades
         
     | 
| 
      
 20 
     | 
    
         
            +
                  include Warframe::REST::API::Invasions
         
     | 
| 
      
 21 
     | 
    
         
            +
                  include Warframe::REST::API::News
         
     | 
| 
      
 22 
     | 
    
         
            +
                  include Warframe::REST::API::Nightwave
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +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
         
     | 
| 
         @@ -0,0 +1,55 @@ 
     | 
|
| 
      
 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
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 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
         
     | 
    
        data/lib/warframe.rb
    ADDED
    
    
    
        data/warframe.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative 'lib/warframe/version'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Gem::Specification.new do |spec|
         
     | 
| 
      
 6 
     | 
    
         
            +
              # Required
         
     | 
| 
      
 7 
     | 
    
         
            +
              spec.name = 'warframe'
         
     | 
| 
      
 8 
     | 
    
         
            +
              spec.version = Warframe::VERSION
         
     | 
| 
      
 9 
     | 
    
         
            +
              spec.authors = ['A.J. Romaniello']
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              # Descriptive
         
     | 
| 
      
 12 
     | 
    
         
            +
              spec.summary = 'A Ruby interface to the WarframeStat API.'
         
     | 
| 
      
 13 
     | 
    
         
            +
              spec.description = spec.summary
         
     | 
| 
      
 14 
     | 
    
         
            +
              spec.license = 'MIT'
         
     | 
| 
      
 15 
     | 
    
         
            +
              spec.homepage = 'https://github.com/aj-rom/warframe-ruby'
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              # MetaData
         
     | 
| 
      
 18 
     | 
    
         
            +
              spec.metadata['source_code_uri'] = 'https://github.com/aj-rom/warframe-ruby'
         
     | 
| 
      
 19 
     | 
    
         
            +
              spec.metadata['bug_tracker_uri'] = "#{spec.metadata['source_code_uri']}/issues"
         
     | 
| 
      
 20 
     | 
    
         
            +
              spec.metadata['documentation_uri'] = "https://rubydoc.info/gems/#{spec.name}/#{spec.version}"
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              # Executables / Files
         
     | 
| 
      
 23 
     | 
    
         
            +
              spec.bindir = 'exe'
         
     | 
| 
      
 24 
     | 
    
         
            +
              spec.require_paths = ['lib']
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              # Specify which files should be added to the gem when it is released.
         
     | 
| 
      
 27 
     | 
    
         
            +
              # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
         
     | 
| 
      
 28 
     | 
    
         
            +
              spec.files = Dir.chdir(File.expand_path(__dir__)) do
         
     | 
| 
      
 29 
     | 
    
         
            +
                `git ls-files -z`.split("\x0").reject do |f|
         
     | 
| 
      
 30 
     | 
    
         
            +
                  (f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              # Dependencies
         
     | 
| 
      
 36 
     | 
    
         
            +
              spec.required_ruby_version = '>= 2.5.0'
         
     | 
| 
      
 37 
     | 
    
         
            +
              spec.add_dependency 'fast_underscore', '~> 0.3.2'
         
     | 
| 
      
 38 
     | 
    
         
            +
              spec.add_dependency 'http', '~> 5.0', '>= 5.0.4'
         
     | 
| 
      
 39 
     | 
    
         
            +
              spec.add_dependency 'json', '~> 2.6', '>= 2.6.1'
         
     | 
| 
      
 40 
     | 
    
         
            +
              spec.add_development_dependency 'activesupport', '~> 5.0', '>= 5.0.0.1'
         
     | 
| 
      
 41 
     | 
    
         
            +
              spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.2.31'
         
     | 
| 
      
 42 
     | 
    
         
            +
              spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
         
     | 
| 
      
 43 
     | 
    
         
            +
              spec.add_development_dependency 'rspec', '~> 3.10'
         
     | 
| 
      
 44 
     | 
    
         
            +
              spec.add_development_dependency 'rubocop', '~> 1.22', '>= 1.22.3'
         
     | 
| 
      
 45 
     | 
    
         
            +
              spec.add_development_dependency 'yard', '~> 0.9.26'
         
     | 
| 
      
 46 
     | 
    
         
            +
            end
         
     |