spacex 1.0.1 → 1.0.2

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 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