spacex 0.0.1 → 0.0.3
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 +4 -4
- data/.gitignore +52 -0
- data/.rspec +2 -0
- data/.rubocop.yml +8 -0
- data/.rubocop_todo.yml +36 -0
- data/.ruby-version +1 -0
- data/.travis.yml +6 -0
- data/Gemfile +5 -0
- data/LICENSE +21 -0
- data/README.md +76 -0
- data/Rakefile +19 -0
- data/lib/spacex/endpoint.rb +5 -0
- data/lib/spacex/launches.rb +25 -0
- data/lib/spacex/version.rb +9 -0
- data/lib/spacex.rb +9 -5
- data/rubocop.yml +8 -0
- data/spacex.gemspec +27 -0
- data/spec/fixtures/spacex/launches/latest.yml +245 -0
- data/spec/spacex/launches_spec.rb +87 -0
- data/spec/spacex/version_spec.rb +9 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/vcr.rb +11 -0
- metadata +141 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 4ba3a45b530329a81d7c8315a2ca0ce367cc070e
         | 
| 4 | 
            +
              data.tar.gz: 7597627ee17df684f024969f4a52e50201287388
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: abe21113ddfa0d2eade7a3945dfb39c17ee99eb8b0a1eec1cf36206ea8a274babc65d87838ab7b67dd60504623d3cda2bca27ed84ee9921cf61a84b321291953
         | 
| 7 | 
            +
              data.tar.gz: cd0c1698334c84c594931a1a36223a0d241187aa55f59103e181852b93babf9a36008c077f1977f27c8625222b45aa4877d12344d622fa379f7cec547696d9d6
         | 
    
        data/.gitignore
    ADDED
    
    | @@ -0,0 +1,52 @@ | |
| 1 | 
            +
            *.gem
         | 
| 2 | 
            +
            *.rbc
         | 
| 3 | 
            +
            /.config
         | 
| 4 | 
            +
            /coverage/
         | 
| 5 | 
            +
            /InstalledFiles
         | 
| 6 | 
            +
            /pkg/
         | 
| 7 | 
            +
            /spec/reports/
         | 
| 8 | 
            +
            /spec/examples.txt
         | 
| 9 | 
            +
            /test/tmp/
         | 
| 10 | 
            +
            /test/version_tmp/
         | 
| 11 | 
            +
            /tmp/
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            # Used by dotenv library to load environment variables.
         | 
| 14 | 
            +
            # .env
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ## Specific to RubyMotion:
         | 
| 17 | 
            +
            .dat*
         | 
| 18 | 
            +
            .repl_history
         | 
| 19 | 
            +
            build/
         | 
| 20 | 
            +
            *.bridgesupport
         | 
| 21 | 
            +
            build-iPhoneOS/
         | 
| 22 | 
            +
            build-iPhoneSimulator/
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            ## Specific to RubyMotion (use of CocoaPods):
         | 
| 25 | 
            +
            #
         | 
| 26 | 
            +
            # We recommend against adding the Pods directory to your .gitignore. However
         | 
| 27 | 
            +
            # you should judge for yourself, the pros and cons are mentioned at:
         | 
| 28 | 
            +
            # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
         | 
| 29 | 
            +
            #
         | 
| 30 | 
            +
            # vendor/Pods/
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            ## Documentation cache and generated files:
         | 
| 33 | 
            +
            /.yardoc/
         | 
| 34 | 
            +
            /_yardoc/
         | 
| 35 | 
            +
            /doc/
         | 
| 36 | 
            +
            /rdoc/
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            ## Environment normalization:
         | 
| 39 | 
            +
            /.bundle/
         | 
| 40 | 
            +
            /vendor/bundle
         | 
| 41 | 
            +
            /lib/bundler/man/
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            # for a library or gem, you might want to ignore these files since the code is
         | 
| 44 | 
            +
            # intended to run in multiple environments; otherwise, check them in:
         | 
| 45 | 
            +
            Gemfile.lock
         | 
| 46 | 
            +
            # .ruby-version
         | 
| 47 | 
            +
            # .ruby-gemset
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
         | 
| 50 | 
            +
            .rvmrc
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            *.gem
         | 
    
        data/.rspec
    ADDED
    
    
    
        data/.rubocop.yml
    ADDED
    
    
    
        data/.rubocop_todo.yml
    ADDED
    
    | @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            # This configuration was generated by
         | 
| 2 | 
            +
            # `rubocop --auto-gen-config`
         | 
| 3 | 
            +
            # on 2018-08-20 14:17:26 -0400 using RuboCop version 0.51.0.
         | 
| 4 | 
            +
            # The point is for the user to remove these configuration records
         | 
| 5 | 
            +
            # one by one as the offenses are removed from the code base.
         | 
| 6 | 
            +
            # Note that changes in the inspected code, or installation of new
         | 
| 7 | 
            +
            # versions of RuboCop, may require this file to be generated again.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # Offense count: 1
         | 
| 10 | 
            +
            Lint/AmbiguousOperator:
         | 
| 11 | 
            +
              Exclude:
         | 
| 12 | 
            +
                - 'spec/spacex/launches_spec.rb'
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            # Offense count: 3
         | 
| 15 | 
            +
            # Configuration parameters: CountComments, ExcludedMethods.
         | 
| 16 | 
            +
            Metrics/BlockLength:
         | 
| 17 | 
            +
              Max: 71
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            # Offense count: 24
         | 
| 20 | 
            +
            # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
         | 
| 21 | 
            +
            # URISchemes: http, https
         | 
| 22 | 
            +
            Metrics/LineLength:
         | 
| 23 | 
            +
              Max: 150
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            # Offense count: 1
         | 
| 26 | 
            +
            # Configuration parameters: CountComments.
         | 
| 27 | 
            +
            Metrics/MethodLength:
         | 
| 28 | 
            +
              Max: 12
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            # Offense count: 2
         | 
| 31 | 
            +
            Style/Documentation:
         | 
| 32 | 
            +
              Exclude:
         | 
| 33 | 
            +
                - 'spec/**/*'
         | 
| 34 | 
            +
                - 'test/**/*'
         | 
| 35 | 
            +
                - 'lib/spacex/launches.rb'
         | 
| 36 | 
            +
                - 'lib/spacex/version.rb'
         | 
    
        data/.ruby-version
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            2.4.1
         | 
    
        data/.travis.yml
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/LICENSE
    ADDED
    
    | @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            MIT License
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Copyright (c) 2018 Rodolfo Bandeira
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Permission is hereby granted, free of charge, to any person obtaining a copy
         | 
| 6 | 
            +
            of this software and associated documentation files (the "Software"), to deal
         | 
| 7 | 
            +
            in the Software without restriction, including without limitation the rights
         | 
| 8 | 
            +
            to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         | 
| 9 | 
            +
            copies of the Software, and to permit persons to whom the Software is
         | 
| 10 | 
            +
            furnished to do so, subject to the following conditions:
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            The above copyright notice and this permission notice shall be included in all
         | 
| 13 | 
            +
            copies or substantial portions of the Software.
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         | 
| 16 | 
            +
            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         | 
| 17 | 
            +
            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         | 
| 18 | 
            +
            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         | 
| 19 | 
            +
            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         | 
| 20 | 
            +
            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         | 
| 21 | 
            +
            SOFTWARE.
         | 
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1,76 @@ | |
| 1 | 
            +
            # SpaceX Ruby Client
         | 
| 2 | 
            +
            Ruby library to consume SpaceX API
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            ---
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            ### Using:
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            ```ruby
         | 
| 9 | 
            +
            latest_launch = SPACEX::Launches.latest
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            latest_launch.flight_number # 67
         | 
| 12 | 
            +
            latest_launch.mission_name # 'Merah Putih'
         | 
| 13 | 
            +
            latest_launch.launch_year # '2018'
         | 
| 14 | 
            +
            latest_launch.launch_date_unix # 1_533_619_080
         | 
| 15 | 
            +
            latest_launch.launch_date_utc # '2018-08-07T05:18:00.000Z'
         | 
| 16 | 
            +
            latest_launch.launch_date_local # '2018-08-07T01:18:00-04:00'
         | 
| 17 | 
            +
            latest_launch.launch_success # true
         | 
| 18 | 
            +
            latest_launch.rocket.rocket_id # 'falcon9'
         | 
| 19 | 
            +
            latest_launch.rocket.rocket_name # 'Falcon 9'
         | 
| 20 | 
            +
            latest_launch.rocket.rocket_type # 'FT'
         | 
| 21 | 
            +
            latest_launch.rocket.first_stage.cores.first.core_serial # 'B1046'
         | 
| 22 | 
            +
            latest_launch.rocket.first_stage.cores.first.flight # 2
         | 
| 23 | 
            +
            latest_launch.rocket.first_stage.cores.first.block # 5
         | 
| 24 | 
            +
            latest_launch.rocket.first_stage.cores.first.reused # true
         | 
| 25 | 
            +
            latest_launch.rocket.first_stage.cores.first.land_success # true
         | 
| 26 | 
            +
            latest_launch.rocket.first_stage.cores.first.landing_type # 'ASDS'
         | 
| 27 | 
            +
            latest_launch.rocket.first_stage.cores.first.landing_vehicle # 'OCISLY'
         | 
| 28 | 
            +
            latest_launch.rocket.second_stage.block # 5
         | 
| 29 | 
            +
            latest_launch.rocket.second_stage.payloads.first.payload_id # 'Telkom-4'
         | 
| 30 | 
            +
            latest_launch.rocket.second_stage.payloads.first.norad_id.first # 43_587
         | 
| 31 | 
            +
            latest_launch.rocket.second_stage.payloads.first.reused # false
         | 
| 32 | 
            +
            latest_launch.rocket.second_stage.payloads.first.customers.first # 'Telkom'
         | 
| 33 | 
            +
            latest_launch.rocket.second_stage.payloads.first.nationality # 'Indonesia'
         | 
| 34 | 
            +
            latest_launch.rocket.second_stage.payloads.first.manufacturer # 'SSL'
         | 
| 35 | 
            +
            latest_launch.rocket.second_stage.payloads.first.payload_type # 'Satellite'
         | 
| 36 | 
            +
            latest_launch.rocket.second_stage.payloads.first.payload_mass_kg # 5800
         | 
| 37 | 
            +
            latest_launch.rocket.second_stage.payloads.first.payload_mass_lbs # 12_786.81
         | 
| 38 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit # 'GTO'
         | 
| 39 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.reference_system # 'geocentric'
         | 
| 40 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.regime # 'geostationary'
         | 
| 41 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.longitude # -108
         | 
| 42 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.semi_major_axis_km # 21_226.178
         | 
| 43 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.eccentricity # 0.6904141
         | 
| 44 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.periapsis_km # 193.19
         | 
| 45 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.apoapsis_km # 29_502.896
         | 
| 46 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.inclination_deg # 27.0648
         | 
| 47 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.period_min # 512.941
         | 
| 48 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.lifespan_years # 15
         | 
| 49 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.epoch # '2018-08-07T06:57:16.000Z'
         | 
| 50 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.mean_motion # 2.80734018
         | 
| 51 | 
            +
            latest_launch.rocket.second_stage.payloads.first.orbit_params.raan # 227.0228
         | 
| 52 | 
            +
            latest_launch.telemetry.flight_club # nil
         | 
| 53 | 
            +
            latest_launch.reuse.core # true
         | 
| 54 | 
            +
            latest_launch.reuse.sire_core1 # nil
         | 
| 55 | 
            +
            latest_launch.reuse.side_core2 # false
         | 
| 56 | 
            +
            latest_launch.reuse.fairings # false
         | 
| 57 | 
            +
            latest_launch.reuse.capsule # false
         | 
| 58 | 
            +
            latest_launch.launch_site.site_id # 'ccafs_slc_40'
         | 
| 59 | 
            +
            latest_launch.launch_site.site_name # 'CCAFS SLC 40'
         | 
| 60 | 
            +
            latest_launch.launch_site.site_name_long # 'Cape Canaveral Air Force Station Space Launch Complex 40'
         | 
| 61 | 
            +
            latest_launch.launch_success # true
         | 
| 62 | 
            +
            latest_launch.links.mission_patch # 'https://images2.imgbox.com/a8/f5/ZgdsrbqW_o.png'
         | 
| 63 | 
            +
            latest_launch.links.mision_patch_small # nil
         | 
| 64 | 
            +
            latest_launch.links.reddit_campaign # 'https://www.reddit.com/r/spacex/comments/91gwfg/merah_putih_telkom4_launch_campaign_thread/'
         | 
| 65 | 
            +
            latest_launch.links.reddit_launch # 'https://www.reddit.com/r/spacex/comments/9539nr/rspacex_merah_putih_telkom4_official_launch/'
         | 
| 66 | 
            +
            latest_launch.links.reddit_recovery # nil
         | 
| 67 | 
            +
            latest_launch.links.reddit_media # 'https://www.reddit.com/r/spacex/comments/94zr0b/rspacex_merah_putih_media_thread_videos_images/'
         | 
| 68 | 
            +
            latest_launch.links.presskit # 'https://www.spacex.com/sites/spacex/files/merahputihpresskit.pdf'
         | 
| 69 | 
            +
            latest_launch.links.article_link # 'https://spaceflightnow.com/2018/08/07/indonesian-communications-satellite-deployed-in-orbit-by-spacex/'
         | 
| 70 | 
            +
            latest_launch.links.wikipedia # 'https://en.wikipedia.org/wiki/Telkom_Indonesia'
         | 
| 71 | 
            +
            latest_launch.links.video_link # 'https://www.youtube.com/watch?v=FjfQNBYv2IY'
         | 
| 72 | 
            +
            latest_launch.details # 'Indonesian comsat intended to replace the aging Telkom 1 at 108° E. First reflight of a Block 5-version booster.'
         | 
| 73 | 
            +
            latest_launch.upcoming # false
         | 
| 74 | 
            +
            latest_launch.static_fire_date_utc # '2018-08-02T15:53:00.000Z'
         | 
| 75 | 
            +
            ```
         | 
| 76 | 
            +
             | 
    
        data/Rakefile
    ADDED
    
    | @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'rubygems'
         | 
| 4 | 
            +
            require 'bundler'
         | 
| 5 | 
            +
            require 'bundler/gem_tasks'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Bundler.setup :default, :development
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            require 'rspec/core'
         | 
| 10 | 
            +
            require 'rspec/core/rake_task'
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            RSpec::Core::RakeTask.new(:spec) do |spec|
         | 
| 13 | 
            +
              spec.pattern = FileList['spec/**/*_spec.rb']
         | 
| 14 | 
            +
            end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            require 'rubocop/rake_task'
         | 
| 17 | 
            +
            RuboCop::RakeTask.new
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            task default: %i[rubocop spec]
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'ostruct'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module SPACEX
         | 
| 6 | 
            +
              module Launches
         | 
| 7 | 
            +
                ROOT_URI = 'https://api.spacexdata.com/v2'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                def self.latest
         | 
| 10 | 
            +
                  path = 'launches/latest'
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  data = Faraday.new(
         | 
| 13 | 
            +
                    url: "#{ROOT_URI}/#{path}",
         | 
| 14 | 
            +
                    request: {
         | 
| 15 | 
            +
                      params_encoder: Faraday::FlatParamsEncoder
         | 
| 16 | 
            +
                    }
         | 
| 17 | 
            +
                  ) do |c|
         | 
| 18 | 
            +
                    c.use ::FaradayMiddleware::ParseJson
         | 
| 19 | 
            +
                    c.use Faraday::Response::RaiseError
         | 
| 20 | 
            +
                    c.use Faraday::Adapter::NetHttp
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                  Hashie::Mash.new(data.get.body)
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
    
        data/lib/spacex.rb
    CHANGED
    
    | @@ -1,5 +1,9 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'faraday'
         | 
| 4 | 
            +
            require 'faraday_middleware'
         | 
| 5 | 
            +
            require 'faraday_middleware/response_middleware'
         | 
| 6 | 
            +
            require 'hashie'
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            require_relative 'spacex/version'
         | 
| 9 | 
            +
            require_relative 'spacex/launches'
         | 
    
        data/rubocop.yml
    ADDED
    
    
    
        data/spacex.gemspec
    ADDED
    
    | @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            $LOAD_PATH.push File.expand_path('lib', __dir__)
         | 
| 2 | 
            +
            require 'spacex/version'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Gem::Specification.new do |s|
         | 
| 5 | 
            +
              s.name        = 'spacex'
         | 
| 6 | 
            +
              s.bindir      = 'bin'
         | 
| 7 | 
            +
              s.version     = SPACEX::VERSION
         | 
| 8 | 
            +
              s.date        = '2018-08-17'
         | 
| 9 | 
            +
              s.summary     = 'Swap SpaceX API with Ruby'
         | 
| 10 | 
            +
              s.description = 'Ruby library to consume SpaceX launch data'
         | 
| 11 | 
            +
              s.authors     = ['Rodolfo Bandeira']
         | 
| 12 | 
            +
              s.email       = 'rodolfobandeira@protonmail.com'
         | 
| 13 | 
            +
              s.platform    = Gem::Platform::RUBY
         | 
| 14 | 
            +
              s.homepage    = 'https://github.com/rodolfobandeira/spacex'
         | 
| 15 | 
            +
              s.license     = 'MIT'
         | 
| 16 | 
            +
              s.files       = `git ls-files`.split("\n")
         | 
| 17 | 
            +
              s.test_files  = `git ls-files -- spec/*`.split("\n")
         | 
| 18 | 
            +
              s.require_paths = ['lib']
         | 
| 19 | 
            +
              s.add_dependency 'faraday', '>= 0.9'
         | 
| 20 | 
            +
              s.add_dependency 'faraday_middleware'
         | 
| 21 | 
            +
              s.add_dependency 'hashie'
         | 
| 22 | 
            +
              s.add_development_dependency 'rake', '~> 10'
         | 
| 23 | 
            +
              s.add_development_dependency 'rspec'
         | 
| 24 | 
            +
              s.add_development_dependency 'rubocop', '0.51.0'
         | 
| 25 | 
            +
              s.add_development_dependency 'vcr'
         | 
| 26 | 
            +
              s.add_development_dependency 'webmock'
         | 
| 27 | 
            +
            end
         | 
| @@ -0,0 +1,245 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            http_interactions:
         | 
| 3 | 
            +
            - request:
         | 
| 4 | 
            +
                method: get
         | 
| 5 | 
            +
                uri: https://api.spacexdata.com/v2/launches/latest
         | 
| 6 | 
            +
                body:
         | 
| 7 | 
            +
                  encoding: US-ASCII
         | 
| 8 | 
            +
                  string: ''
         | 
| 9 | 
            +
                headers:
         | 
| 10 | 
            +
                  User-Agent:
         | 
| 11 | 
            +
                  - Faraday v0.15.2
         | 
| 12 | 
            +
                  Accept-Encoding:
         | 
| 13 | 
            +
                  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
         | 
| 14 | 
            +
                  Accept:
         | 
| 15 | 
            +
                  - "*/*"
         | 
| 16 | 
            +
              response:
         | 
| 17 | 
            +
                status:
         | 
| 18 | 
            +
                  code: 200
         | 
| 19 | 
            +
                  message: OK
         | 
| 20 | 
            +
                headers:
         | 
| 21 | 
            +
                  Date:
         | 
| 22 | 
            +
                  - Sat, 18 Aug 2018 19:45:17 GMT
         | 
| 23 | 
            +
                  Content-Type:
         | 
| 24 | 
            +
                  - application/json; charset=utf-8
         | 
| 25 | 
            +
                  Transfer-Encoding:
         | 
| 26 | 
            +
                  - chunked
         | 
| 27 | 
            +
                  Connection:
         | 
| 28 | 
            +
                  - keep-alive
         | 
| 29 | 
            +
                  Set-Cookie:
         | 
| 30 | 
            +
                  - __cfduid=d167cc1a95462b768a646d294361640131534621517; expires=Sun, 18-Aug-19
         | 
| 31 | 
            +
                    19:45:17 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
         | 
| 32 | 
            +
                  Vary:
         | 
| 33 | 
            +
                  - Accept-Encoding, Origin
         | 
| 34 | 
            +
                  X-Dns-Prefetch-Control:
         | 
| 35 | 
            +
                  - 'off'
         | 
| 36 | 
            +
                  X-Frame-Options:
         | 
| 37 | 
            +
                  - SAMEORIGIN
         | 
| 38 | 
            +
                  Strict-Transport-Security:
         | 
| 39 | 
            +
                  - max-age=15552000; includeSubDomains
         | 
| 40 | 
            +
                  X-Download-Options:
         | 
| 41 | 
            +
                  - noopen
         | 
| 42 | 
            +
                  X-Content-Type-Options:
         | 
| 43 | 
            +
                  - nosniff
         | 
| 44 | 
            +
                  X-Xss-Protection:
         | 
| 45 | 
            +
                  - 1; mode=block
         | 
| 46 | 
            +
                  Access-Control-Allow-Origin:
         | 
| 47 | 
            +
                  - "*"
         | 
| 48 | 
            +
                  X-Response-Time:
         | 
| 49 | 
            +
                  - 43ms
         | 
| 50 | 
            +
                  Expect-Ct:
         | 
| 51 | 
            +
                  - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
         | 
| 52 | 
            +
                  Server:
         | 
| 53 | 
            +
                  - cloudflare
         | 
| 54 | 
            +
                  Cf-Ray:
         | 
| 55 | 
            +
                  - 44c6e1419d4f9f05-ORD
         | 
| 56 | 
            +
                body:
         | 
| 57 | 
            +
                  encoding: ASCII-8BIT
         | 
| 58 | 
            +
                  string: !binary |-
         | 
| 59 | 
            +
                    eyJmbGlnaHRfbnVtYmVyIjo2NywibWlzc2lvbl9uYW1lIjoiTWVyYWggUHV0aWgiLCJsYXVuY2hfeWVhciI6IjIwMTgiLCJsYXVuY2hfZGF0ZV91bml4IjoxNTMzNjE5MDgwLCJsYXVuY2hfZGF0ZV91dGMiOiIyMDE4LTA4LTA3VDA1OjE4OjAwLjAwMFoiLCJsYXVuY2hfZGF0ZV9sb2NhbCI6IjIwMTgtMDgtMDdUMDE6MTg6MDAtMDQ6MDAiLCJyb2NrZXQiOnsicm9ja2V0X2lkIjoiZmFsY29uOSIsInJvY2tldF9uYW1lIjoiRmFsY29uIDkiLCJyb2NrZXRfdHlwZSI6IkZUIiwiZmlyc3Rfc3RhZ2UiOnsiY29yZXMiOlt7ImNvcmVfc2VyaWFsIjoiQjEwNDYiLCJmbGlnaHQiOjIsImJsb2NrIjo1LCJyZXVzZWQiOnRydWUsImxhbmRfc3VjY2VzcyI6dHJ1ZSwibGFuZGluZ190eXBlIjoiQVNEUyIsImxhbmRpbmdfdmVoaWNsZSI6Ik9DSVNMWSJ9XX0sInNlY29uZF9zdGFnZSI6eyJibG9jayI6NSwicGF5bG9hZHMiOlt7InBheWxvYWRfaWQiOiJUZWxrb20tNCIsIm5vcmFkX2lkIjpbNDM1ODddLCJyZXVzZWQiOmZhbHNlLCJjdXN0b21lcnMiOlsiVGVsa29tIl0sIm5hdGlvbmFsaXR5IjoiSW5kb25lc2lhIiwibWFudWZhY3R1cmVyIjoiU1NMIiwicGF5bG9hZF90eXBlIjoiU2F0ZWxsaXRlIiwicGF5bG9hZF9tYXNzX2tnIjo1ODAwLCJwYXlsb2FkX21hc3NfbGJzIjoxMjc4Ni44MSwib3JiaXQiOiJHVE8iLCJvcmJpdF9wYXJhbXMiOnsicmVmZXJlbmNlX3N5c3RlbSI6Imdlb2NlbnRyaWMiLCJyZWdpbWUiOiJnZW9zdGF0aW9uYXJ5IiwibG9uZ2l0dWRlIjotMTA4LCJzZW1pX21ham9yX2F4aXNfa20iOjIxMjI2LjE3OCwiZWNjZW50cmljaXR5IjowLjY5MDQxNDEsInBlcmlhcHNpc19rbSI6MTkzLjE5LCJhcG9hcHNpc19rbSI6Mjk1MDIuODk2LCJpbmNsaW5hdGlvbl9kZWciOjI3LjA2NDgsInBlcmlvZF9taW4iOjUxMi45NDEsImxpZmVzcGFuX3llYXJzIjoxNSwiZXBvY2giOiIyMDE4LTA4LTA3VDA2OjU3OjE2LjAwMFoiLCJtZWFuX21vdGlvbiI6Mi44MDczNDAxOCwicmFhbiI6MjI3LjAyMjh9fV19fSwidGVsZW1ldHJ5Ijp7ImZsaWdodF9jbHViIjpudWxsfSwicmV1c2UiOnsiY29yZSI6dHJ1ZSwic2lkZV9jb3JlMSI6ZmFsc2UsInNpZGVfY29yZTIiOmZhbHNlLCJmYWlyaW5ncyI6ZmFsc2UsImNhcHN1bGUiOmZhbHNlfSwibGF1bmNoX3NpdGUiOnsic2l0ZV9pZCI6ImNjYWZzX3NsY180MCIsInNpdGVfbmFtZSI6IkNDQUZTIFNMQyA0MCIsInNpdGVfbmFtZV9sb25nIjoiQ2FwZSBDYW5hdmVyYWwgQWlyIEZvcmNlIFN0YXRpb24gU3BhY2UgTGF1bmNoIENvbXBsZXggNDAifSwibGF1bmNoX3N1Y2Nlc3MiOnRydWUsImxpbmtzIjp7Im1pc3Npb25fcGF0Y2giOiJodHRwczovL2ltYWdlczIuaW1nYm94LmNvbS9hOC9mNS9aZ2RzcmJxV19vLnBuZyIsIm1pc3Npb25fcGF0Y2hfc21hbGwiOiJodHRwczovL2ltYWdlczIuaW1nYm94LmNvbS9hNy9lYy9zYndlUHpWRF9vLnBuZyIsInJlZGRpdF9jYW1wYWlnbiI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTFnd2ZnL21lcmFoX3B1dGloX3RlbGtvbTRfbGF1bmNoX2NhbXBhaWduX3RocmVhZC8iLCJyZWRkaXRfbGF1bmNoIjoiaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL3NwYWNleC9jb21tZW50cy85NTM5bnIvcnNwYWNleF9tZXJhaF9wdXRpaF90ZWxrb200X29mZmljaWFsX2xhdW5jaC8iLCJyZWRkaXRfcmVjb3ZlcnkiOm51bGwsInJlZGRpdF9tZWRpYSI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTR6cjBiL3JzcGFjZXhfbWVyYWhfcHV0aWhfbWVkaWFfdGhyZWFkX3ZpZGVvc19pbWFnZXMvIiwicHJlc3NraXQiOiJodHRwczovL3d3dy5zcGFjZXguY29tL3NpdGVzL3NwYWNleC9maWxlcy9tZXJhaHB1dGlocHJlc3NraXQucGRmIiwiYXJ0aWNsZV9saW5rIjoiaHR0cHM6Ly9zcGFjZWZsaWdodG5vdy5jb20vMjAxOC8wOC8wNy9pbmRvbmVzaWFuLWNvbW11bmljYXRpb25zLXNhdGVsbGl0ZS1kZXBsb3llZC1pbi1vcmJpdC1ieS1zcGFjZXgvIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVGVsa29tX0luZG9uZXNpYSIsInZpZGVvX2xpbmsiOiJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUZqZlFOQll2MklZIn0sImRldGFpbHMiOiJJbmRvbmVzaWFuIGNvbXNhdCBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSBhZ2luZyBUZWxrb20gMSBhdCAxMDjCsCBFLiBGaXJzdCByZWZsaWdodCBvZiBhIEJsb2NrIDUtdmVyc2lvbiBib29zdGVyLiIsInVwY29taW5nIjpmYWxzZSwic3RhdGljX2ZpcmVfZGF0ZV91dGMiOiIyMDE4LTA4LTAyVDE1OjUzOjAwLjAwMFoifQ==
         | 
| 60 | 
            +
                http_version: 
         | 
| 61 | 
            +
              recorded_at: Sat, 18 Aug 2018 19:45:17 GMT
         | 
| 62 | 
            +
            - request:
         | 
| 63 | 
            +
                method: get
         | 
| 64 | 
            +
                uri: https://api.spacexdata.com/v2/launches/latest
         | 
| 65 | 
            +
                body:
         | 
| 66 | 
            +
                  encoding: US-ASCII
         | 
| 67 | 
            +
                  string: ''
         | 
| 68 | 
            +
                headers:
         | 
| 69 | 
            +
                  User-Agent:
         | 
| 70 | 
            +
                  - Faraday v0.15.2
         | 
| 71 | 
            +
                  Accept-Encoding:
         | 
| 72 | 
            +
                  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
         | 
| 73 | 
            +
                  Accept:
         | 
| 74 | 
            +
                  - "*/*"
         | 
| 75 | 
            +
              response:
         | 
| 76 | 
            +
                status:
         | 
| 77 | 
            +
                  code: 200
         | 
| 78 | 
            +
                  message: OK
         | 
| 79 | 
            +
                headers:
         | 
| 80 | 
            +
                  Date:
         | 
| 81 | 
            +
                  - Sat, 18 Aug 2018 19:45:26 GMT
         | 
| 82 | 
            +
                  Content-Type:
         | 
| 83 | 
            +
                  - application/json; charset=utf-8
         | 
| 84 | 
            +
                  Transfer-Encoding:
         | 
| 85 | 
            +
                  - chunked
         | 
| 86 | 
            +
                  Connection:
         | 
| 87 | 
            +
                  - keep-alive
         | 
| 88 | 
            +
                  Set-Cookie:
         | 
| 89 | 
            +
                  - __cfduid=d1410ba111f548dfb99b1d8ad2cb574981534621526; expires=Sun, 18-Aug-19
         | 
| 90 | 
            +
                    19:45:26 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
         | 
| 91 | 
            +
                  Vary:
         | 
| 92 | 
            +
                  - Accept-Encoding, Origin
         | 
| 93 | 
            +
                  X-Dns-Prefetch-Control:
         | 
| 94 | 
            +
                  - 'off'
         | 
| 95 | 
            +
                  X-Frame-Options:
         | 
| 96 | 
            +
                  - SAMEORIGIN
         | 
| 97 | 
            +
                  Strict-Transport-Security:
         | 
| 98 | 
            +
                  - max-age=15552000; includeSubDomains
         | 
| 99 | 
            +
                  X-Download-Options:
         | 
| 100 | 
            +
                  - noopen
         | 
| 101 | 
            +
                  X-Content-Type-Options:
         | 
| 102 | 
            +
                  - nosniff
         | 
| 103 | 
            +
                  X-Xss-Protection:
         | 
| 104 | 
            +
                  - 1; mode=block
         | 
| 105 | 
            +
                  Access-Control-Allow-Origin:
         | 
| 106 | 
            +
                  - "*"
         | 
| 107 | 
            +
                  X-Koa-Redis-Cache:
         | 
| 108 | 
            +
                  - 'true'
         | 
| 109 | 
            +
                  X-Response-Time:
         | 
| 110 | 
            +
                  - 1ms
         | 
| 111 | 
            +
                  Expect-Ct:
         | 
| 112 | 
            +
                  - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
         | 
| 113 | 
            +
                  Server:
         | 
| 114 | 
            +
                  - cloudflare
         | 
| 115 | 
            +
                  Cf-Ray:
         | 
| 116 | 
            +
                  - 44c6e17cde272525-ORD
         | 
| 117 | 
            +
                body:
         | 
| 118 | 
            +
                  encoding: ASCII-8BIT
         | 
| 119 | 
            +
                  string: !binary |-
         | 
| 120 | 
            +
                    eyJmbGlnaHRfbnVtYmVyIjo2NywibWlzc2lvbl9uYW1lIjoiTWVyYWggUHV0aWgiLCJsYXVuY2hfeWVhciI6IjIwMTgiLCJsYXVuY2hfZGF0ZV91bml4IjoxNTMzNjE5MDgwLCJsYXVuY2hfZGF0ZV91dGMiOiIyMDE4LTA4LTA3VDA1OjE4OjAwLjAwMFoiLCJsYXVuY2hfZGF0ZV9sb2NhbCI6IjIwMTgtMDgtMDdUMDE6MTg6MDAtMDQ6MDAiLCJyb2NrZXQiOnsicm9ja2V0X2lkIjoiZmFsY29uOSIsInJvY2tldF9uYW1lIjoiRmFsY29uIDkiLCJyb2NrZXRfdHlwZSI6IkZUIiwiZmlyc3Rfc3RhZ2UiOnsiY29yZXMiOlt7ImNvcmVfc2VyaWFsIjoiQjEwNDYiLCJmbGlnaHQiOjIsImJsb2NrIjo1LCJyZXVzZWQiOnRydWUsImxhbmRfc3VjY2VzcyI6dHJ1ZSwibGFuZGluZ190eXBlIjoiQVNEUyIsImxhbmRpbmdfdmVoaWNsZSI6Ik9DSVNMWSJ9XX0sInNlY29uZF9zdGFnZSI6eyJibG9jayI6NSwicGF5bG9hZHMiOlt7InBheWxvYWRfaWQiOiJUZWxrb20tNCIsIm5vcmFkX2lkIjpbNDM1ODddLCJyZXVzZWQiOmZhbHNlLCJjdXN0b21lcnMiOlsiVGVsa29tIl0sIm5hdGlvbmFsaXR5IjoiSW5kb25lc2lhIiwibWFudWZhY3R1cmVyIjoiU1NMIiwicGF5bG9hZF90eXBlIjoiU2F0ZWxsaXRlIiwicGF5bG9hZF9tYXNzX2tnIjo1ODAwLCJwYXlsb2FkX21hc3NfbGJzIjoxMjc4Ni44MSwib3JiaXQiOiJHVE8iLCJvcmJpdF9wYXJhbXMiOnsicmVmZXJlbmNlX3N5c3RlbSI6Imdlb2NlbnRyaWMiLCJyZWdpbWUiOiJnZW9zdGF0aW9uYXJ5IiwibG9uZ2l0dWRlIjotMTA4LCJzZW1pX21ham9yX2F4aXNfa20iOjIxMjI2LjE3OCwiZWNjZW50cmljaXR5IjowLjY5MDQxNDEsInBlcmlhcHNpc19rbSI6MTkzLjE5LCJhcG9hcHNpc19rbSI6Mjk1MDIuODk2LCJpbmNsaW5hdGlvbl9kZWciOjI3LjA2NDgsInBlcmlvZF9taW4iOjUxMi45NDEsImxpZmVzcGFuX3llYXJzIjoxNSwiZXBvY2giOiIyMDE4LTA4LTA3VDA2OjU3OjE2LjAwMFoiLCJtZWFuX21vdGlvbiI6Mi44MDczNDAxOCwicmFhbiI6MjI3LjAyMjh9fV19fSwidGVsZW1ldHJ5Ijp7ImZsaWdodF9jbHViIjpudWxsfSwicmV1c2UiOnsiY29yZSI6dHJ1ZSwic2lkZV9jb3JlMSI6ZmFsc2UsInNpZGVfY29yZTIiOmZhbHNlLCJmYWlyaW5ncyI6ZmFsc2UsImNhcHN1bGUiOmZhbHNlfSwibGF1bmNoX3NpdGUiOnsic2l0ZV9pZCI6ImNjYWZzX3NsY180MCIsInNpdGVfbmFtZSI6IkNDQUZTIFNMQyA0MCIsInNpdGVfbmFtZV9sb25nIjoiQ2FwZSBDYW5hdmVyYWwgQWlyIEZvcmNlIFN0YXRpb24gU3BhY2UgTGF1bmNoIENvbXBsZXggNDAifSwibGF1bmNoX3N1Y2Nlc3MiOnRydWUsImxpbmtzIjp7Im1pc3Npb25fcGF0Y2giOiJodHRwczovL2ltYWdlczIuaW1nYm94LmNvbS9hOC9mNS9aZ2RzcmJxV19vLnBuZyIsIm1pc3Npb25fcGF0Y2hfc21hbGwiOiJodHRwczovL2ltYWdlczIuaW1nYm94LmNvbS9hNy9lYy9zYndlUHpWRF9vLnBuZyIsInJlZGRpdF9jYW1wYWlnbiI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTFnd2ZnL21lcmFoX3B1dGloX3RlbGtvbTRfbGF1bmNoX2NhbXBhaWduX3RocmVhZC8iLCJyZWRkaXRfbGF1bmNoIjoiaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL3NwYWNleC9jb21tZW50cy85NTM5bnIvcnNwYWNleF9tZXJhaF9wdXRpaF90ZWxrb200X29mZmljaWFsX2xhdW5jaC8iLCJyZWRkaXRfcmVjb3ZlcnkiOm51bGwsInJlZGRpdF9tZWRpYSI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTR6cjBiL3JzcGFjZXhfbWVyYWhfcHV0aWhfbWVkaWFfdGhyZWFkX3ZpZGVvc19pbWFnZXMvIiwicHJlc3NraXQiOiJodHRwczovL3d3dy5zcGFjZXguY29tL3NpdGVzL3NwYWNleC9maWxlcy9tZXJhaHB1dGlocHJlc3NraXQucGRmIiwiYXJ0aWNsZV9saW5rIjoiaHR0cHM6Ly9zcGFjZWZsaWdodG5vdy5jb20vMjAxOC8wOC8wNy9pbmRvbmVzaWFuLWNvbW11bmljYXRpb25zLXNhdGVsbGl0ZS1kZXBsb3llZC1pbi1vcmJpdC1ieS1zcGFjZXgvIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVGVsa29tX0luZG9uZXNpYSIsInZpZGVvX2xpbmsiOiJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUZqZlFOQll2MklZIn0sImRldGFpbHMiOiJJbmRvbmVzaWFuIGNvbXNhdCBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSBhZ2luZyBUZWxrb20gMSBhdCAxMDjCsCBFLiBGaXJzdCByZWZsaWdodCBvZiBhIEJsb2NrIDUtdmVyc2lvbiBib29zdGVyLiIsInVwY29taW5nIjpmYWxzZSwic3RhdGljX2ZpcmVfZGF0ZV91dGMiOiIyMDE4LTA4LTAyVDE1OjUzOjAwLjAwMFoifQ==
         | 
| 121 | 
            +
                http_version: 
         | 
| 122 | 
            +
              recorded_at: Sat, 18 Aug 2018 19:45:26 GMT
         | 
| 123 | 
            +
            - request:
         | 
| 124 | 
            +
                method: get
         | 
| 125 | 
            +
                uri: https://api.spacexdata.com/v2/launches/latest
         | 
| 126 | 
            +
                body:
         | 
| 127 | 
            +
                  encoding: US-ASCII
         | 
| 128 | 
            +
                  string: ''
         | 
| 129 | 
            +
                headers:
         | 
| 130 | 
            +
                  User-Agent:
         | 
| 131 | 
            +
                  - Faraday v0.15.2
         | 
| 132 | 
            +
                  Accept-Encoding:
         | 
| 133 | 
            +
                  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
         | 
| 134 | 
            +
                  Accept:
         | 
| 135 | 
            +
                  - "*/*"
         | 
| 136 | 
            +
              response:
         | 
| 137 | 
            +
                status:
         | 
| 138 | 
            +
                  code: 200
         | 
| 139 | 
            +
                  message: OK
         | 
| 140 | 
            +
                headers:
         | 
| 141 | 
            +
                  Date:
         | 
| 142 | 
            +
                  - Sat, 18 Aug 2018 19:45:32 GMT
         | 
| 143 | 
            +
                  Content-Type:
         | 
| 144 | 
            +
                  - application/json; charset=utf-8
         | 
| 145 | 
            +
                  Transfer-Encoding:
         | 
| 146 | 
            +
                  - chunked
         | 
| 147 | 
            +
                  Connection:
         | 
| 148 | 
            +
                  - keep-alive
         | 
| 149 | 
            +
                  Set-Cookie:
         | 
| 150 | 
            +
                  - __cfduid=d95522303e13c2945bff877ae1fce4d1b1534621532; expires=Sun, 18-Aug-19
         | 
| 151 | 
            +
                    19:45:32 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
         | 
| 152 | 
            +
                  Vary:
         | 
| 153 | 
            +
                  - Accept-Encoding, Origin
         | 
| 154 | 
            +
                  X-Dns-Prefetch-Control:
         | 
| 155 | 
            +
                  - 'off'
         | 
| 156 | 
            +
                  X-Frame-Options:
         | 
| 157 | 
            +
                  - SAMEORIGIN
         | 
| 158 | 
            +
                  Strict-Transport-Security:
         | 
| 159 | 
            +
                  - max-age=15552000; includeSubDomains
         | 
| 160 | 
            +
                  X-Download-Options:
         | 
| 161 | 
            +
                  - noopen
         | 
| 162 | 
            +
                  X-Content-Type-Options:
         | 
| 163 | 
            +
                  - nosniff
         | 
| 164 | 
            +
                  X-Xss-Protection:
         | 
| 165 | 
            +
                  - 1; mode=block
         | 
| 166 | 
            +
                  Access-Control-Allow-Origin:
         | 
| 167 | 
            +
                  - "*"
         | 
| 168 | 
            +
                  X-Koa-Redis-Cache:
         | 
| 169 | 
            +
                  - 'true'
         | 
| 170 | 
            +
                  X-Response-Time:
         | 
| 171 | 
            +
                  - 1ms
         | 
| 172 | 
            +
                  Expect-Ct:
         | 
| 173 | 
            +
                  - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
         | 
| 174 | 
            +
                  Server:
         | 
| 175 | 
            +
                  - cloudflare
         | 
| 176 | 
            +
                  Cf-Ray:
         | 
| 177 | 
            +
                  - 44c6e1a21bfe55c4-ORD
         | 
| 178 | 
            +
                body:
         | 
| 179 | 
            +
                  encoding: ASCII-8BIT
         | 
| 180 | 
            +
                  string: !binary |-
         | 
| 181 | 
            +
                    eyJmbGlnaHRfbnVtYmVyIjo2NywibWlzc2lvbl9uYW1lIjoiTWVyYWggUHV0aWgiLCJsYXVuY2hfeWVhciI6IjIwMTgiLCJsYXVuY2hfZGF0ZV91bml4IjoxNTMzNjE5MDgwLCJsYXVuY2hfZGF0ZV91dGMiOiIyMDE4LTA4LTA3VDA1OjE4OjAwLjAwMFoiLCJsYXVuY2hfZGF0ZV9sb2NhbCI6IjIwMTgtMDgtMDdUMDE6MTg6MDAtMDQ6MDAiLCJyb2NrZXQiOnsicm9ja2V0X2lkIjoiZmFsY29uOSIsInJvY2tldF9uYW1lIjoiRmFsY29uIDkiLCJyb2NrZXRfdHlwZSI6IkZUIiwiZmlyc3Rfc3RhZ2UiOnsiY29yZXMiOlt7ImNvcmVfc2VyaWFsIjoiQjEwNDYiLCJmbGlnaHQiOjIsImJsb2NrIjo1LCJyZXVzZWQiOnRydWUsImxhbmRfc3VjY2VzcyI6dHJ1ZSwibGFuZGluZ190eXBlIjoiQVNEUyIsImxhbmRpbmdfdmVoaWNsZSI6Ik9DSVNMWSJ9XX0sInNlY29uZF9zdGFnZSI6eyJibG9jayI6NSwicGF5bG9hZHMiOlt7InBheWxvYWRfaWQiOiJUZWxrb20tNCIsIm5vcmFkX2lkIjpbNDM1ODddLCJyZXVzZWQiOmZhbHNlLCJjdXN0b21lcnMiOlsiVGVsa29tIl0sIm5hdGlvbmFsaXR5IjoiSW5kb25lc2lhIiwibWFudWZhY3R1cmVyIjoiU1NMIiwicGF5bG9hZF90eXBlIjoiU2F0ZWxsaXRlIiwicGF5bG9hZF9tYXNzX2tnIjo1ODAwLCJwYXlsb2FkX21hc3NfbGJzIjoxMjc4Ni44MSwib3JiaXQiOiJHVE8iLCJvcmJpdF9wYXJhbXMiOnsicmVmZXJlbmNlX3N5c3RlbSI6Imdlb2NlbnRyaWMiLCJyZWdpbWUiOiJnZW9zdGF0aW9uYXJ5IiwibG9uZ2l0dWRlIjotMTA4LCJzZW1pX21ham9yX2F4aXNfa20iOjIxMjI2LjE3OCwiZWNjZW50cmljaXR5IjowLjY5MDQxNDEsInBlcmlhcHNpc19rbSI6MTkzLjE5LCJhcG9hcHNpc19rbSI6Mjk1MDIuODk2LCJpbmNsaW5hdGlvbl9kZWciOjI3LjA2NDgsInBlcmlvZF9taW4iOjUxMi45NDEsImxpZmVzcGFuX3llYXJzIjoxNSwiZXBvY2giOiIyMDE4LTA4LTA3VDA2OjU3OjE2LjAwMFoiLCJtZWFuX21vdGlvbiI6Mi44MDczNDAxOCwicmFhbiI6MjI3LjAyMjh9fV19fSwidGVsZW1ldHJ5Ijp7ImZsaWdodF9jbHViIjpudWxsfSwicmV1c2UiOnsiY29yZSI6dHJ1ZSwic2lkZV9jb3JlMSI6ZmFsc2UsInNpZGVfY29yZTIiOmZhbHNlLCJmYWlyaW5ncyI6ZmFsc2UsImNhcHN1bGUiOmZhbHNlfSwibGF1bmNoX3NpdGUiOnsic2l0ZV9pZCI6ImNjYWZzX3NsY180MCIsInNpdGVfbmFtZSI6IkNDQUZTIFNMQyA0MCIsInNpdGVfbmFtZV9sb25nIjoiQ2FwZSBDYW5hdmVyYWwgQWlyIEZvcmNlIFN0YXRpb24gU3BhY2UgTGF1bmNoIENvbXBsZXggNDAifSwibGF1bmNoX3N1Y2Nlc3MiOnRydWUsImxpbmtzIjp7Im1pc3Npb25fcGF0Y2giOiJodHRwczovL2ltYWdlczIuaW1nYm94LmNvbS9hOC9mNS9aZ2RzcmJxV19vLnBuZyIsIm1pc3Npb25fcGF0Y2hfc21hbGwiOiJodHRwczovL2ltYWdlczIuaW1nYm94LmNvbS9hNy9lYy9zYndlUHpWRF9vLnBuZyIsInJlZGRpdF9jYW1wYWlnbiI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTFnd2ZnL21lcmFoX3B1dGloX3RlbGtvbTRfbGF1bmNoX2NhbXBhaWduX3RocmVhZC8iLCJyZWRkaXRfbGF1bmNoIjoiaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL3NwYWNleC9jb21tZW50cy85NTM5bnIvcnNwYWNleF9tZXJhaF9wdXRpaF90ZWxrb200X29mZmljaWFsX2xhdW5jaC8iLCJyZWRkaXRfcmVjb3ZlcnkiOm51bGwsInJlZGRpdF9tZWRpYSI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTR6cjBiL3JzcGFjZXhfbWVyYWhfcHV0aWhfbWVkaWFfdGhyZWFkX3ZpZGVvc19pbWFnZXMvIiwicHJlc3NraXQiOiJodHRwczovL3d3dy5zcGFjZXguY29tL3NpdGVzL3NwYWNleC9maWxlcy9tZXJhaHB1dGlocHJlc3NraXQucGRmIiwiYXJ0aWNsZV9saW5rIjoiaHR0cHM6Ly9zcGFjZWZsaWdodG5vdy5jb20vMjAxOC8wOC8wNy9pbmRvbmVzaWFuLWNvbW11bmljYXRpb25zLXNhdGVsbGl0ZS1kZXBsb3llZC1pbi1vcmJpdC1ieS1zcGFjZXgvIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVGVsa29tX0luZG9uZXNpYSIsInZpZGVvX2xpbmsiOiJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUZqZlFOQll2MklZIn0sImRldGFpbHMiOiJJbmRvbmVzaWFuIGNvbXNhdCBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSBhZ2luZyBUZWxrb20gMSBhdCAxMDjCsCBFLiBGaXJzdCByZWZsaWdodCBvZiBhIEJsb2NrIDUtdmVyc2lvbiBib29zdGVyLiIsInVwY29taW5nIjpmYWxzZSwic3RhdGljX2ZpcmVfZGF0ZV91dGMiOiIyMDE4LTA4LTAyVDE1OjUzOjAwLjAwMFoifQ==
         | 
| 182 | 
            +
                http_version: 
         | 
| 183 | 
            +
              recorded_at: Sat, 18 Aug 2018 19:45:32 GMT
         | 
| 184 | 
            +
            - request:
         | 
| 185 | 
            +
                method: get
         | 
| 186 | 
            +
                uri: https://api.spacexdata.com/v2/launches/latest
         | 
| 187 | 
            +
                body:
         | 
| 188 | 
            +
                  encoding: US-ASCII
         | 
| 189 | 
            +
                  string: ''
         | 
| 190 | 
            +
                headers:
         | 
| 191 | 
            +
                  User-Agent:
         | 
| 192 | 
            +
                  - Faraday v0.15.2
         | 
| 193 | 
            +
                  Accept-Encoding:
         | 
| 194 | 
            +
                  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
         | 
| 195 | 
            +
                  Accept:
         | 
| 196 | 
            +
                  - "*/*"
         | 
| 197 | 
            +
              response:
         | 
| 198 | 
            +
                status:
         | 
| 199 | 
            +
                  code: 200
         | 
| 200 | 
            +
                  message: OK
         | 
| 201 | 
            +
                headers:
         | 
| 202 | 
            +
                  Date:
         | 
| 203 | 
            +
                  - Sat, 18 Aug 2018 19:45:37 GMT
         | 
| 204 | 
            +
                  Content-Type:
         | 
| 205 | 
            +
                  - application/json; charset=utf-8
         | 
| 206 | 
            +
                  Transfer-Encoding:
         | 
| 207 | 
            +
                  - chunked
         | 
| 208 | 
            +
                  Connection:
         | 
| 209 | 
            +
                  - keep-alive
         | 
| 210 | 
            +
                  Set-Cookie:
         | 
| 211 | 
            +
                  - __cfduid=dbfcf3a9e04620923b3bf6f29d51ebf3e1534621537; expires=Sun, 18-Aug-19
         | 
| 212 | 
            +
                    19:45:37 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
         | 
| 213 | 
            +
                  Vary:
         | 
| 214 | 
            +
                  - Accept-Encoding, Origin
         | 
| 215 | 
            +
                  X-Dns-Prefetch-Control:
         | 
| 216 | 
            +
                  - 'off'
         | 
| 217 | 
            +
                  X-Frame-Options:
         | 
| 218 | 
            +
                  - SAMEORIGIN
         | 
| 219 | 
            +
                  Strict-Transport-Security:
         | 
| 220 | 
            +
                  - max-age=15552000; includeSubDomains
         | 
| 221 | 
            +
                  X-Download-Options:
         | 
| 222 | 
            +
                  - noopen
         | 
| 223 | 
            +
                  X-Content-Type-Options:
         | 
| 224 | 
            +
                  - nosniff
         | 
| 225 | 
            +
                  X-Xss-Protection:
         | 
| 226 | 
            +
                  - 1; mode=block
         | 
| 227 | 
            +
                  Access-Control-Allow-Origin:
         | 
| 228 | 
            +
                  - "*"
         | 
| 229 | 
            +
                  X-Koa-Redis-Cache:
         | 
| 230 | 
            +
                  - 'true'
         | 
| 231 | 
            +
                  X-Response-Time:
         | 
| 232 | 
            +
                  - 2ms
         | 
| 233 | 
            +
                  Expect-Ct:
         | 
| 234 | 
            +
                  - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
         | 
| 235 | 
            +
                  Server:
         | 
| 236 | 
            +
                  - cloudflare
         | 
| 237 | 
            +
                  Cf-Ray:
         | 
| 238 | 
            +
                  - 44c6e1c39f225528-ORD
         | 
| 239 | 
            +
                body:
         | 
| 240 | 
            +
                  encoding: ASCII-8BIT
         | 
| 241 | 
            +
                  string: !binary |-
         | 
| 242 | 
            +
                    eyJmbGlnaHRfbnVtYmVyIjo2NywibWlzc2lvbl9uYW1lIjoiTWVyYWggUHV0aWgiLCJsYXVuY2hfeWVhciI6IjIwMTgiLCJsYXVuY2hfZGF0ZV91bml4IjoxNTMzNjE5MDgwLCJsYXVuY2hfZGF0ZV91dGMiOiIyMDE4LTA4LTA3VDA1OjE4OjAwLjAwMFoiLCJsYXVuY2hfZGF0ZV9sb2NhbCI6IjIwMTgtMDgtMDdUMDE6MTg6MDAtMDQ6MDAiLCJyb2NrZXQiOnsicm9ja2V0X2lkIjoiZmFsY29uOSIsInJvY2tldF9uYW1lIjoiRmFsY29uIDkiLCJyb2NrZXRfdHlwZSI6IkZUIiwiZmlyc3Rfc3RhZ2UiOnsiY29yZXMiOlt7ImNvcmVfc2VyaWFsIjoiQjEwNDYiLCJmbGlnaHQiOjIsImJsb2NrIjo1LCJyZXVzZWQiOnRydWUsImxhbmRfc3VjY2VzcyI6dHJ1ZSwibGFuZGluZ190eXBlIjoiQVNEUyIsImxhbmRpbmdfdmVoaWNsZSI6Ik9DSVNMWSJ9XX0sInNlY29uZF9zdGFnZSI6eyJibG9jayI6NSwicGF5bG9hZHMiOlt7InBheWxvYWRfaWQiOiJUZWxrb20tNCIsIm5vcmFkX2lkIjpbNDM1ODddLCJyZXVzZWQiOmZhbHNlLCJjdXN0b21lcnMiOlsiVGVsa29tIl0sIm5hdGlvbmFsaXR5IjoiSW5kb25lc2lhIiwibWFudWZhY3R1cmVyIjoiU1NMIiwicGF5bG9hZF90eXBlIjoiU2F0ZWxsaXRlIiwicGF5bG9hZF9tYXNzX2tnIjo1ODAwLCJwYXlsb2FkX21hc3NfbGJzIjoxMjc4Ni44MSwib3JiaXQiOiJHVE8iLCJvcmJpdF9wYXJhbXMiOnsicmVmZXJlbmNlX3N5c3RlbSI6Imdlb2NlbnRyaWMiLCJyZWdpbWUiOiJnZW9zdGF0aW9uYXJ5IiwibG9uZ2l0dWRlIjotMTA4LCJzZW1pX21ham9yX2F4aXNfa20iOjIxMjI2LjE3OCwiZWNjZW50cmljaXR5IjowLjY5MDQxNDEsInBlcmlhcHNpc19rbSI6MTkzLjE5LCJhcG9hcHNpc19rbSI6Mjk1MDIuODk2LCJpbmNsaW5hdGlvbl9kZWciOjI3LjA2NDgsInBlcmlvZF9taW4iOjUxMi45NDEsImxpZmVzcGFuX3llYXJzIjoxNSwiZXBvY2giOiIyMDE4LTA4LTA3VDA2OjU3OjE2LjAwMFoiLCJtZWFuX21vdGlvbiI6Mi44MDczNDAxOCwicmFhbiI6MjI3LjAyMjh9fV19fSwidGVsZW1ldHJ5Ijp7ImZsaWdodF9jbHViIjpudWxsfSwicmV1c2UiOnsiY29yZSI6dHJ1ZSwic2lkZV9jb3JlMSI6ZmFsc2UsInNpZGVfY29yZTIiOmZhbHNlLCJmYWlyaW5ncyI6ZmFsc2UsImNhcHN1bGUiOmZhbHNlfSwibGF1bmNoX3NpdGUiOnsic2l0ZV9pZCI6ImNjYWZzX3NsY180MCIsInNpdGVfbmFtZSI6IkNDQUZTIFNMQyA0MCIsInNpdGVfbmFtZV9sb25nIjoiQ2FwZSBDYW5hdmVyYWwgQWlyIEZvcmNlIFN0YXRpb24gU3BhY2UgTGF1bmNoIENvbXBsZXggNDAifSwibGF1bmNoX3N1Y2Nlc3MiOnRydWUsImxpbmtzIjp7Im1pc3Npb25fcGF0Y2giOiJodHRwczovL2ltYWdlczIuaW1nYm94LmNvbS9hOC9mNS9aZ2RzcmJxV19vLnBuZyIsIm1pc3Npb25fcGF0Y2hfc21hbGwiOiJodHRwczovL2ltYWdlczIuaW1nYm94LmNvbS9hNy9lYy9zYndlUHpWRF9vLnBuZyIsInJlZGRpdF9jYW1wYWlnbiI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTFnd2ZnL21lcmFoX3B1dGloX3RlbGtvbTRfbGF1bmNoX2NhbXBhaWduX3RocmVhZC8iLCJyZWRkaXRfbGF1bmNoIjoiaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL3NwYWNleC9jb21tZW50cy85NTM5bnIvcnNwYWNleF9tZXJhaF9wdXRpaF90ZWxrb200X29mZmljaWFsX2xhdW5jaC8iLCJyZWRkaXRfcmVjb3ZlcnkiOm51bGwsInJlZGRpdF9tZWRpYSI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTR6cjBiL3JzcGFjZXhfbWVyYWhfcHV0aWhfbWVkaWFfdGhyZWFkX3ZpZGVvc19pbWFnZXMvIiwicHJlc3NraXQiOiJodHRwczovL3d3dy5zcGFjZXguY29tL3NpdGVzL3NwYWNleC9maWxlcy9tZXJhaHB1dGlocHJlc3NraXQucGRmIiwiYXJ0aWNsZV9saW5rIjoiaHR0cHM6Ly9zcGFjZWZsaWdodG5vdy5jb20vMjAxOC8wOC8wNy9pbmRvbmVzaWFuLWNvbW11bmljYXRpb25zLXNhdGVsbGl0ZS1kZXBsb3llZC1pbi1vcmJpdC1ieS1zcGFjZXgvIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVGVsa29tX0luZG9uZXNpYSIsInZpZGVvX2xpbmsiOiJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUZqZlFOQll2MklZIn0sImRldGFpbHMiOiJJbmRvbmVzaWFuIGNvbXNhdCBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSBhZ2luZyBUZWxrb20gMSBhdCAxMDjCsCBFLiBGaXJzdCByZWZsaWdodCBvZiBhIEJsb2NrIDUtdmVyc2lvbiBib29zdGVyLiIsInVwY29taW5nIjpmYWxzZSwic3RhdGljX2ZpcmVfZGF0ZV91dGMiOiIyMDE4LTA4LTAyVDE1OjUzOjAwLjAwMFoifQ==
         | 
| 243 | 
            +
                http_version: 
         | 
| 244 | 
            +
              recorded_at: Sat, 18 Aug 2018 19:45:37 GMT
         | 
| 245 | 
            +
            recorded_with: VCR 4.0.0
         | 
| @@ -0,0 +1,87 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'spec_helper'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe SPACEX do
         | 
| 6 | 
            +
              context 'Launches', vcr: { cassette_name: 'launches/latest' } do
         | 
| 7 | 
            +
                subject do
         | 
| 8 | 
            +
                  SPACEX::Launches.latest
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
                it 'returns latest launch' do
         | 
| 11 | 
            +
                  expect(subject.flight_number).to eq 67
         | 
| 12 | 
            +
                  expect(subject.mission_name).to eq 'Merah Putih'
         | 
| 13 | 
            +
                  expect(subject.launch_year).to eq '2018'
         | 
| 14 | 
            +
                  expect(subject.launch_date_unix).to eq 1_533_619_080
         | 
| 15 | 
            +
                  expect(subject.launch_date_utc).to eq '2018-08-07T05:18:00.000Z'
         | 
| 16 | 
            +
                  expect(subject.launch_date_local).to eq '2018-08-07T01:18:00-04:00'
         | 
| 17 | 
            +
                  expect(subject.launch_success).to eq true
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  expect(subject.rocket.rocket_id).to eq 'falcon9'
         | 
| 20 | 
            +
                  expect(subject.rocket.rocket_name).to eq 'Falcon 9'
         | 
| 21 | 
            +
                  expect(subject.rocket.rocket_type).to eq 'FT'
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  expect(subject.rocket.first_stage.cores.first.core_serial).to eq 'B1046'
         | 
| 24 | 
            +
                  expect(subject.rocket.first_stage.cores.first.flight).to eq 2
         | 
| 25 | 
            +
                  expect(subject.rocket.first_stage.cores.first.block).to eq 5
         | 
| 26 | 
            +
                  expect(subject.rocket.first_stage.cores.first.reused).to eq true
         | 
| 27 | 
            +
                  expect(subject.rocket.first_stage.cores.first.land_success).to eq true
         | 
| 28 | 
            +
                  expect(subject.rocket.first_stage.cores.first.landing_type).to eq 'ASDS'
         | 
| 29 | 
            +
                  expect(subject.rocket.first_stage.cores.first.landing_vehicle).to eq 'OCISLY'
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  expect(subject.rocket.second_stage.block).to eq 5
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.payload_id).to eq 'Telkom-4'
         | 
| 34 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.norad_id.first).to eq 43_587
         | 
| 35 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.reused).to eq false
         | 
| 36 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.customers.first).to eq 'Telkom'
         | 
| 37 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.nationality).to eq 'Indonesia'
         | 
| 38 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.manufacturer).to eq 'SSL'
         | 
| 39 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.payload_type).to eq 'Satellite'
         | 
| 40 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.payload_mass_kg).to eq 5800
         | 
| 41 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.payload_mass_lbs).to eq 12_786.81
         | 
| 42 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit).to eq 'GTO'
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.reference_system).to eq 'geocentric'
         | 
| 45 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.regime).to eq 'geostationary'
         | 
| 46 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.longitude).to eq -108
         | 
| 47 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.semi_major_axis_km).to eq 21_226.178
         | 
| 48 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.eccentricity).to eq 0.6904141
         | 
| 49 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.periapsis_km).to eq 193.19
         | 
| 50 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.apoapsis_km).to eq 29_502.896
         | 
| 51 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.inclination_deg).to eq 27.0648
         | 
| 52 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.period_min).to eq 512.941
         | 
| 53 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.lifespan_years).to eq 15
         | 
| 54 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.epoch).to eq '2018-08-07T06:57:16.000Z'
         | 
| 55 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.mean_motion).to eq 2.80734018
         | 
| 56 | 
            +
                  expect(subject.rocket.second_stage.payloads.first.orbit_params.raan).to eq 227.0228
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                  expect(subject.telemetry.flight_club).to eq nil
         | 
| 59 | 
            +
                  expect(subject.reuse.core).to eq true
         | 
| 60 | 
            +
                  expect(subject.reuse.sire_core1).to eq nil
         | 
| 61 | 
            +
                  expect(subject.reuse.side_core2).to eq false
         | 
| 62 | 
            +
                  expect(subject.reuse.fairings).to eq false
         | 
| 63 | 
            +
                  expect(subject.reuse.capsule).to eq false
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                  expect(subject.launch_site.site_id).to eq 'ccafs_slc_40'
         | 
| 66 | 
            +
                  expect(subject.launch_site.site_name).to eq 'CCAFS SLC 40'
         | 
| 67 | 
            +
                  expect(subject.launch_site.site_name_long).to eq 'Cape Canaveral Air Force Station Space Launch Complex 40'
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                  expect(subject.launch_success).to eq true
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                  expect(subject.links.mission_patch).to eq 'https://images2.imgbox.com/a8/f5/ZgdsrbqW_o.png'
         | 
| 72 | 
            +
                  expect(subject.links.mision_patch_small).to eq nil
         | 
| 73 | 
            +
                  expect(subject.links.reddit_campaign).to eq 'https://www.reddit.com/r/spacex/comments/91gwfg/merah_putih_telkom4_launch_campaign_thread/'
         | 
| 74 | 
            +
                  expect(subject.links.reddit_launch).to eq 'https://www.reddit.com/r/spacex/comments/9539nr/rspacex_merah_putih_telkom4_official_launch/'
         | 
| 75 | 
            +
                  expect(subject.links.reddit_recovery).to eq nil
         | 
| 76 | 
            +
                  expect(subject.links.reddit_media).to eq 'https://www.reddit.com/r/spacex/comments/94zr0b/rspacex_merah_putih_media_thread_videos_images/'
         | 
| 77 | 
            +
                  expect(subject.links.presskit).to eq 'https://www.spacex.com/sites/spacex/files/merahputihpresskit.pdf'
         | 
| 78 | 
            +
                  expect(subject.links.article_link).to eq 'https://spaceflightnow.com/2018/08/07/indonesian-communications-satellite-deployed-in-orbit-by-spacex/'
         | 
| 79 | 
            +
                  expect(subject.links.wikipedia).to eq 'https://en.wikipedia.org/wiki/Telkom_Indonesia'
         | 
| 80 | 
            +
                  expect(subject.links.video_link).to eq 'https://www.youtube.com/watch?v=FjfQNBYv2IY'
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                  expect(subject.details).to eq 'Indonesian comsat intended to replace the aging Telkom 1 at 108° E. First reflight of a Block 5-version booster.'
         | 
| 83 | 
            +
                  expect(subject.upcoming).to eq false
         | 
| 84 | 
            +
                  expect(subject.static_fire_date_utc).to eq '2018-08-02T15:53:00.000Z'
         | 
| 85 | 
            +
                end
         | 
| 86 | 
            +
              end
         | 
| 87 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    ADDED
    
    
    
        data/spec/support/vcr.rb
    ADDED
    
    | @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'vcr'
         | 
| 4 | 
            +
            require 'webmock/rspec'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            VCR.configure do |config|
         | 
| 7 | 
            +
              config.cassette_library_dir = 'spec/fixtures/spacex'
         | 
| 8 | 
            +
              config.hook_into :webmock
         | 
| 9 | 
            +
              # config.default_cassette_options = { record: :new_episodes }
         | 
| 10 | 
            +
              config.configure_rspec_metadata!
         | 
| 11 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: spacex
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Rodolfo Bandeira
         | 
| @@ -9,15 +9,147 @@ autorequire: | |
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 | 
             
            date: 2018-08-17 00:00:00.000000000 Z
         | 
| 12 | 
            -
            dependencies: | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: faraday
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0.9'
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ">="
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0.9'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: faraday_middleware
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :runtime
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: hashie
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - ">="
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0'
         | 
| 48 | 
            +
              type: :runtime
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - ">="
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: rake
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - "~>"
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '10'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - "~>"
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '10'
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: rspec
         | 
| 71 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                requirements:
         | 
| 73 | 
            +
                - - ">="
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            +
                    version: '0'
         | 
| 76 | 
            +
              type: :development
         | 
| 77 | 
            +
              prerelease: false
         | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - ">="
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: '0'
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: rubocop
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - '='
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: 0.51.0
         | 
| 90 | 
            +
              type: :development
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - '='
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: 0.51.0
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            +
              name: vcr
         | 
| 99 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 | 
            +
                requirements:
         | 
| 101 | 
            +
                - - ">="
         | 
| 102 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            +
                    version: '0'
         | 
| 104 | 
            +
              type: :development
         | 
| 105 | 
            +
              prerelease: false
         | 
| 106 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 | 
            +
                requirements:
         | 
| 108 | 
            +
                - - ">="
         | 
| 109 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            +
                    version: '0'
         | 
| 111 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 112 | 
            +
              name: webmock
         | 
| 113 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 | 
            +
                requirements:
         | 
| 115 | 
            +
                - - ">="
         | 
| 116 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            +
                    version: '0'
         | 
| 118 | 
            +
              type: :development
         | 
| 119 | 
            +
              prerelease: false
         | 
| 120 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            +
                requirements:
         | 
| 122 | 
            +
                - - ">="
         | 
| 123 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            +
                    version: '0'
         | 
| 13 125 | 
             
            description: Ruby library to consume SpaceX launch data
         | 
| 14 126 | 
             
            email: rodolfobandeira@protonmail.com
         | 
| 15 127 | 
             
            executables: []
         | 
| 16 128 | 
             
            extensions: []
         | 
| 17 129 | 
             
            extra_rdoc_files: []
         | 
| 18 130 | 
             
            files:
         | 
| 131 | 
            +
            - ".gitignore"
         | 
| 132 | 
            +
            - ".rspec"
         | 
| 133 | 
            +
            - ".rubocop.yml"
         | 
| 134 | 
            +
            - ".rubocop_todo.yml"
         | 
| 135 | 
            +
            - ".ruby-version"
         | 
| 136 | 
            +
            - ".travis.yml"
         | 
| 137 | 
            +
            - Gemfile
         | 
| 138 | 
            +
            - LICENSE
         | 
| 139 | 
            +
            - README.md
         | 
| 140 | 
            +
            - Rakefile
         | 
| 19 141 | 
             
            - lib/spacex.rb
         | 
| 20 | 
            -
             | 
| 142 | 
            +
            - lib/spacex/endpoint.rb
         | 
| 143 | 
            +
            - lib/spacex/launches.rb
         | 
| 144 | 
            +
            - lib/spacex/version.rb
         | 
| 145 | 
            +
            - rubocop.yml
         | 
| 146 | 
            +
            - spacex.gemspec
         | 
| 147 | 
            +
            - spec/fixtures/spacex/launches/latest.yml
         | 
| 148 | 
            +
            - spec/spacex/launches_spec.rb
         | 
| 149 | 
            +
            - spec/spacex/version_spec.rb
         | 
| 150 | 
            +
            - spec/spec_helper.rb
         | 
| 151 | 
            +
            - spec/support/vcr.rb
         | 
| 152 | 
            +
            homepage: https://github.com/rodolfobandeira/spacex
         | 
| 21 153 | 
             
            licenses:
         | 
| 22 154 | 
             
            - MIT
         | 
| 23 155 | 
             
            metadata: {}
         | 
| @@ -41,4 +173,9 @@ rubygems_version: 2.6.11 | |
| 41 173 | 
             
            signing_key: 
         | 
| 42 174 | 
             
            specification_version: 4
         | 
| 43 175 | 
             
            summary: Swap SpaceX API with Ruby
         | 
| 44 | 
            -
            test_files: | 
| 176 | 
            +
            test_files:
         | 
| 177 | 
            +
            - spec/fixtures/spacex/launches/latest.yml
         | 
| 178 | 
            +
            - spec/spacex/launches_spec.rb
         | 
| 179 | 
            +
            - spec/spacex/version_spec.rb
         | 
| 180 | 
            +
            - spec/spec_helper.rb
         | 
| 181 | 
            +
            - spec/support/vcr.rb
         |