spacex 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 34d0f69775d8b88dc1ae18095c0f0bdb56b26d79
4
- data.tar.gz: 572954573b7371c0bc4d7b90f686d23be4a9da9f
3
+ metadata.gz: 5607f20bf6f57edb0ce7b939c89438e21807f29e
4
+ data.tar.gz: 6babf6b994bad5f9fcfa917efad871360485be28
5
5
  SHA512:
6
- metadata.gz: 1474c8fb7d0fa7a9bc182b5031cf42ab5b81e9da553e2a9a71c114043cef62fcb6d3b0d5bd369dc68902a9c748a7f84b5328f04f0cda44a5f6aafcc7a0562d15
7
- data.tar.gz: c46d6c09a8848cd5d19168ff70af8a1048945d730debf141e8e1da7cabd21861fbd0aefaaa43d1f34e12bb91cc7d9956858ab3b0e777a4dc7c3c495eff5e3221
6
+ metadata.gz: 80d2b5726d2e72e74885a54f69ac7e10919b6f882d2f834a86fd3e99513d6f7db1d142cdb00d35c882304ee8b393d0358321477bbebf10d6896c595f6328e762
7
+ data.tar.gz: 3ed27942335b8ce402da3141efd7fb0e34939ab8656b2da619864364321d971f4e3e61c91158a195f5020c315d2cc1411ac685ea38fce740365f0b2425843982
@@ -0,0 +1,7 @@
1
+ ### Purpose of the issue
2
+ - [ ] Bug report (encountered problems/errors)
3
+ - [ ] Feature request (request for new functionality)
4
+ - [ ] Question
5
+
6
+ ### Description of the issue
7
+
@@ -0,0 +1,6 @@
1
+ #### Why?
2
+
3
+
4
+ #### Description
5
+
6
+
@@ -1 +1 @@
1
- 2.4.1
1
+ 2.4.4
@@ -1,6 +1,21 @@
1
- language: ruby
1
+ env:
2
+ global:
3
+ - CC_TEST_REPORTER_ID=$CC_TEST_REPORTER_ID
2
4
 
5
+ language: ruby
6
+ rvm:
7
+ - 2.4.2
3
8
  cache: bundler
9
+ sudo: required
10
+
11
+ before_script:
12
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
13
+ - chmod +x ./cc-test-reporter
14
+ - ./cc-test-reporter before-build
15
+
16
+ script:
17
+ - bundle exec rspec
18
+
19
+ after_script:
20
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
4
21
 
5
- rvm:
6
- - 2.4.1
@@ -1,21 +1,29 @@
1
- ### 1.0.2 (next)
1
+ ### 1.0.3 (next)
2
2
 
3
3
  * Your contribution here.
4
4
 
5
+ ### 1.0.2 (2019/10/06)
5
6
 
6
- ### 1.0.1
7
+ * [#73](https://github.com/rodolfobandeira/spacex/pull/73): Fix Faraday adaptor failing rspec locally [@rodolfobandeira](https://github.com/rodolfobandeira).
8
+ * [#71](https://github.com/rodolfobandeira/spacex/pull/71): Implement Landing Pads endpoint [@invacuo](https://github.com/invacuo).
9
+ * [#70](https://github.com/rodolfobandeira/spacex/pull/70): Implement Landing Pads endpoint [@invacuo](https://github.com/invacuo).
10
+ * [#69](https://github.com/rodolfobandeira/spacex/pull/69): Implement API Info endpoint [@fernandomaia](https://github.com/fernandomaia).
11
+ * [#65](https://github.com/rodolfobandeira/spacex/pull/65): Add CodeClimate test coverage [@rodolfobandeira](https://github.com/rodolfobandeira).
12
+ * [#64](https://github.com/rodolfobandeira/spacex/pull/64): Fix failing build on Travis-CI [@rodolfobandeira](https://github.com/rodolfobandeira).
7
13
 
8
- * [#45](https://github.com/rodolfobandeira/spacex/pull/45): Implement History endpoint [@invacuo](http://github.com/invacuo).
9
- * [#48](https://github.com/rodolfobandeira/spacex/pull/48): Add ability to query specific Launch via `.info('flight_number')` - [@mtking2](http://github.com/mtking2).
10
- * [#51](https://github.com/rodolfobandeira/spacex/pull/51): Added payloads endpoint [@maiafernando](http://github.com/maiafernando).
11
- * [#52](https://github.com/rodolfobandeira/spacex/pull/52): Add ability to query Past Launches - [@mtking2](http://github.com/mtking2).
12
- * [#54](https://github.com/rodolfobandeira/spacex/pull/54): Refactor ENDPOINT_URI - [@ludamillion](http://github.com/ludamillion).
13
- * [#56](https://github.com/rodolfobandeira/spacex/pull/56): Add ability to query upcoming launches - [@mtking2](http://github.com/mtking2).
14
+ ### 1.0.1 (2018/11/04)
15
+
16
+ * [#45](https://github.com/rodolfobandeira/spacex/pull/45): Implement History endpoint [@invacuo](https://github.com/invacuo).
17
+ * [#48](https://github.com/rodolfobandeira/spacex/pull/48): Add ability to query specific Launch via `.info('flight_number')` - [@mtking2](https://github.com/mtking2).
18
+ * [#51](https://github.com/rodolfobandeira/spacex/pull/51): Added payloads endpoint [@maiafernando](https://github.com/maiafernando).
19
+ * [#52](https://github.com/rodolfobandeira/spacex/pull/52): Add ability to query Past Launches - [@mtking2](https://github.com/mtking2).
20
+ * [#54](https://github.com/rodolfobandeira/spacex/pull/54): Refactor ENDPOINT_URI - [@ludamillion](https://github.com/ludamillion).
21
+ * [#56](https://github.com/rodolfobandeira/spacex/pull/56): Add ability to query upcoming launches - [@mtking2](https://github.com/mtking2).
14
22
 
15
23
 
16
24
  ### 1.0.0 (2018/10/15)
17
25
 
18
- * [#41](https://github.com/rodolfobandeira/spacex/pull/41): General Refactor cleaning endpoint classes [@invacuo](http://github.com/invacuo).
26
+ * [#41](https://github.com/rodolfobandeira/spacex/pull/41): General Refactor cleaning endpoint classes [@invacuo](https://github.com/invacuo).
19
27
  * [#44](https://github.com/rodolfobandeira/spacex/pull/44): Add flickr_images key into rockets endpoint [@Dfenniak](https://github.com/Dfenniak).
20
28
  * [#42](https://github.com/rodolfobandeira/spacex/pull/42): Add pry gem to debug - [@Dfenniak](https://github.com/Dfenniak).
21
29
  * [#40](https://github.com/rodolfobandeira/spacex/pull/40): Update and clarify information in README - [@annawinkler](https://github.com/annawinkler).
@@ -32,4 +32,6 @@ Update the CHANGELOG with the description of your code and your name on the line
32
32
 
33
33
  ### Push your change and open a pull request
34
34
 
35
+ Use the pull request template to explaing why the PR is being made and give a brief description.
36
+
35
37
  Thank you!
data/README.md CHANGED
@@ -3,7 +3,9 @@ SpaceX Ruby Client
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/spacex.svg)](https://badge.fury.io/rb/spacex)
5
5
  [![Build Status](https://travis-ci.com/rodolfobandeira/spacex.svg?branch=master)](https://travis-ci.org/rodolfobandeira/spacex)
6
- [![Coverage Status](https://coveralls.io/repos/github/rodolfobandeira/spacex/badge.svg?branch=master)](https://coveralls.io/github/rodolfobandeira/spacex?branch=master)
6
+ [![Coverage Status - Coverall](https://coveralls.io/repos/github/rodolfobandeira/spacex/badge.svg?branch=master)](https://coveralls.io/github/rodolfobandeira/spacex?branch=master)
7
+ [![Maintainability](https://api.codeclimate.com/v1/badges/d125a8ff6d902eb48c8f/maintainability)](https://codeclimate.com/github/rodolfobandeira/spacex/maintainability)
8
+ [![Test Coverage - CodeClimate](https://api.codeclimate.com/v1/badges/d125a8ff6d902eb48c8f/test_coverage)](https://codeclimate.com/github/rodolfobandeira/spacex/test_coverage)
7
9
 
8
10
  A Ruby library that consumes the [SpaceX API](https://github.com/r-spacex/SpaceX-API).
9
11
 
@@ -12,6 +14,8 @@ A Ruby library that consumes the [SpaceX API](https://github.com/r-spacex/SpaceX
12
14
 
13
15
  - [Installation](#installation)
14
16
  - [Usage](#usage)
17
+ - [API Info](#api-info)
18
+ - `SPACEX::ApiInfo.info`
15
19
  - [Capsules](#capsules)
16
20
  - `SPACEX::Capsules.info`
17
21
  - `SPACEX::Capsules.info('capsule_serial')`
@@ -26,6 +30,12 @@ A Ruby library that consumes the [SpaceX API](https://github.com/r-spacex/SpaceX
26
30
  - [History](#history)
27
31
  - `SPACEX::History.info`
28
32
  - `SPACEX::History.info(4)`
33
+ - [LandingPads](#landing_pads)
34
+ - `SPACEX::LandingPads.info`
35
+ - `SPACEX::LandingPads.info('LZ-4')`
36
+ - [LaunchPads](#launch_pads)
37
+ - `SPACEX::LaunchPads.info`
38
+ - `SPACEX::LaunchPads.info('vafb_slc_4e')`
29
39
  - [Launches](#launches)
30
40
  - `SPACEX::Launches.all`
31
41
  - `SPACEX::Launches.info`
@@ -64,6 +74,23 @@ Then run `bundle install`.
64
74
 
65
75
  ## Usage
66
76
 
77
+ ### API Info
78
+
79
+ - Get information about the API: `SPACEX::ApiInfo.info`
80
+
81
+ Here's an example of the response:
82
+
83
+ ```ruby
84
+ api_info = SPACEX::ApiInfo.info
85
+
86
+ api_info.project_name # 'SpaceX-API'
87
+ api_info.description = # 'Open Source REST API for rocket, core, capsule, pad, and launch data, created and maintained by the developers of the r/SpaceX organization'
88
+ api_info.organization = # 'r/SpaceX'
89
+ api_info.organization_link = # 'https://github.com/r-spacex'
90
+ api_info.project_link = # 'https://github.com/r-spacex/SpaceX-API'
91
+ api_info.version = # '3.1.0'
92
+ ```
93
+
67
94
  ### Capsules
68
95
 
69
96
  - Get information for all capsules: `SPACEX::Capsules.info`
@@ -209,6 +236,55 @@ first_event.links['article'] # http://www.spacex.com/news/2013/02/11/flight-4-la
209
236
  first_event.links['wikipedia'] # https://en.wikipedia.org/wiki/Falcon_1
210
237
  ```
211
238
 
239
+ ### LandingPads
240
+
241
+ - Get information for all LandingPads: `SPACEX::LandingPads.info`
242
+ - Get information about a specific LandingPad: `SPACEX::LandingPads.info('LZ-4')`
243
+
244
+ This code shows how to get the information for a specific LandingPad by id and lists the fields:
245
+
246
+ ```ruby
247
+ landing_pad = SPACEX::LandingPads.info('LZ-4')
248
+ landing_pad.id # 'LZ-4'
249
+ landing_pad.full_name # 'Landing Zone 4'
250
+ landing_pad.status # 'active'
251
+ landing_pad.location['name'] # 'Vandenberg Air Force Base'
252
+ landing_pad.location['region'] # 'California'
253
+ landing_pad.location['latitude'] # 34.632989
254
+ landing_pad.location['longitude'] # -120.615167
255
+ landing_pad.landing_type # 'RTLS'
256
+ landing_pad.attempted_landings # 2
257
+ landing_pad.successful_landings # 2
258
+ landing_pad.wikipedia # "https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Complex_4#LZ-4_landing_history"
259
+ landing_pad.details # "SpaceX's west coast landing pad. The pad is adjacent to SLC-4E, SpaceX's west coast launch site. The pad was under construction for about a year starting in 2016. After concerns with seal mating season, this pad was first used for the SAOCOM 1A mission in October 2018. Officially referred to as LZ-4 in FCC filings."
260
+ ```
261
+
262
+ ### LaunchPads
263
+
264
+ - Get information for all LaunchPads: `SPACEX::LaunchPads.info`
265
+ - Get information about a specific LaunchPad: `SPACEX::LaunchPads.info('vafb_slc_4e')`
266
+
267
+ This code shows how to get the information for a specific LaunchPad by site_id and lists the fields:
268
+
269
+ ```ruby
270
+ launch_pad = SPACEX::LaunchPads.info('vafb_slc_4e')
271
+
272
+ launch_pad.id # 6
273
+ launch_pad.name # 'VAFB SLC 4E'
274
+ launch_pad.status # 'active'
275
+ launch_pad.location['name'] # 'Vandenberg Air Force Base',
276
+ launch_pad.location['region'] # 'California',
277
+ launch_pad.location['latitude'] # 34.632093,
278
+ launch_pad.location['longitude'] # -120.610829
279
+ launch_pad.vehicles_launched # ['Falcon 9']
280
+ launch_pad.attempted_launches # 15
281
+ launch_pad.successful_launches # 15
282
+ launch_pad.wikipedia # 'https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Complex_4'
283
+ launch_pad.details # 'SpaceX primary west coast launch pad for polar orbits and sun synchronous orbits, primarily used for Iridium. Also intended to be capable of launching Falcon Heavy.'
284
+ launch_pad.site_id # 'vafb_slc_4e'
285
+ launch_pad.site_name_long # 'Vandenberg Air Force Base Space Launch Complex 4E'
286
+ ```
287
+
212
288
  ### Launches
213
289
 
214
290
  - Get information for all launches: `SPACEX::Launches.all` or `SPACEX::Launches.info`
@@ -3,6 +3,7 @@ require 'faraday_middleware'
3
3
  require 'faraday_middleware/response_middleware'
4
4
  require 'hashie'
5
5
 
6
+ require_relative 'spacex/api_info'
6
7
  require_relative 'spacex/base_request'
7
8
  require_relative 'spacex/capsules'
8
9
  require_relative 'spacex/company_info'
@@ -10,6 +11,8 @@ require_relative 'spacex/cores'
10
11
  require_relative 'spacex/dragon_capsules'
11
12
  require_relative 'spacex/endpoint'
12
13
  require_relative 'spacex/history'
14
+ require_relative 'spacex/landing_pads'
15
+ require_relative 'spacex/launch_pads'
13
16
  require_relative 'spacex/launches'
14
17
  require_relative 'spacex/missions'
15
18
  require_relative 'spacex/payloads'
@@ -0,0 +1,7 @@
1
+ module SPACEX
2
+ module ApiInfo
3
+ def self.info
4
+ SPACEX::BaseRequest.info('')
5
+ end
6
+ end
7
+ end
@@ -46,10 +46,10 @@ module SPACEX
46
46
  request: {
47
47
  params_encoder: Faraday::FlatParamsEncoder
48
48
  }
49
- ) do |c|
50
- c.use ::FaradayMiddleware::ParseJson
51
- c.use Faraday::Response::RaiseError
52
- c.use Faraday::Adapter::NetHttp
49
+ ) do |connection|
50
+ connection.use ::FaradayMiddleware::ParseJson
51
+ connection.use Faraday::Response::RaiseError
52
+ connection.adapter ::Faraday.default_adapter
53
53
  end
54
54
  end
55
55
  end
@@ -0,0 +1,11 @@
1
+ module SPACEX
2
+ module LandingPads
3
+ def self.info(id = nil)
4
+ SPACEX::BaseRequest.info("landpads/#{id}")
5
+ end
6
+
7
+ def self.all
8
+ info
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module SPACEX
2
+ module LaunchPads
3
+ def self.info(site_id = nil)
4
+ SPACEX::BaseRequest.info("launchpads/#{site_id}")
5
+ end
6
+
7
+ def self.all
8
+ info
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  module SPACEX
2
- VERSION = '1.0.1'.freeze
2
+ VERSION = '1.0.2'.freeze
3
3
 
4
4
  def self.help
5
5
  puts 'https://github.com/rodolfobandeira/spacex'
@@ -0,0 +1,65 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.16.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
+ - Wed, 02 Oct 2019 01:04:51 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=dd7abdb6b7f9c36b6bdc298c15ec390b81569978291; expires=Thu, 01-Oct-20
31
+ 01:04:51 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ X-Dns-Prefetch-Control:
33
+ - 'off'
34
+ X-Frame-Options:
35
+ - SAMEORIGIN
36
+ Strict-Transport-Security:
37
+ - max-age=15552000; includeSubDomains
38
+ X-Download-Options:
39
+ - noopen
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ X-Xss-Protection:
43
+ - 1; mode=block
44
+ Vary:
45
+ - Origin
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ Access-Control-Expose-Headers:
49
+ - spacex-api-cache,spacex-api-count,spacex-api-response-time
50
+ Spacex-Api-Response-Time:
51
+ - 19ms
52
+ Expect-Ct:
53
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
54
+ Server:
55
+ - cloudflare
56
+ Cf-Ray:
57
+ - 51f2c3c2ae854a4c-GRU
58
+ body:
59
+ encoding: ASCII-8BIT
60
+ string: '{"project_name":"SpaceX-API","version":"3.1.0","project_link":"https://github.com/r-spacex/SpaceX-API","docs":"https://documenter.getpostman.com/view/2025350/RWaEzAiG","organization":"r/SpaceX","organization_link":"https://github.com/r-spacex","description":"Open
61
+ Source REST API for rocket, core, capsule, pad, and launch data, created and
62
+ maintained by the developers of the r/SpaceX organization"}'
63
+ http_version:
64
+ recorded_at: Wed, 02 Oct 2019 01:04:51 GMT
65
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,68 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/landpads/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.16.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
+ - Wed, 02 Oct 2019 02:21:50 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=da3198fb7433b31f6dac40ea3904737c61569982910; expires=Thu, 01-Oct-20
31
+ 02:21:50 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ X-Dns-Prefetch-Control:
33
+ - 'off'
34
+ X-Frame-Options:
35
+ - SAMEORIGIN
36
+ Strict-Transport-Security:
37
+ - max-age=15552000; includeSubDomains
38
+ X-Download-Options:
39
+ - noopen
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ X-Xss-Protection:
43
+ - 1; mode=block
44
+ Vary:
45
+ - Origin
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ Access-Control-Expose-Headers:
49
+ - spacex-api-cache,spacex-api-count,spacex-api-response-time
50
+ Spacex-Api-Count:
51
+ - '7'
52
+ Spacex-Api-Cache:
53
+ - MISS
54
+ Spacex-Api-Response-Time:
55
+ - 42ms
56
+ Expect-Ct:
57
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
58
+ Server:
59
+ - cloudflare
60
+ Cf-Ray:
61
+ - 51f33485fc99cee4-IAD
62
+ body:
63
+ encoding: ASCII-8BIT
64
+ string: !binary |-
65
+ W3siaWQiOiJMWi0xIiwiZnVsbF9uYW1lIjoiTGFuZGluZyBab25lIDEiLCJzdGF0dXMiOiJhY3RpdmUiLCJsb2NhdGlvbiI6eyJuYW1lIjoiQ2FwZSBDYW5hdmVyYWwiLCJyZWdpb24iOiJGbG9yaWRhIiwibGF0aXR1ZGUiOjI4LjQ4NTgzMywibG9uZ2l0dWRlIjotODAuNTQ0NDQ0fSwibGFuZGluZ190eXBlIjoiUlRMUyIsImF0dGVtcHRlZF9sYW5kaW5ncyI6MTQsInN1Y2Nlc3NmdWxfbGFuZGluZ3MiOjEzLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MYW5kaW5nX1pvbmVzXzFfYW5kXzIiLCJkZXRhaWxzIjoiU3BhY2VYJ3MgZmlyc3QgZWFzdCBjb2FzdCBsYW5kaW5nIHBhZCBpcyBMYW5kaW5nIFpvbmUgMSwgd2hlcmUgdGhlIGhpc3RvcmljIGZpcnN0IEZhbGNvbiA5IGxhbmRpbmcgb2NjdXJyZWQgaW4gRGVjZW1iZXIgMjAxNS4gTEMtMTMgd2FzIG9yaWdpbmFsbHkgdXNlZCBhcyBhIGxhdW5jaCBwYWQgZm9yIGVhcmx5IEF0bGFzIG1pc3NpbGVzIGFuZCByb2NrZXRzIGZyb20gTG9ja2hlZWQgTWFydGluLiBMQy0xIHdhcyBsYXRlciBleHBhbmRlZCB0byBpbmNsdWRlIExhbmRpbmcgWm9uZSAyIGZvciBzaWRlIGJvb3N0ZXIgUlRMUyBGYWxjb24gSGVhdnkgbWlzc2lvbnMsIGFuZCBpdCB3YXMgZmlyc3QgdXNlZCBpbiBGZWJydWFyeSAyMDE4IGZvciB0aGF0IHB1cnBvc2UuIn0seyJpZCI6IkxaLTIiLCJmdWxsX25hbWUiOiJMYW5kaW5nIFpvbmUgMiIsInN0YXR1cyI6ImFjdGl2ZSIsImxvY2F0aW9uIjp7Im5hbWUiOiJDYXBlIENhbmF2ZXJhbCIsInJlZ2lvbiI6IkZsb3JpZGEiLCJsYXRpdHVkZSI6MjguNDg1ODMzLCJsb25naXR1ZGUiOi04MC41NDQ0NDR9LCJsYW5kaW5nX3R5cGUiOiJSVExTIiwiYXR0ZW1wdGVkX2xhbmRpbmdzIjozLCJzdWNjZXNzZnVsX2xhbmRpbmdzIjozLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MYW5kaW5nX1pvbmVzXzFfYW5kXzIiLCJkZXRhaWxzIjoiU3BhY2VYJ3MgZmlyc3QgZWFzdCBjb2FzdCBsYW5kaW5nIHBhZCBpcyBMYW5kaW5nIFpvbmUgMSwgd2hlcmUgdGhlIGhpc3RvcmljIGZpcnN0IEZhbGNvbiA5IGxhbmRpbmcgb2NjdXJyZWQgaW4gRGVjZW1iZXIgMjAxNS4gTEMtMTMgd2FzIG9yaWdpbmFsbHkgdXNlZCBhcyBhIGxhdW5jaCBwYWQgZm9yIGVhcmx5IEF0bGFzIG1pc3NpbGVzIGFuZCByb2NrZXRzIGZyb20gTG9ja2hlZWQgTWFydGluLiBMQy0xIHdhcyBsYXRlciBleHBhbmRlZCB0byBpbmNsdWRlIExhbmRpbmcgWm9uZSAyIGZvciBzaWRlIGJvb3N0ZXIgUlRMUyBGYWxjb24gSGVhdnkgbWlzc2lvbnMsIGFuZCBpdCB3YXMgZmlyc3QgdXNlZCBpbiBGZWJydWFyeSAyMDE4IGZvciB0aGF0IHB1cnBvc2UuIn0seyJpZCI6IkxaLTQiLCJmdWxsX25hbWUiOiJMYW5kaW5nIFpvbmUgNCIsInN0YXR1cyI6ImFjdGl2ZSIsImxvY2F0aW9uIjp7Im5hbWUiOiJWYW5kZW5iZXJnIEFpciBGb3JjZSBCYXNlIiwicmVnaW9uIjoiQ2FsaWZvcm5pYSIsImxhdGl0dWRlIjozNC42MzI5ODksImxvbmdpdHVkZSI6LTEyMC42MTUxNjd9LCJsYW5kaW5nX3R5cGUiOiJSVExTIiwiYXR0ZW1wdGVkX2xhbmRpbmdzIjoyLCJzdWNjZXNzZnVsX2xhbmRpbmdzIjoyLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9WYW5kZW5iZXJnX0FGQl9TcGFjZV9MYXVuY2hfQ29tcGxleF80I0xaLTRfbGFuZGluZ19oaXN0b3J5IiwiZGV0YWlscyI6IlNwYWNlWCdzIHdlc3QgY29hc3QgbGFuZGluZyBwYWQuIFRoZSBwYWQgaXMgYWRqYWNlbnQgdG8gU0xDLTRFLCBTcGFjZVgncyB3ZXN0IGNvYXN0IGxhdW5jaCBzaXRlLiBUaGUgcGFkIHdhcyB1bmRlciBjb25zdHJ1Y3Rpb24gZm9yIGFib3V0IGEgeWVhciBzdGFydGluZyBpbiAyMDE2LiBBZnRlciBjb25jZXJucyB3aXRoIHNlYWwgbWF0aW5nIHNlYXNvbiwgdGhpcyBwYWQgd2FzIGZpcnN0IHVzZWQgZm9yIHRoZSBTQU9DT00gMUEgbWlzc2lvbiBpbiBPY3RvYmVyIDIwMTguIE9mZmljaWFsbHkgcmVmZXJyZWQgdG8gYXMgTFotNCBpbiBGQ0MgZmlsaW5ncy4ifSx7ImlkIjoiT0NJU0xZIiwiZnVsbF9uYW1lIjoiT2YgQ291cnNlIEkgU3RpbGwgTG92ZSBZb3UiLCJzdGF0dXMiOiJhY3RpdmUiLCJsb2NhdGlvbiI6eyJuYW1lIjoiUG9ydCBDYW5hdmVyYWwiLCJyZWdpb24iOiJGbG9yaWRhIiwibGF0aXR1ZGUiOjI4LjQxMDQsImxvbmdpdHVkZSI6LTgwLjYxODh9LCJsYW5kaW5nX3R5cGUiOiJBU0RTIiwic3VjY2Vzc2Z1bF9sYW5kaW5ncyI6MTksImF0dGVtcHRlZF9sYW5kaW5ncyI6MjMsIndpa2lwZWRpYSI6Imh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0F1dG9ub21vdXNfc3BhY2Vwb3J0X2Ryb25lX3NoaXAiLCJkZXRhaWxzIjoiVGhlIHNlY29uZCBBU0RTIGJhcmdlLCBPZiBDb3Vyc2UgSSBTdGlsbCBMb3ZlIFlvdSAoT0NJU0xZKSwgaGFkIGJlZW4gdW5kZXIgY29uc3RydWN0aW9uIGluIGEgTG91aXNpYW5hIHNoaXB5YXJkIHNpbmNlIGVhcmx5IDIwMTUgdXNpbmcgYSBkaWZmZXJlbnQgaHVsbOKAlE1hcm1hYyAzMDTigJRpbiBvcmRlciB0byBzZXJ2aWNlIGxhdW5jaGVzIG9uIHRoZSBlYXN0IGNvYXN0LiBJdCB3YXMgYnVpbHQgYXMgYSByZXBsYWNlbWVudCBmb3IgdGhlIGZpcnN0IEp1c3QgUmVhZCB0aGUgSW5zdHJ1Y3Rpb25zIGFuZCBlbnRlcmVkIG9wZXJhdGlvbmFsIHNlcnZpY2UgZm9yIEZhbGNvbiA5IEZsaWdodCAxOSBpbiBsYXRlIEp1bmUgMjAxNS4gQXMgb2YgSnVuZSAyMDE1LCBpdHMgaG9tZSBwb3J0IHdhcyBKYWNrc29udmlsbGUsIEZsb3JpZGEsIGJ1dCBhZnRlciBEZWNlbWJlciAyMDE1LCBpdCB3YXMgdHJhbnNmZXJyZWQgMTYwIG1pbGVzICgyNjAga20pIGZ1cnRoZXIgc291dGgsIGF0IFBvcnQgQ2FuYXZlcmFsLiBXaGlsZSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgc2hpcCBhcmUgbmVhcmx5IGlkZW50aWNhbCB0byB0aGUgZmlyc3QgQVNEUywgc2V2ZXJhbCBlbmhhbmNlbWVudHMgd2VyZSBtYWRlIGluY2x1ZGluZyBhIHN0ZWVsIGJsYXN0IHdhbGwgZXJlY3RlZCBiZXR3ZWVuIHRoZSBhZnQgY29udGFpbmVycyBhbmQgdGhlIGxhbmRpbmcgZGVjay4gVGhlIHNoaXAgd2FzIGluIHBsYWNlIGZvciBhIGZpcnN0LXN0YWdlIGxhbmRpbmcgdGVzdCBvbiB0aGUgQ1JTLTcgbWlzc2lvbiwgd2hpY2ggZmFpbGVkIG9uIGxhdW5jaCBvbiAyOCBKdW5lIDIwMTUuIE9uIDggQXByaWwgMjAxNiB0aGUgZmlyc3Qgc3RhZ2UsIHdoaWNoIGxhdW5jaGVkIHRoZSBEcmFnb24gQ1JTLTggc3BhY2VjcmFmdCwgc3VjY2Vzc2Z1bGx5IGxhbmRlZCBmb3IgdGhlIGZpcnN0IHRpbWUgZXZlciBvbiBPQ0lTTFksIHdoaWNoIGlzIGFsc28gdGhlIGZpcnN0IGV2ZXIgZHJvbmUgc2hpcCBsYW5kaW5nLiBJbiBGZWJydWFyeSAyMDE4LCB0aGUgRmFsY29uIEhlYXZ5IFRlc3QgRmxpZ2h0J3MgY2VudHJhbCBjb3JlIGV4cGxvZGVkIHVwb24gaW1wYWN0IG5leHQgdG8gT0NJU0xZIHRoYXQgZGFtYWdlZCB0d28gb2YgdGhlIGZvdXIgdGhydXN0ZXJzIG9uIHRoZSBkcm9uZSBzaGlwLiBUd28gdGhydXN0ZXJzIHdlcmUgcmVtb3ZlZCBmcm9tIHRoZSBNYXJtYWMgMzAzIGJhcmdlIGluIG9yZGVyIHRvIHJlcGFpciBPQ0lTTFkuIn0seyJpZCI6IkpSVEktMSIsImZ1bGxfbmFtZSI6Ikp1c3QgUmVhZCBUaGUgSW5zdHJ1Y3Rpb25zIFYxIiwic3RhdHVzIjoicmV0aXJlZCIsImxvY2F0aW9uIjp7Im5hbWUiOiJQb3J0IENhbmF2ZXJhbCIsInJlZ2lvbiI6IkZsb3JpZGEiLCJsYXRpdHVkZSI6MjguNDEwNCwibG9uZ2l0dWRlIjo4MC42MTg4fSwibGFuZGluZ190eXBlIjoiQVNEUyIsInN1Y2Nlc3NmdWxfbGFuZGluZ3MiOjAsImF0dGVtcHRlZF9sYW5kaW5ncyI6Miwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXV0b25vbW91c19zcGFjZXBvcnRfZHJvbmVfc2hpcCIsImRldGFpbHMiOiJUaGUgQVNEUyBsYW5kaW5nIGxvY2F0aW9uIGZvciB0aGUgZmlyc3QgbGFuZGluZyB0ZXN0IHdhcyBpbiB0aGUgQXRsYW50aWMgYXBwcm94aW1hdGVseSAyMDAgbWlsZXMgKDMyMCBrbSkgbm9ydGhlYXN0IG9mIHRoZSBsYXVuY2ggbG9jYXRpb24gYXQgQ2FwZSBDYW5hdmVyYWwsIGFuZCAxNjUgbWlsZXMgKDI2NiBrbSkgc291dGhlYXN0IG9mIENoYXJsZXN0b24sIFNvdXRoIENhcm9saW5hLiBTcGFjZVgncyBKdXN0IFJlYWQgdGhlIEluc3RydWN0aW9ucywgYmFzZWQgb24gdGhlIE1hcm1hYyAzMDAgZGVjayBiYXJnZSwgaW4gcG9zaXRpb24gZm9yIGEgbGFuZGluZyB0ZXN0IG9uIEZhbGNvbiA5IEZsaWdodCAxNyBpbiBBcHJpbCAyMDE1LiBPbiAyMyBKYW51YXJ5IDIwMTUsIGR1cmluZyByZXBhaXJzIHRvIHRoZSBzaGlwIGZvbGxvd2luZyB0aGUgdW5zdWNjZXNzZnVsIGZpcnN0IHRlc3QsIE11c2sgYW5ub3VuY2VkIHRoYXQgdGhlIHNoaXAgd2FzIHRvIGJlIG5hbWVkIEp1c3QgUmVhZCB0aGUgSW5zdHJ1Y3Rpb25zLCB3aXRoIGEgc2lzdGVyIHNoaXAgcGxhbm5lZCBmb3Igd2VzdCBjb2FzdCBsYXVuY2hlcyB0byBiZSBuYW1lZCBPZiBDb3Vyc2UgSSBTdGlsbCBMb3ZlIFlvdS4gT24gMjkgSmFudWFyeSwgU3BhY2VYIHJlbGVhc2VkIGEgbWFuaXB1bGF0ZWQgcGhvdG8gb2YgdGhlIHNoaXAgd2l0aCB0aGUgbmFtZSBpbGx1c3RyYXRpbmcgaG93IGl0IHdvdWxkIGxvb2sgb25jZSBwYWludGVkLiBCb3RoIHNoaXBzIGFyZSBuYW1lZCBhZnRlciB0d28gR2VuZXJhbCBDb250YWN0IFVuaXRzLCBzcGFjZXNoaXBzIGNvbW1hbmRlZCBieSBhdXRvbm9tb3VzIGFydGlmaWNpYWwgaW50ZWxsaWdlbmNlcywgdGhhdCBhcHBlYXIgaW4gVGhlIFBsYXllciBvZiBHYW1lcywgYSBDdWx0dXJlIG5vdmVsIGJ5IElhaW4gTS4gQmFua3MuIFRoZSBmaXJzdCBKdXN0IFJlYWQgdGhlIEluc3RydWN0aW9ucyB3YXMgcmV0aXJlZCBpbiBNYXkgMjAxNSBhZnRlciBhcHByb3hpbWF0ZWx5IHNpeCBtb250aHMgb2Ygc2VydmljZSBpbiB0aGUgQXRsYW50aWMsIGFuZCBpdHMgZHV0aWVzIHdlcmUgYXNzdW1lZCBieSBPZiBDb3Vyc2UgSSBTdGlsbCBMb3ZlIFlvdS4gVGhlIGZvcm1lciBBU0RTIHdhcyBtb2RpZmllZCBieSByZW1vdmluZyB0aGUgd2luZyBleHRlbnNpb25zIHRoYXQgaGFkIGV4dGVuZGVkIHRoZSBiYXJnZSBzdXJmYWNlIGFuZCB0aGUgZXF1aXBtZW50ICh0aHJ1c3RlcnMsIGNhbWVyYXMgYW5kIGNvbW11bmljYXRpb25zIGdlYXIpIHRoYXQgaGFkIGJlZW4gYWRkZWQgdG8gcmVmaXQgaXQgYXMgYW4gQVNEUzsgdGhlc2UgaXRlbXMgd2VyZSBzYXZlZCBmb3IgZnV0dXJlIHJldXNlLiJ9LHsiaWQiOiJKUlRJIiwiZnVsbF9uYW1lIjoiSnVzdCBSZWFkIFRoZSBJbnN0cnVjdGlvbnMiLCJzdGF0dXMiOiJhY3RpdmUiLCJsb2NhdGlvbiI6eyJuYW1lIjoiUG9ydCBvZiBMb3MgQW5nZWxlcyIsInJlZ2lvbiI6IkNhbGlmb3JuaWEiLCJsYXRpdHVkZSI6MzMuNzI5MTg1OCwibG9uZ2l0dWRlIjotMTE4LjI2MjAxNX0sImxhbmRpbmdfdHlwZSI6IkFTRFMiLCJzdWNjZXNzZnVsX2xhbmRpbmdzIjo3LCJhdHRlbXB0ZWRfbGFuZGluZ3MiOjgsIndpa2lwZWRpYSI6Imh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0F1dG9ub21vdXNfc3BhY2Vwb3J0X2Ryb25lX3NoaXAiLCJkZXRhaWxzIjoiVGhlIHRoaXJkIEFTRFMgYmFyZ2UsIHVzaW5nIHRoZSBNYXJtYWMgMzAzIGh1bGwsIHdhcyBidWlsdCBkdXJpbmcgMjAxNSBpbiBhIExvdWlzaWFuYSBzaGlweWFyZCwgYW5kIHRoZSBiYXJnZSB0cmFuc2l0ZWQgdGhlIFBhbmFtYSBDYW5hbCBpbiBKdW5lIDIwMTUgY2FycnlpbmcgaXRzIHdpbmcgZXh0ZW5zaW9ucyBhcyBjYXJnbyBvbiB0aGUgZGVjayBiZWNhdXNlIHRoZSBBU0RTLCB3aGVuIGNvbXBsZXRlLCB3b3VsZCBiZSB0b28gd2lkZSB0byBwYXNzIHRocm91Z2ggdGhlIGNhbmFsLiBUaGUgaG9tZSBwb3J0IGZvciB0aGUgTWFybWFjIDMwMyBpcyB0aGUgUG9ydCBvZiBMb3MgQW5nZWxlcywgYXQgdGhlIEFsdGFTZWEgbWFyaW5lIHJlc2VhcmNoIGFuZCBidXNpbmVzcyBjYW1wdXMgaW4gU2FuIFBlZHJvJ3Mgb3V0ZXIgaGFyYm9yLiBUaGUgbGFuZGluZyBwbGF0Zm9ybSBhbmQgdGVuZGVyIHZlc3NlbHMgYmVnYW4gZG9ja2luZyB0aGVyZSBpbiBKdWx5IDIwMTUgaW4gYWR2YW5jZSBvZiB0aGUgbWFpbiBjb25zdHJ1Y3Rpb24gb2YgQWx0YVNlYSB3aGljaCBpcyBzY2hlZHVsZWQgZm9yIDIwMTcuIFNwYWNlWCBhbm5vdW5jZWQgdGhhdCB0aGUgTWFybWFjIDMwMyB3b3VsZCBiZSB0aGUgc2Vjb25kIEFTRFMgdG8gYmUgbmFtZWQgSnVzdCBSZWFkIHRoZSBJbnN0cnVjdGlvbnMgKEpSdEkpIGluIEphbnVhcnkgMjAxNiwgc2hvcnRseSBiZWZvcmUgaXRzIGZpcnN0IHVzZSBhcyBhIGxhbmRpbmcgcGxhdGZvcm0gZm9yIEZhbGNvbiA5IEZsaWdodCAyMS4gT24gMTcgSmFudWFyeSAyMDE2LCBKUnRJIHdhcyBwdXQgdG8gZmlyc3QgdXNlIGluIGFuIGF0dGVtcHQgdG8gcmVjb3ZlciBhIEZhbGNvbiA5IGZpcnN0LXN0YWdlIGJvb3N0ZXIgZnJvbSB0aGUgSmFzb24tMyBtaXNzaW9uIGZyb20gVmFuZGVuYmVyZy4gVGhlIGJvb3N0ZXIgc3VjY2Vzc2Z1bGx5IGxhbmRlZCBvbiB0aGUgZGVjazsgaG93ZXZlciwgYSBsb2Nrb3V0IGNvbGxldCBmYWlsZWQgdG8gZW5nYWdlIG9uIG9uZSBvZiB0aGUgbGVncyBjYXVzaW5nIHRoZSByb2NrZXQgdG8gdGlwIG92ZXIsIGV4cGxvZGluZyBvbiBpbXBhY3Qgd2l0aCB0aGUgZGVjay5bMjNdIE9uIEphbnVhcnkgMTQsIDIwMTcsIFNwYWNlWCBsYXVuY2hlZCBGYWxjb24gOSBGbGlnaHQgMjkgZnJvbSBWYW5kZW5iZXJnIGFuZCBsYW5kZWQgdGhlIGZpcnN0IHN0YWdlIG9uIHRoZSBKUnRJIHRoYXQgd2FzIGxvY2F0ZWQgYWJvdXQgMzcwIGttICgyMzAgbWkpIGRvd25yYW5nZSBpbiB0aGUgUGFjaWZpYyBPY2VhbiwgbWFraW5nIGl0IHRoZSBmaXJzdCBzdWNjZXNzZnVsIGxhbmRpbmcgaW4gdGhlIFBhY2lmaWMuIn0seyJpZCI6IkFTT0ciLCJmdWxsX25hbWUiOiJBIFNob3J0ZmFsbCBvZiBHcmF2aXRhcyIsInN0YXR1cyI6InVuZGVyIGNvbnN0cnVjdGlvbiIsImxvY2F0aW9uIjp7Im5hbWUiOiJQb3J0IENhbmF2ZXJhbCIsInJlZ2lvbiI6IkZsb3JpZGEiLCJsYXRpdHVkZSI6MjguNDEwNCwibG9uZ2l0dWRlIjo4MC42MTg4fSwibGFuZGluZ190eXBlIjoiQVNEUyIsInN1Y2Nlc3NmdWxfbGFuZGluZ3MiOjAsImF0dGVtcHRlZF9sYW5kaW5ncyI6MCwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXV0b25vbW91c19zcGFjZXBvcnRfZHJvbmVfc2hpcCIsImRldGFpbHMiOiJUaGUgZm91cnRoIEFTRFMgYmFyZ2Ugd2FzIGFubm91bmNlZCB0byBiZSB1bmRlciBjb25zdHJ1Y3Rpb24gaW4gRmVicnVhcnkgMjAxOCBhbmQgaXQgd2lsbCBiZWNvbWUgdGhlIHNlY29uZCBhY3RpdmUgZWFzdCBjb2FzdC1iYXNlZCBBU0RTLiBJdCB3aWxsIGJlIGhvbWVwb3J0ZWQgYXQgUG9ydCBDYW5hdmVyYWwuIFRoaXMgZnV0dXJlIHNpbXVsdGFuZW91c2x5IHVzYWJsZSBBU0RTLCBhbG9uZyB3aXRoIE9DSVNMWSwgaXMgY2FsbGVkIEEgU2hvcnRmYWxsIG9mIEdyYXZpdGFzIChBU29HKSBhbmQgbGlrZSB0aGUgcmVzdCBvZiB0aGUgZmxlZXQsIGl0cyBuYW1pbmcgaXMgYmFzZWQgb24gbmFtZXMgdXNlZCBpbiB0aGUgQ3VsdHVyZSBzZXJpZXMuIFRoZSBkcm9uZXNoaXAgaXMgZXhwZWN0ZWQgdG8gYmUgb3BlcmF0aW9uYWwgaW4gbWlkLTIwMTkuIn1d
66
+ http_version:
67
+ recorded_at: Wed, 02 Oct 2019 02:21:50 GMT
68
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,70 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/landpads/LZ-4
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.16.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
+ - Wed, 02 Oct 2019 02:34:40 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=dd14821a25f560f88fe414ab6490ae7201569983680; expires=Thu, 01-Oct-20
31
+ 02:34:40 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ X-Dns-Prefetch-Control:
33
+ - 'off'
34
+ X-Frame-Options:
35
+ - SAMEORIGIN
36
+ Strict-Transport-Security:
37
+ - max-age=15552000; includeSubDomains
38
+ X-Download-Options:
39
+ - noopen
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ X-Xss-Protection:
43
+ - 1; mode=block
44
+ Vary:
45
+ - Origin
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ Access-Control-Expose-Headers:
49
+ - spacex-api-cache,spacex-api-count,spacex-api-response-time
50
+ Spacex-Api-Cache:
51
+ - HIT
52
+ Spacex-Api-Response-Time:
53
+ - 1ms
54
+ Expect-Ct:
55
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
56
+ Server:
57
+ - cloudflare
58
+ Cf-Ray:
59
+ - 51f34753ee175727-IAD
60
+ body:
61
+ encoding: ASCII-8BIT
62
+ string: '{"id":"LZ-4","full_name":"Landing Zone 4","status":"active","location":{"name":"Vandenberg
63
+ Air Force Base","region":"California","latitude":34.632989,"longitude":-120.615167},"landing_type":"RTLS","attempted_landings":2,"successful_landings":2,"wikipedia":"https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Complex_4#LZ-4_landing_history","details":"SpaceX''s
64
+ west coast landing pad. The pad is adjacent to SLC-4E, SpaceX''s west coast
65
+ launch site. The pad was under construction for about a year starting in 2016.
66
+ After concerns with seal mating season, this pad was first used for the SAOCOM
67
+ 1A mission in October 2018. Officially referred to as LZ-4 in FCC filings."}'
68
+ http_version:
69
+ recorded_at: Wed, 02 Oct 2019 02:34:40 GMT
70
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,104 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/launchpads/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.16.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
+ - Wed, 02 Oct 2019 01:14:07 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=da830d2d8f160129e4ad12af7bfdb29561569978847; expires=Thu, 01-Oct-20
31
+ 01:14:07 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ X-Dns-Prefetch-Control:
33
+ - 'off'
34
+ X-Frame-Options:
35
+ - SAMEORIGIN
36
+ Strict-Transport-Security:
37
+ - max-age=15552000; includeSubDomains
38
+ X-Download-Options:
39
+ - noopen
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ X-Xss-Protection:
43
+ - 1; mode=block
44
+ Vary:
45
+ - Origin
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ Access-Control-Expose-Headers:
49
+ - spacex-api-cache,spacex-api-count,spacex-api-response-time
50
+ Spacex-Api-Cache:
51
+ - HIT
52
+ Spacex-Api-Count:
53
+ - '6'
54
+ Spacex-Api-Response-Time:
55
+ - 1ms
56
+ Expect-Ct:
57
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
58
+ Server:
59
+ - cloudflare
60
+ Cf-Ray:
61
+ - 51f2d1570f89e0aa-IAD
62
+ body:
63
+ encoding: ASCII-8BIT
64
+ string: '[{"id":5,"name":"VAFB SLC 3W","status":"retired","location":{"name":"Vandenberg
65
+ Air Force Base","region":"California","latitude":34.6440904,"longitude":-120.5931438},"vehicles_launched":["Falcon
66
+ 1"],"attempted_launches":0,"successful_launches":0,"wikipedia":"https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Complex_3","details":"SpaceX
67
+ original west coast launch pad for Falcon 1. Performed a static fire but was
68
+ never used for a launch and abandoned due to scheduling conflicts.","site_id":"vafb_slc_3w","site_name_long":"Vandenberg
69
+ Air Force Base Space Launch Complex 3W"},{"id":2,"name":"CCAFS SLC 40","status":"active","location":{"name":"Cape
70
+ Canaveral","region":"Florida","latitude":28.5618571,"longitude":-80.577366},"vehicles_launched":["Falcon
71
+ 9"],"attempted_launches":45,"successful_launches":43,"wikipedia":"https://en.wikipedia.org/wiki/Cape_Canaveral_Air_Force_Station_Space_Launch_Complex_40","details":"SpaceX
72
+ primary Falcon 9 launch pad, where all east coast Falcon 9s launched prior
73
+ to the AMOS-6 anomaly. Initially used to launch Titan rockets for Lockheed
74
+ Martin. Back online since CRS-13 on 2017-12-15.","site_id":"ccafs_slc_40","site_name_long":"Cape
75
+ Canaveral Air Force Station Space Launch Complex 40"},{"id":8,"name":"STLS","status":"under
76
+ construction","location":{"name":"Boca Chica Village","region":"Texas","latitude":25.9972641,"longitude":-97.1560845},"vehicles_launched":["Falcon
77
+ 9"],"attempted_launches":0,"successful_launches":0,"wikipedia":"https://en.wikipedia.org/wiki/SpaceX_South_Texas_Launch_Site","details":"SpaceX
78
+ new launch site currently under construction to help keep up with the Falcon
79
+ 9 and Heavy manifests. Expected to be completed in late 2018. Initially will
80
+ be limited to 12 flights per year, and only GTO launches.","site_id":"stls","site_name_long":"SpaceX
81
+ South Texas Launch Site"},{"id":1,"name":"Kwajalein Atoll","status":"retired","location":{"name":"Omelek
82
+ Island","region":"Marshall Islands","latitude":9.0477206,"longitude":167.7431292},"vehicles_launched":["Falcon
83
+ 1"],"attempted_launches":5,"successful_launches":2,"wikipedia":"https://en.wikipedia.org/wiki/Omelek_Island","details":"SpaceX
84
+ original launch site, where all of the Falcon 1 launches occured. Abandoned
85
+ as SpaceX decided against upgrading the pad to support Falcon 9.","site_id":"kwajalein_atoll","site_name_long":"Kwajalein
86
+ Atoll Omelek Island"},{"id":6,"name":"VAFB SLC 4E","status":"active","location":{"name":"Vandenberg
87
+ Air Force Base","region":"California","latitude":34.632093,"longitude":-120.610829},"vehicles_launched":["Falcon
88
+ 9"],"attempted_launches":15,"successful_launches":15,"wikipedia":"https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Complex_4","details":"SpaceX
89
+ primary west coast launch pad for polar orbits and sun synchronous orbits,
90
+ primarily used for Iridium. Also intended to be capable of launching Falcon
91
+ Heavy.","site_id":"vafb_slc_4e","site_name_long":"Vandenberg Air Force Base
92
+ Space Launch Complex 4E"},{"id":4,"name":"KSC LC 39A","status":"active","location":{"name":"Cape
93
+ Canaveral","region":"Florida","latitude":28.6080585,"longitude":-80.6039558},"vehicles_launched":["Falcon
94
+ 9","Falcon Heavy"],"attempted_launches":18,"successful_launches":18,"wikipedia":"https://en.wikipedia.org/wiki/Kennedy_Space_Center_Launch_Complex_39#Launch_Pad_39A","details":"NASA
95
+ historic launch pad that launched most of the Saturn V and Space Shuttle missions.
96
+ Initially for Falcon Heavy launches, it is now launching all of SpaceX east
97
+ coast missions due to the damage from the AMOS-6 anomaly. After SLC-40 repairs
98
+ are complete, it will be upgraded to support Falcon Heavy, a process which
99
+ will take about two months. In the future it will launch commercial crew missions
100
+ and the Interplanetary Transport System.","site_id":"ksc_lc_39a","site_name_long":"Kennedy
101
+ Space Center Historic Launch Complex 39A"}]'
102
+ http_version:
103
+ recorded_at: Wed, 02 Oct 2019 01:14:07 GMT
104
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,71 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/launchpads/vafb_slc_4e
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.16.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
+ - Wed, 02 Oct 2019 01:26:54 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=d77218edc77d1c7147daab312fe4c4eb51569979614; expires=Thu, 01-Oct-20
31
+ 01:26:54 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ X-Dns-Prefetch-Control:
33
+ - 'off'
34
+ X-Frame-Options:
35
+ - SAMEORIGIN
36
+ Strict-Transport-Security:
37
+ - max-age=15552000; includeSubDomains
38
+ X-Download-Options:
39
+ - noopen
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ X-Xss-Protection:
43
+ - 1; mode=block
44
+ Vary:
45
+ - Origin
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ Access-Control-Expose-Headers:
49
+ - spacex-api-cache,spacex-api-count,spacex-api-response-time
50
+ Spacex-Api-Cache:
51
+ - MISS
52
+ Spacex-Api-Response-Time:
53
+ - 32ms
54
+ Expect-Ct:
55
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
56
+ Server:
57
+ - cloudflare
58
+ Cf-Ray:
59
+ - 51f2e40cebffcef0-IAD
60
+ body:
61
+ encoding: ASCII-8BIT
62
+ string: '{"id":6,"name":"VAFB SLC 4E","status":"active","location":{"name":"Vandenberg
63
+ Air Force Base","region":"California","latitude":34.632093,"longitude":-120.610829},"vehicles_launched":["Falcon
64
+ 9"],"attempted_launches":15,"successful_launches":15,"wikipedia":"https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Complex_4","details":"SpaceX
65
+ primary west coast launch pad for polar orbits and sun synchronous orbits,
66
+ primarily used for Iridium. Also intended to be capable of launching Falcon
67
+ Heavy.","site_id":"vafb_slc_4e","site_name_long":"Vandenberg Air Force Base
68
+ Space Launch Complex 4E"}'
69
+ http_version:
70
+ recorded_at: Wed, 02 Oct 2019 01:26:54 GMT
71
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe SPACEX::ApiInfo do
4
+ context '#info', vcr: { cassette_name: 'api_info/info' } do
5
+ subject do
6
+ SPACEX::ApiInfo.info
7
+ end
8
+
9
+ it 'returns API info' do
10
+ expect(subject.project_name).to eq 'SpaceX-API'
11
+ expect(subject.organization).to eq 'r/SpaceX'
12
+ expect(subject.organization_link).to eq 'https://github.com/r-spacex'
13
+ expect(subject.description).to eq 'Open Source REST API for rocket, core, capsule, pad, and launch data, created and maintained by the developers of the r/SpaceX organization'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,72 @@
1
+ require 'spec_helper'
2
+
3
+ describe SPACEX::LandingPads do
4
+ context '#info', vcr: { cassette_name: 'landing_pads/info' } do
5
+ subject do
6
+ SPACEX::LandingPads.info
7
+ end
8
+
9
+ it "returns all LandingPads' info when no id is passed" do
10
+ first_subject = subject.first
11
+
12
+ expect(subject.class).to eq Array
13
+ expect(first_subject.id).to eq 'LZ-1'
14
+ expect(first_subject.full_name).to eq 'Landing Zone 1'
15
+ expect(first_subject.status).to eq 'active'
16
+ expect(first_subject.location).to eq(
17
+ 'name' => 'Cape Canaveral',
18
+ 'region' => 'Florida',
19
+ 'latitude' => 28.485833,
20
+ 'longitude' => -80.544444
21
+ )
22
+ expect(first_subject.landing_type).to eq 'RTLS'
23
+ expect(first_subject.attempted_landings).to eq 14
24
+ expect(first_subject.successful_landings).to eq 13
25
+ expect(first_subject.wikipedia).to eq(
26
+ 'https://en.wikipedia.org/wiki/Landing_Zones_1_and_2'
27
+ )
28
+ expect(first_subject.details).to eq(
29
+ "SpaceX's first east coast landing pad is Landing Zone 1, " \
30
+ 'where the historic first Falcon 9 landing occurred in December 2015.' \
31
+ ' LC-13 was originally used as a launch pad for early Atlas missiles ' \
32
+ 'and rockets from Lockheed Martin. LC-1 was later expanded to ' \
33
+ 'include Landing Zone 2 for side booster RTLS Falcon Heavy missions, ' \
34
+ 'and it was first used in February 2018 for that purpose.'
35
+ )
36
+ end
37
+ end
38
+
39
+ context "#info('LZ-4')", vcr: { cassette_name: 'landing_pads/info/LZ-4' } do
40
+ subject do
41
+ SPACEX::LandingPads.info('LZ-4')
42
+ end
43
+
44
+ it 'returns LandingPad info for "LZ-4"' do
45
+ expect(subject.class).to eq SPACEX::Response
46
+ expect(subject.id).to eq 'LZ-4'
47
+ expect(subject.full_name).to eq 'Landing Zone 4'
48
+ expect(subject.status).to eq 'active'
49
+ expect(subject.location).to eq(
50
+ 'name' => 'Vandenberg Air Force Base',
51
+ 'region' => 'California',
52
+ 'latitude' => 34.632989,
53
+ 'longitude' => -120.615167
54
+ )
55
+ expect(subject.landing_type).to eq 'RTLS'
56
+ expect(subject.attempted_landings).to eq 2
57
+ expect(subject.successful_landings).to eq 2
58
+ expect(subject.wikipedia).to eq(
59
+ 'https://en.wikipedia.org/wiki/' \
60
+ 'Vandenberg_AFB_Space_Launch_Complex_4#LZ-4_landing_history'
61
+ )
62
+ expect(subject.details).to eq(
63
+ "SpaceX's west coast landing pad. The pad is adjacent to SLC-4E, " \
64
+ "SpaceX's west coast launch site. The pad was under construction for " \
65
+ 'about a year starting in 2016. ' \
66
+ 'After concerns with seal mating season, this pad was first used for ' \
67
+ 'the SAOCOM 1A mission in October 2018. ' \
68
+ 'Officially referred to as LZ-4 in FCC filings.'
69
+ )
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,77 @@
1
+ require 'spec_helper'
2
+
3
+ describe SPACEX::LaunchPads do
4
+ context '#info', vcr: { cassette_name: 'launch_pads/info' } do
5
+ subject do
6
+ SPACEX::LaunchPads.info
7
+ end
8
+
9
+ it "returns all LaunchPads' info when no id is passed" do
10
+ first_subject = subject.first
11
+
12
+ expect(subject.class).to eq Array
13
+ expect(first_subject.id).to eq 5
14
+ expect(first_subject.name).to eq 'VAFB SLC 3W'
15
+ expect(first_subject.status).to eq 'retired'
16
+ expect(first_subject.location).to eq(
17
+ 'name' => 'Vandenberg Air Force Base',
18
+ 'region' => 'California',
19
+ 'latitude' => 34.6440904,
20
+ 'longitude' => -120.5931438
21
+ )
22
+ expect(first_subject.vehicles_launched).to eq [
23
+ 'Falcon 1'
24
+ ]
25
+ expect(first_subject.attempted_launches).to eq 0
26
+ expect(first_subject.successful_launches).to eq 0
27
+ expect(first_subject.wikipedia).to eq(
28
+ 'https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Complex_3'
29
+ )
30
+ expect(first_subject.details).to eq 'SpaceX original ' \
31
+ 'west coast launch pad for Falcon 1. Performed a static fire but was ' \
32
+ 'never used for a launch and abandoned due to scheduling conflicts.'
33
+ expect(first_subject.site_id).to eq 'vafb_slc_3w'
34
+ expect(first_subject.site_name_long).to eq(
35
+ 'Vandenberg Air Force Base Space Launch Complex 3W'
36
+ )
37
+ end
38
+ end
39
+
40
+ context "#info('vafb_slc_4e')", vcr: {
41
+ cassette_name: 'launch_pads/info/vafb_slc_4e'
42
+ } do
43
+ subject do
44
+ SPACEX::LaunchPads.info('vafb_slc_4e')
45
+ end
46
+
47
+ it 'returns LaunchPad info for "vafb_slc_4e"' do
48
+ expect(subject.class).to eq SPACEX::Response
49
+ expect(subject.id).to eq 6
50
+ expect(subject.name).to eq 'VAFB SLC 4E'
51
+ expect(subject.status).to eq 'active'
52
+ expect(subject.location).to eq(
53
+ 'name' => 'Vandenberg Air Force Base',
54
+ 'region' => 'California',
55
+ 'latitude' => 34.632093,
56
+ 'longitude' => -120.610829
57
+ )
58
+ expect(subject.vehicles_launched).to eq [
59
+ 'Falcon 9'
60
+ ]
61
+ expect(subject.attempted_launches).to eq 15
62
+ expect(subject.successful_launches).to eq 15
63
+ expect(subject.wikipedia).to eq(
64
+ 'https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Complex_4'
65
+ )
66
+
67
+ expect(subject.details).to eq 'SpaceX primary ' \
68
+ 'west coast launch pad for polar orbits and sun synchronous orbits, ' \
69
+ 'primarily used for Iridium. Also intended to be capable of ' \
70
+ 'launching Falcon Heavy.'
71
+ expect(subject.site_id).to eq 'vafb_slc_4e'
72
+ expect(subject.site_name_long).to eq(
73
+ 'Vandenberg Air Force Base Space Launch Complex 4E'
74
+ )
75
+ end
76
+ end
77
+ end
@@ -406,8 +406,7 @@ describe SPACEX::Launches do
406
406
 
407
407
  it 'returns launches scheduled in the future' do
408
408
  subject.each do |launch|
409
- expect(launch.launch_year).to be >= Time.now.year.to_s
410
- expect(Time.parse(launch.launch_date_utc)).to be >= Time.now.utc
409
+ expect(launch.launch_year.to_i).to be >= 2018
411
410
  expect(launch.rocket.first_stage.cores.first.land_success).to be nil
412
411
  expect(launch.launch_success).to be nil
413
412
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spacex
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodolfo Bandeira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-04 00:00:00.000000000 Z
11
+ date: 2019-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -142,6 +142,8 @@ executables: []
142
142
  extensions: []
143
143
  extra_rdoc_files: []
144
144
  files:
145
+ - ".github/ISSUE_TEMPLATE.md"
146
+ - ".github/PULL_REQUEST_TEMPLATE.md"
145
147
  - ".gitignore"
146
148
  - ".rspec"
147
149
  - ".rubocop.yml"
@@ -155,6 +157,7 @@ files:
155
157
  - README.md
156
158
  - Rakefile
157
159
  - lib/spacex.rb
160
+ - lib/spacex/api_info.rb
158
161
  - lib/spacex/base_request.rb
159
162
  - lib/spacex/capsules.rb
160
163
  - lib/spacex/company_info.rb
@@ -162,6 +165,8 @@ files:
162
165
  - lib/spacex/dragon_capsules.rb
163
166
  - lib/spacex/endpoint.rb
164
167
  - lib/spacex/history.rb
168
+ - lib/spacex/landing_pads.rb
169
+ - lib/spacex/launch_pads.rb
165
170
  - lib/spacex/launches.rb
166
171
  - lib/spacex/missions.rb
167
172
  - lib/spacex/payloads.rb
@@ -172,6 +177,7 @@ files:
172
177
  - lib/spacex/version.rb
173
178
  - rubocop.yml
174
179
  - spacex.gemspec
180
+ - spec/fixtures/spacex/api_info/info.yml
175
181
  - spec/fixtures/spacex/capsules.yml
176
182
  - spec/fixtures/spacex/capsules/C202.yml
177
183
  - spec/fixtures/spacex/company_info/info.yml
@@ -181,6 +187,10 @@ files:
181
187
  - spec/fixtures/spacex/dragon_capsules/info/dragon1.yml
182
188
  - spec/fixtures/spacex/history/info.yml
183
189
  - spec/fixtures/spacex/history/info/4.yml
190
+ - spec/fixtures/spacex/landing_pads/info.yml
191
+ - spec/fixtures/spacex/landing_pads/info/LZ-4.yml
192
+ - spec/fixtures/spacex/launch_pads/info.yml
193
+ - spec/fixtures/spacex/launch_pads/info/vafb_slc_4e.yml
184
194
  - spec/fixtures/spacex/launches.yml
185
195
  - spec/fixtures/spacex/launches/68.yml
186
196
  - spec/fixtures/spacex/launches/all.yml
@@ -199,12 +209,15 @@ files:
199
209
  - spec/fixtures/spacex/rockets/info/invalid.yml
200
210
  - spec/fixtures/spacex/ships/info.yml
201
211
  - spec/fixtures/spacex/ships/info/AMERICANCHAMPION.yml
212
+ - spec/spacex/api_info_spec.rb
202
213
  - spec/spacex/capsules_spec.rb
203
214
  - spec/spacex/company_info_spec.rb
204
215
  - spec/spacex/cores_spec.rb
205
216
  - spec/spacex/dragon_capsules_spec.rb
206
217
  - spec/spacex/endpoint_spec.rb
207
218
  - spec/spacex/history_spec.rb
219
+ - spec/spacex/landing_pads_spec.rb
220
+ - spec/spacex/launch_pads_spec.rb
208
221
  - spec/spacex/launches_spec.rb
209
222
  - spec/spacex/missions_spec.rb
210
223
  - spec/spacex/payloads_spec.rb
@@ -234,11 +247,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
247
  version: '0'
235
248
  requirements: []
236
249
  rubyforge_project:
237
- rubygems_version: 2.6.11
250
+ rubygems_version: 2.6.14.1
238
251
  signing_key:
239
252
  specification_version: 4
240
253
  summary: SpaceX API with Ruby
241
254
  test_files:
255
+ - spec/fixtures/spacex/api_info/info.yml
242
256
  - spec/fixtures/spacex/capsules.yml
243
257
  - spec/fixtures/spacex/capsules/C202.yml
244
258
  - spec/fixtures/spacex/company_info/info.yml
@@ -248,6 +262,10 @@ test_files:
248
262
  - spec/fixtures/spacex/dragon_capsules/info/dragon1.yml
249
263
  - spec/fixtures/spacex/history/info.yml
250
264
  - spec/fixtures/spacex/history/info/4.yml
265
+ - spec/fixtures/spacex/landing_pads/info.yml
266
+ - spec/fixtures/spacex/landing_pads/info/LZ-4.yml
267
+ - spec/fixtures/spacex/launch_pads/info.yml
268
+ - spec/fixtures/spacex/launch_pads/info/vafb_slc_4e.yml
251
269
  - spec/fixtures/spacex/launches.yml
252
270
  - spec/fixtures/spacex/launches/68.yml
253
271
  - spec/fixtures/spacex/launches/all.yml
@@ -266,12 +284,15 @@ test_files:
266
284
  - spec/fixtures/spacex/rockets/info/invalid.yml
267
285
  - spec/fixtures/spacex/ships/info.yml
268
286
  - spec/fixtures/spacex/ships/info/AMERICANCHAMPION.yml
287
+ - spec/spacex/api_info_spec.rb
269
288
  - spec/spacex/capsules_spec.rb
270
289
  - spec/spacex/company_info_spec.rb
271
290
  - spec/spacex/cores_spec.rb
272
291
  - spec/spacex/dragon_capsules_spec.rb
273
292
  - spec/spacex/endpoint_spec.rb
274
293
  - spec/spacex/history_spec.rb
294
+ - spec/spacex/landing_pads_spec.rb
295
+ - spec/spacex/launch_pads_spec.rb
275
296
  - spec/spacex/launches_spec.rb
276
297
  - spec/spacex/missions_spec.rb
277
298
  - spec/spacex/payloads_spec.rb