spacex 0.0.5 → 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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +7 -0
  3. data/.github/PULL_REQUEST_TEMPLATE.md +6 -0
  4. data/.gitignore +1 -0
  5. data/.rubocop.yml +6 -0
  6. data/.rubocop_todo.yml +9 -23
  7. data/.ruby-version +1 -1
  8. data/.travis.yml +18 -3
  9. data/CHANGELOG.md +61 -0
  10. data/CONTRIBUTING.md +37 -0
  11. data/Gemfile +4 -2
  12. data/README.md +458 -25
  13. data/lib/spacex.rb +15 -4
  14. data/lib/spacex/api_info.rb +7 -0
  15. data/lib/spacex/base_request.rb +51 -13
  16. data/lib/spacex/capsules.rb +19 -0
  17. data/lib/spacex/company_info.rb +1 -3
  18. data/lib/spacex/cores.rb +22 -0
  19. data/lib/spacex/dragon_capsules.rb +33 -0
  20. data/lib/spacex/endpoint.rb +1 -3
  21. data/lib/spacex/history.rb +7 -0
  22. data/lib/spacex/landing_pads.rb +11 -0
  23. data/lib/spacex/launch_pads.rb +11 -0
  24. data/lib/spacex/launches.rb +21 -3
  25. data/lib/spacex/missions.rb +18 -0
  26. data/lib/spacex/payloads.rb +7 -0
  27. data/lib/spacex/resource.rb +5 -0
  28. data/lib/spacex/roadster.rb +7 -0
  29. data/lib/spacex/rockets.rb +7 -0
  30. data/lib/spacex/ships.rb +33 -0
  31. data/lib/spacex/version.rb +1 -4
  32. data/spacex.gemspec +8 -8
  33. data/spec/fixtures/spacex/api_info/info.yml +65 -0
  34. data/spec/fixtures/spacex/capsules.yml +83 -0
  35. data/spec/fixtures/spacex/capsules/C202.yml +123 -0
  36. data/spec/fixtures/spacex/company_info/info.yml +75 -14
  37. data/spec/fixtures/spacex/cores.yml +62 -0
  38. data/spec/fixtures/spacex/cores/B1041.yml +123 -0
  39. data/spec/fixtures/spacex/dragon_capsules/info.yml +77 -0
  40. data/spec/fixtures/spacex/dragon_capsules/info/dragon1.yml +131 -0
  41. data/spec/fixtures/spacex/history/info.yml +62 -0
  42. data/spec/fixtures/spacex/history/info/4.yml +62 -0
  43. data/spec/fixtures/spacex/landing_pads/info.yml +68 -0
  44. data/spec/fixtures/spacex/landing_pads/info/LZ-4.yml +70 -0
  45. data/spec/fixtures/spacex/launch_pads/info.yml +104 -0
  46. data/spec/fixtures/spacex/launch_pads/info/vafb_slc_4e.yml +71 -0
  47. data/spec/fixtures/spacex/launches.yml +62 -0
  48. data/spec/fixtures/spacex/launches/68.yml +69 -0
  49. data/spec/fixtures/spacex/launches/all.yml +62 -0
  50. data/spec/fixtures/spacex/launches/info.yml +62 -0
  51. data/spec/fixtures/spacex/launches/latest.yml +8 -8
  52. data/spec/fixtures/spacex/launches/next.yml +123 -0
  53. data/spec/fixtures/spacex/launches/past.yml +62 -0
  54. data/spec/fixtures/spacex/launches/upcoming.yml +64 -0
  55. data/spec/fixtures/spacex/missions/F3364BF.yml +157 -0
  56. data/spec/fixtures/spacex/missions/info.yml +62 -0
  57. data/spec/fixtures/spacex/payloads/RatSat.yml +62 -0
  58. data/spec/fixtures/spacex/payloads/info.yml +62 -0
  59. data/spec/fixtures/spacex/roadster/info.yml +133 -0
  60. data/spec/fixtures/spacex/rockets/info.yml +105 -0
  61. data/spec/fixtures/spacex/rockets/info/falcon1.yml +139 -0
  62. data/spec/fixtures/spacex/rockets/info/invalid.yml +61 -0
  63. data/spec/fixtures/spacex/ships/info.yml +139 -0
  64. data/spec/fixtures/spacex/ships/info/AMERICANCHAMPION.yml +125 -0
  65. data/spec/spacex/api_info_spec.rb +16 -0
  66. data/spec/spacex/capsules_spec.rb +38 -0
  67. data/spec/spacex/company_info_spec.rb +3 -5
  68. data/spec/spacex/cores_spec.rb +45 -0
  69. data/spec/spacex/dragon_capsules_spec.rb +107 -0
  70. data/spec/spacex/endpoint_spec.rb +9 -0
  71. data/spec/spacex/history_spec.rb +50 -0
  72. data/spec/spacex/landing_pads_spec.rb +72 -0
  73. data/spec/spacex/launch_pads_spec.rb +77 -0
  74. data/spec/spacex/launches_spec.rb +580 -16
  75. data/spec/spacex/missions_spec.rb +35 -0
  76. data/spec/spacex/payloads_spec.rb +62 -0
  77. data/spec/spacex/roadster_spec.rb +36 -0
  78. data/spec/spacex/rockets_spec.rb +210 -0
  79. data/spec/spacex/ships_spec.rb +65 -0
  80. data/spec/spacex/version_spec.rb +1 -3
  81. data/spec/spec_helper.rb +9 -0
  82. metadata +140 -23
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/rockets/invalid
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.3
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: 404
19
+ message: Not Found
20
+ headers:
21
+ Date:
22
+ - Fri, 12 Oct 2018 02:59: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=d64b40402217803e462c3cd3b6aad69261539313190; expires=Sat, 12-Oct-19
31
+ 02:59:50 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ Vary:
33
+ - Accept-Encoding, Origin
34
+ X-Dns-Prefetch-Control:
35
+ - 'off'
36
+ X-Frame-Options:
37
+ - SAMEORIGIN
38
+ Strict-Transport-Security:
39
+ - max-age=15552000; includeSubDomains
40
+ X-Download-Options:
41
+ - noopen
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ X-Xss-Protection:
45
+ - 1; mode=block
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ X-Response-Time:
49
+ - 42ms
50
+ Expect-Ct:
51
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
52
+ Server:
53
+ - cloudflare
54
+ Cf-Ray:
55
+ - 46865010ac54c181-IAD
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: '{"error":"Not Found"}'
59
+ http_version:
60
+ recorded_at: Fri, 12 Oct 2018 02:59:50 GMT
61
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,139 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/ships/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.3
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
+ - Mon, 15 Oct 2018 03:46:32 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=de80892177236026a57f27564aa9dfdaa1539575191; expires=Tue, 15-Oct-19
31
+ 03:46:31 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ Vary:
33
+ - Accept-Encoding, Origin
34
+ X-Dns-Prefetch-Control:
35
+ - 'off'
36
+ X-Frame-Options:
37
+ - SAMEORIGIN
38
+ Strict-Transport-Security:
39
+ - max-age=15552000; includeSubDomains
40
+ X-Download-Options:
41
+ - noopen
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ X-Xss-Protection:
45
+ - 1; mode=block
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ X-Response-Time:
49
+ - 79ms
50
+ Expect-Ct:
51
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
52
+ Server:
53
+ - cloudflare
54
+ Cf-Ray:
55
+ - 469f4c957a655747-IAD
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: '[{"ship_id":"AMERICANCHAMPION","ship_name":"American Champion","ship_model":null,"ship_type":"Tug","roles":["Support
59
+ Ship","Barge Tug"],"active":false,"imo":7434016,"mmsi":367020820,"abs":571252,"class":7604342,"weight_lbs":588000,"weight_kg":266712,"year_built":1976,"home_port":"Port
60
+ of Los Angeles","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":30.5276,"longitude":-88.10261},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"COTS
61
+ 1","flight":7},{"name":"COTS 2","flight":8}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:434663/vessel:AMERICAN%20CHAMPION","image":"https://i.imgur.com/woCxpkj.jpg"},{"ship_id":"AMERICANISLANDER","ship_name":"American
62
+ Islander","ship_model":null,"ship_type":"Cargo","roles":["Dragon Recovery"],"active":false,"imo":null,"mmsi":367035570,"abs":null,"class":null,"weight_lbs":null,"weight_kg":null,"year_built":null,"home_port":"Port
63
+ of Los Angeles","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":33.73421,"longitude":-118.2635},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"CRS-1","flight":9},{"name":"CRS-2","flight":10},{"name":"CRS-3","flight":14},{"name":"CRS-4","flight":18}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:435112/vessel:AMERICAN%20ISLANDER","image":"https://i.imgur.com/jmj8Sh2.jpg"},{"ship_id":"AMERICANSPIRIT","ship_name":"American
64
+ Spirit","ship_model":null,"ship_type":"Cargo","roles":["Support Ship"],"active":false,"imo":null,"mmsi":null,"abs":null,"class":null,"weight_lbs":null,"weight_kg":null,"year_built":null,"home_port":"Port
65
+ of Los Angeles","status":null,"speed_kn":null,"course_deg":null,"position":{"latitude":null,"longitude":null},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"CASSIOPE","flight":11}],"url":null,"image":null},{"ship_id":"ASOG","ship_name":"A
66
+ Shortfall of Gravitas","ship_model":null,"ship_type":"Barge","roles":["ASDS
67
+ barge"],"active":false,"imo":null,"abs":null,"mmsi":null,"class":null,"weight_lbs":null,"weight_kg":null,"year_built":null,"home_port":"Port
68
+ Canaveral","status":null,"speed_kn":null,"course_deg":null,"position":{"latitude":null,"longitude":null},"successful_landings":null,"attempted_landings":null,"missions":[],"url":null,"image":null},{"ship_id":"BETTYRGAMBARELLA","ship_name":"Betty
69
+ R Gambarella","ship_model":null,"ship_type":"Tug","roles":["ASDS Tug"],"active":false,"imo":7517478,"mmsi":368000890,"abs":562590,"class":7427463,"weight_lbs":446000,"weight_kg":202302,"year_built":1974,"home_port":"Port
70
+ of Los Angeles","status":"Towing Astern","speed_kn":0,"course_deg":null,"position":{"latitude":33.77161,"longitude":-118.2121},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"FormoSat-5","flight":46},{"name":"Iridium
71
+ NEXT Mission 3","flight":48}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:428415/vessel:BETTY%20R%20GAMBARELLA","image":"https://i.imgur.com/ngYgFnn.jpg"},{"ship_id":"ELSBETH3","ship_name":"Elsbeth
72
+ III","ship_model":null,"ship_type":"Tug","roles":["ASDS Tug"],"active":false,"imo":8983375,"mmsi":367017460,"abs":null,"class":null,"weight_lbs":602000,"weight_kg":273063,"year_built":1999,"home_port":"Port
73
+ Canaveral","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":29.6608,"longitude":-91.09957},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"CRS-5","flight":19},{"name":"DSCOVR","flight":20},{"name":"CRS-6","flight":22},{"name":"CRS-7","flight":24},{"name":"SES-9","flight":27},{"name":"CRS-8","flight":28},{"name":"JCSAT-2B","flight":29},{"name":"Thaicom
74
+ 8","flight":30},{"name":"ABS-2A / Eutelsat 117W B","flight":31},{"name":"CRS-9","flight":32},{"name":"JCSAT-16","flight":33},{"name":"SES-10","flight":38},{"name":"BulgariaSat-1","flight":42},{"name":"Boeing
75
+ X-37B OTV 5","flight":47}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:434560/vessel:ELSBETH%20III","image":"https://i.imgur.com/1s5DUbJ.jpg"},{"ship_id":"GONAVIGATOR","ship_name":"GO
76
+ Navigator","ship_model":null,"ship_type":"Cargo","roles":["Support Ship","Fairing
77
+ Recovery"],"active":true,"imo":9566887,"mmsi":367550000,"abs":1221524,"class":9204358,"weight_lbs":996000,"weight_kg":451778,"year_built":2009,"home_port":"Port
78
+ Canaveral","status":"Moored","speed_kn":0,"course_deg":null,"position":{"latitude":28.41315,"longitude":-80.62064},"successful_landings":null,"attempted_landings":null,"missions":[],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:452540/vessel:GO%20NAVIGATOR","image":"https://i.imgur.com/MjNWzhO.jpg"},{"ship_id":"GOPURSUIT","ship_name":"GO
79
+ Pursuit","ship_model":null,"ship_type":"Cargo","roles":["Support Ship","Fairing
80
+ Recovery"],"active":false,"imo":9458884,"mmsi":367191410,"abs":1201189,"class":7174230,"weight_lbs":1108925,"weight_kg":502999,"year_built":2007,"home_port":"Port
81
+ Canaveral","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":29.11541,"longitude":-90.20965},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"TESS","flight":60},{"name":"Bangabandhu-1","flight":61},{"name":"SES-12","flight":63},{"name":"Telstar
82
+ 19V","flight":65}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:439594/vessel:GO%20PURSUIT","image":"https://i.imgur.com/5w1ZWre.jpg"},{"ship_id":"GOQUEST","ship_name":"GO
83
+ Quest","ship_model":null,"ship_type":"Cargo","roles":["Support Ship"],"active":true,"imo":1155515,"mmsi":367564890,"abs":null,"class":null,"weight_lbs":null,"weight_kg":null,"year_built":2014,"home_port":"Port
84
+ Canaveral","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":28.40891,"longitude":-80.61788},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"CRS-5","flight":19},{"name":"DSCOVR","flight":20},{"name":"CRS-6","flight":22},{"name":"CRS-7","flight":24},{"name":"SES-9","flight":27},{"name":"CRS-8","flight":28},{"name":"JCSAT-2B","flight":29},{"name":"Thaicom
85
+ 8","flight":30},{"name":"ABS-2A / Eutelsat 117W B","flight":31},{"name":"CRS-9","flight":32},{"name":"JCSAT-16","flight":33},{"name":"SES-10","flight":38},{"name":"BulgariaSat-1","flight":42},{"name":"Boeing
86
+ X-37B OTV 5","flight":47},{"name":"SES-11 / Echostar 105","flight":49},{"name":"SES-16
87
+ / GovSat-1","flight":54},{"name":"TESS","flight":60},{"name":"Bangabandhu-1","flight":61},{"name":"Telstar
88
+ 19V","flight":65},{"name":"Telstar 18V","flight":68}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:450521/vessel:GO%20QUEST","image":"https://i.imgur.com/ABXtHKa.jpg"},{"ship_id":"GOSEARCHER","ship_name":"GO
89
+ Searcher","ship_model":null,"ship_type":"Cargo","roles":["Support Ship","Fairing
90
+ Recovery"],"active":true,"imo":9591648,"mmsi":366584000,"abs":1226876,"class":10204360,"weight_lbs":994000,"weight_kg":450870,"year_built":2010,"home_port":"Port
91
+ Canaveral","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":28.41313,"longitude":-80.62058},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"CRS-5","flight":19},{"name":"DSCOVR","flight":20},{"name":"CRS-6","flight":22},{"name":"CRS-7","flight":24},{"name":"SES-9","flight":27},{"name":"CRS-8","flight":28},{"name":"JCSAT-2B","flight":29},{"name":"Thaicom
92
+ 8","flight":30},{"name":"ABS-2A / Eutelsat 117W B","flight":31},{"name":"CRS-9","flight":32},{"name":"JCSAT-16","flight":33},{"name":"SES-10","flight":38},{"name":"NROL-76","flight":39},{"name":"BulgariaSat-1","flight":42},{"name":"Falcon
93
+ Heavy Test Flight","flight":55}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:426008/vessel:GO%20SEARCHER","image":"https://i.imgur.com/X4YQJZf.jpg"},{"ship_id":"HAWK","ship_name":"HAWK","ship_model":null,"ship_type":"Tug","roles":["ASDS
94
+ Tug"],"active":true,"imo":9103295,"mmsi":366943250,"abs":1033239,"class":9523438,"weight_lbs":1120000,"weight_kg":508023,"year_built":1995,"home_port":"Port
95
+ Canaveral","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":26.08241,"longitude":-80.11564},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"SES-11
96
+ / Echostar 105","flight":49},{"name":"KoreaSat 5A","flight":50},{"name":"Falcon
97
+ Heavy Test Flight","flight":55},{"name":"TESS","flight":60},{"name":"Telstar
98
+ 19V","flight":65},{"name":"Merah Putih","flight":67},{"name":"Telstar 18V","flight":68}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:430027/vessel:HAWK","image":"https://i.imgur.com/hGWWupT.jpg"},{"ship_id":"JRTI-1","ship_name":"Just
99
+ Read The Instructions","ship_model":"Marmac 300","ship_type":"Barge","roles":["ASDS
100
+ barge"],"active":false,"imo":null,"mmsi":null,"abs":null,"class":null,"weight_lbs":null,"weight_kg":null,"year_built":2014,"home_port":"Port
101
+ Canaveral","status":null,"speed_kn":null,"course_deg":null,"position":{"latitude":null,"longitude":null},"successful_landings":0,"attempted_landings":2,"missions":[{"name":"CRS-5","flight":19},{"name":"CRS-6","flight":22}],"url":null,"image":"https://i.imgur.com/RJPmP8G.jpg"},{"ship_id":"JRTI-2","ship_name":"Just
102
+ Read The Instructions","ship_model":"Marmac 303","ship_type":"Barge","roles":["ASDS
103
+ barge"],"active":true,"imo":null,"mmsi":null,"abs":null,"class":null,"weight_lbs":null,"weight_kg":null,"year_built":2015,"home_port":"Port
104
+ of Los Angeles","status":null,"speed_kn":null,"course_deg":null,"position":{"latitude":null,"longitude":null},"successful_landings":5,"attempted_landings":6,"missions":[{"name":"Jason-3","flight":26},{"name":"Iridium
105
+ NEXT Mission 1","flight":35},{"name":"Iridium NEXT Mission 2","flight":43},{"name":"FormoSat-5","flight":46},{"name":"Iridium
106
+ NEXT Mission 3","flight":48},{"name":"Iridium Next Mission 7","flight":66}],"url":null,"image":"https://i.imgur.com/7VMC0Gn.jpg"},{"ship_id":"KELLYC","ship_name":"Kelly
107
+ C","ship_model":null,"ship_type":"Tug","roles":["ASDS Tug"],"active":false,"imo":null,"mmsi":367693690,"abs":null,"class":null,"weight_lbs":null,"weight_kg":null,"year_built":null,"home_port":"Port
108
+ of Los Angeles","status":"Moored","speed_kn":0,"course_deg":null,"position":{"latitude":33.77168,"longitude":-118.2117},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"Iridium
109
+ NEXT Mission 2","flight":43}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:3718707/vessel:KELLY%20C","image":null},{"ship_id":"MRSTEVEN","ship_name":"MR
110
+ STEVEN","ship_model":null,"ship_type":"High Speed Craft","roles":["Fairing
111
+ Recovery"],"active":true,"imo":9744465,"mmsi":338358000,"abs":1249191,"class":15252765,"weight_lbs":992000,"weight_kg":449964,"year_built":2015,"home_port":"Port
112
+ of Los Angeles","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":33.73134,"longitude":-118.2712},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"KoreaSat
113
+ 5A","flight":50},{"name":"Paz / Starlink Demo","flight":56},{"name":"Iridium
114
+ NEXT Mission 4","flight":52},{"name":"Iridium NEXT Mission 6","flight":62},{"name":"Iridium
115
+ Next Mission 7","flight":66}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:3439091/vessel:MR%20STEVEN","image":"https://i.imgur.com/MtEgYbY.jpg"},{"ship_id":"NRCQUEST","ship_name":"NRC
116
+ Quest","ship_model":null,"ship_type":"Cargo","roles":["Support Ship","Dragon
117
+ Recovery"],"active":true,"imo":9271195,"mmsi":367486370,"abs":1134613,"class":2115909,"weight_lbs":972000,"weight_kg":440892,"year_built":2002,"home_port":"Port
118
+ of Los Angeles","status":"Moored","speed_kn":0,"course_deg":null,"position":{"latitude":33.72065,"longitude":-118.2744},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"CRS-5","flight":19},{"name":"CRS-6","flight":22},{"name":"Jason-3","flight":26},{"name":"CRS-8","flight":28},{"name":"CRS-9","flight":32},{"name":"Iridium
119
+ NEXT Mission 1","flight":35},{"name":"CRS-10","flight":36},{"name":"Iridium
120
+ NEXT Mission 2","flight":43},{"name":"CRS-11","flight":41},{"name":"CRS-12","flight":45},{"name":"CRS-13","flight":51},{"name":"CRS-14","flight":59},{"name":"Iridium
121
+ Next Mission 7","flight":66},{"name":"CRS-15","flight":64}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:447294/vessel:NRC%20QUEST","image":"https://i.imgur.com/GvtuYUN.jpg"},{"ship_id":"OCISLY","ship_name":"Of
122
+ Course I Still Love You","ship_model":"Marmac 304","ship_type":"Barge","roles":["ASDS
123
+ barge"],"active":true,"imo":null,"mmsi":null,"abs":null,"class":null,"weight_lbs":null,"weight_kg":null,"year_built":2015,"home_port":"Port
124
+ Canaveral","status":null,"speed_kn":null,"course_deg":null,"position":{"latitude":null,"longitude":null},"successful_landings":13,"attempted_landings":16,"missions":[{"name":"SES-9","flight":27},{"name":"CRS-8","flight":28},{"name":"JCSAT-2B","flight":29},{"name":"Thaicom
125
+ 8","flight":30},{"name":"ABS-2A / Eutelsat 117W B","flight":31},{"name":"JCSAT-16","flight":33},{"name":"SES-10","flight":38},{"name":"BulgariaSat-1","flight":42},{"name":"SES-11
126
+ / Echostar 105","flight":49},{"name":"KoreaSat 5A","flight":50},{"name":"Falcon
127
+ Heavy Test Flight","flight":55},{"name":"TESS","flight":60},{"name":"Bangabandhu-1","flight":61},{"name":"Telstar
128
+ 19V","flight":65},{"name":"Merah Putih","flight":67},{"name":"Telstar 18V","flight":68}],"url":null,"image":"https://i.imgur.com/28dCx6G.jpg"},{"ship_id":"PACIFICFREEDOM","ship_name":"Pacific
129
+ Freeedom","ship_model":null,"ship_type":"Tug","roles":["ASDS Tug"],"active":true,"imo":null,"mmsi":367639830,"abs":570902,"class":7602544,"weight_lbs":198000,"weight_kg":89811,"year_built":1976,"home_port":"Port
130
+ of Los Angeles","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":32.69493,"longitude":-117.1509},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"Jason-3","flight":26},{"name":"Iridium
131
+ Next Mission 7","flight":66}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:4249791/vessel:PACIFIC%20FREEDOM","image":"https://i.imgur.com/eJWx70Z.jpg"},{"ship_id":"PACIFICWARRIOR","ship_name":"Pacific
132
+ Warrior","ship_model":null,"ship_type":"Tug","roles":["ASDS Tug"],"active":false,"imo":7641384,"mmsi":367008820,"abs":566282,"class":7434575,"weight_lbs":774000,"weight_kg":351080,"year_built":1974,"home_port":"Port
133
+ of Los Angeles","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":37.77477,"longitude":-122.3837},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"Iridium
134
+ NEXT Mission 1","flight":35}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:434121/vessel:PACIFIC%20WARRIOR","image":"https://i.imgur.com/qdNDmYs.jpg"},{"ship_id":"RACHEL","ship_name":"RACHEL","ship_model":null,"ship_type":"Tug","roles":["ASDS
135
+ Tug"],"active":false,"imo":7600378,"mmsi":367488370,"abs":576417,"class":7611785,"weight_lbs":688000,"weight_kg":312072,"year_built":1976,"home_port":"Port
136
+ Canaveral","status":"Underway Using Engine","speed_kn":5.7,"course_deg":256,"position":{"latitude":29.67117,"longitude":-91.13429},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"Bangabandhu-1","flight":61}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:447352/vessel:RACHEL","image":"https://i.imgur.com/IpYJWUW.jpg"}]'
137
+ http_version:
138
+ recorded_at: Mon, 15 Oct 2018 03:46:32 GMT
139
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,125 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/ships/AMERICANCHAMPION
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.3
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
+ - Fri, 05 Oct 2018 19:00:12 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=db633aca71c38e51c176c604f9807a8081538766012; expires=Sat, 05-Oct-19
31
+ 19:00:12 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ Vary:
33
+ - Accept-Encoding, Origin
34
+ X-Dns-Prefetch-Control:
35
+ - 'off'
36
+ X-Frame-Options:
37
+ - SAMEORIGIN
38
+ Strict-Transport-Security:
39
+ - max-age=15552000; includeSubDomains
40
+ X-Download-Options:
41
+ - noopen
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ X-Xss-Protection:
45
+ - 1; mode=block
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ X-Response-Time:
49
+ - 37ms
50
+ Expect-Ct:
51
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
52
+ Server:
53
+ - cloudflare
54
+ Cf-Ray:
55
+ - 46522137ff1354d4-ORD
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: '{"ship_id":"AMERICANCHAMPION","ship_name":"American Champion","ship_model":null,"ship_type":"Tug","roles":["Support
59
+ Ship","Barge Tug"],"active":false,"imo":7434016,"mmsi":367020820,"abs":571252,"class":7604342,"weight_lbs":588000,"weight_kg":266712,"year_built":1976,"home_port":"Port
60
+ of Los Angeles","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":30.52852,"longitude":-88.09869},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"COTS
61
+ 1","flight":7},{"name":"COTS 2","flight":8}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:434663/vessel:AMERICAN%20CHAMPION","image":"https://i.imgur.com/woCxpkj.jpg"}'
62
+ http_version:
63
+ recorded_at: Fri, 05 Oct 2018 19:00:12 GMT
64
+ - request:
65
+ method: get
66
+ uri: https://api.spacexdata.com/v3/ships/AMERICANCHAMPION
67
+ body:
68
+ encoding: US-ASCII
69
+ string: ''
70
+ headers:
71
+ User-Agent:
72
+ - Faraday v0.15.3
73
+ Accept-Encoding:
74
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
75
+ Accept:
76
+ - "*/*"
77
+ response:
78
+ status:
79
+ code: 200
80
+ message: OK
81
+ headers:
82
+ Date:
83
+ - Thu, 11 Oct 2018 03:02:44 GMT
84
+ Content-Type:
85
+ - application/json; charset=utf-8
86
+ Transfer-Encoding:
87
+ - chunked
88
+ Connection:
89
+ - keep-alive
90
+ Set-Cookie:
91
+ - __cfduid=d437fef05110b7e6103aa3da28aa498611539226964; expires=Fri, 11-Oct-19
92
+ 03:02:44 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
93
+ Vary:
94
+ - Accept-Encoding, Origin
95
+ X-Dns-Prefetch-Control:
96
+ - 'off'
97
+ X-Frame-Options:
98
+ - SAMEORIGIN
99
+ Strict-Transport-Security:
100
+ - max-age=15552000; includeSubDomains
101
+ X-Download-Options:
102
+ - noopen
103
+ X-Content-Type-Options:
104
+ - nosniff
105
+ X-Xss-Protection:
106
+ - 1; mode=block
107
+ Access-Control-Allow-Origin:
108
+ - "*"
109
+ X-Response-Time:
110
+ - 48ms
111
+ Expect-Ct:
112
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
113
+ Server:
114
+ - cloudflare
115
+ Cf-Ray:
116
+ - 467e16ede8d55a8c-BOS
117
+ body:
118
+ encoding: ASCII-8BIT
119
+ string: '{"ship_id":"AMERICANCHAMPION","ship_name":"American Champion","ship_model":null,"ship_type":"Tug","roles":["Support
120
+ Ship","Barge Tug"],"active":false,"imo":7434016,"mmsi":367020820,"abs":571252,"class":7604342,"weight_lbs":588000,"weight_kg":266712,"year_built":1976,"home_port":"Port
121
+ of Los Angeles","status":"Stopped","speed_kn":0,"course_deg":null,"position":{"latitude":30.52758,"longitude":-88.10258},"successful_landings":null,"attempted_landings":null,"missions":[{"name":"COTS
122
+ 1","flight":7},{"name":"COTS 2","flight":8}],"url":"https://www.marinetraffic.com/en/ais/details/ships/shipid:434663/vessel:AMERICAN%20CHAMPION","image":"https://i.imgur.com/woCxpkj.jpg"}'
123
+ http_version:
124
+ recorded_at: Thu, 11 Oct 2018 03:02:44 GMT
125
+ 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,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe SPACEX::Capsules do
4
+ context '#info', vcr: { cassette_name: 'capsules' } do
5
+ subject do
6
+ SPACEX::Capsules.info
7
+ end
8
+ it 'returns an array of capsules ' do
9
+ expect(subject).to be_an Array
10
+ expect(subject.first.capsule_serial).to eq 'C201'
11
+ expect(subject.first.capsule_id).to eq 'dragon2'
12
+ expect(subject.first.status).to eq 'active'
13
+ expect(subject.first.original_launch).to eq nil
14
+ expect(subject.first.original_launch_unix).to eq nil
15
+ expect(subject.first.missions).to be_an(Array)
16
+ expect(subject.first.landings).to eq 0
17
+ expect(subject.first.type).to eq 'Dragon 2.0'
18
+ expect(subject.first.details).to start_with 'Pressure vessel used for Dragon 2 structural testing.'
19
+ end
20
+ end
21
+
22
+ context "#info('C202')", vcr: { cassette_name: 'capsules/C202' } do
23
+ subject do
24
+ SPACEX::Capsules.info('C202')
25
+ end
26
+ it 'return specific capsule details' do
27
+ expect(subject.capsule_serial).to eq 'C202'
28
+ expect(subject.capsule_id).to eq 'dragon2'
29
+ expect(subject.status).to eq 'active'
30
+ expect(subject.original_launch).to eq nil
31
+ expect(subject.original_launch_unix).to eq nil
32
+ expect(subject.missions).to be_an(Array)
33
+ expect(subject.landings).to eq 0
34
+ expect(subject.type).to eq 'Dragon 2.0'
35
+ expect(subject.details).to start_with "Capsule used to qualify Dragon 2's environmental control and life support systems."
36
+ end
37
+ end
38
+ end
@@ -1,9 +1,7 @@
1
- # frozen_string_literal: true
2
-
3
1
  require 'spec_helper'
4
2
 
5
- describe SPACEX do
6
- context 'CompanyInfo', vcr: { cassette_name: 'company_info/info' } do
3
+ describe SPACEX::CompanyInfo do
4
+ context '#info', vcr: { cassette_name: 'company_info/info' } do
7
5
  subject do
8
6
  SPACEX::CompanyInfo.info
9
7
  end
@@ -19,7 +17,7 @@ describe SPACEX do
19
17
  expect(subject.cto).to eq 'Elon Musk'
20
18
  expect(subject.coo).to eq 'Gwynne Shotwell'
21
19
  expect(subject.cto_propulsion).to eq 'Tom Mueller'
22
- expect(subject.valuation).to eq 15_000_000_000
20
+ expect(subject.valuation).to eq 27_500_000_000
23
21
  expect(subject.headquarters.address).to eq 'Rocket Road'
24
22
  expect(subject.headquarters.city).to eq 'Hawthorne'
25
23
  expect(subject.headquarters.state).to eq 'California'
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe SPACEX::Cores do
4
+ context '#info', vcr: { cassette_name: 'cores' } do
5
+ subject do
6
+ SPACEX::Cores.info
7
+ end
8
+ it 'returns an array of cores ' do
9
+ expect(subject).to be_an Array
10
+ expect(subject.first.core_serial).to eq 'B1052'
11
+ expect(subject.first.block).to eq 5
12
+ expect(subject.first.status).to eq 'active'
13
+ expect(subject.first.original_launch).to eq nil
14
+ expect(subject.first.original_launch_unix).to eq nil
15
+ expect(subject.first.missions).to be_an(Array)
16
+ expect(subject.first.rtls_attempts).to eq 0
17
+ expect(subject.first.rtls_landings).to eq 0
18
+ expect(subject.first.asds_attempts).to eq 0
19
+ expect(subject.first.asds_landings).to eq 0
20
+ expect(subject.first.water_landing).to eq false
21
+ expect(subject.first.details).to start_with 'On test stand at McGregor.'
22
+ end
23
+ end
24
+
25
+ context "#info('B1041')", vcr: { cassette_name: 'cores/B1041' } do
26
+ subject do
27
+ SPACEX::Cores.info('B1041')
28
+ end
29
+ it 'returns details of core' do
30
+ expect(subject.core_serial).to eq 'B1041'
31
+ expect(subject.block).to eq 4
32
+ expect(subject.status).to eq 'expended'
33
+ expect(subject.original_launch).to eq '2017-10-09T12:37:00.000Z'
34
+ expect(subject.original_launch_unix).to eq 1_507_552_620
35
+ expect(subject.missions[1]['name']).to eq 'Iridium NEXT Mission 5'
36
+ expect(subject.missions[1]['flight']).to eq 58
37
+ expect(subject.rtls_attempts).to eq 0
38
+ expect(subject.rtls_landings).to eq 0
39
+ expect(subject.asds_attempts).to eq 1
40
+ expect(subject.asds_landings).to eq 1
41
+ expect(subject.water_landing).to eq false
42
+ expect(subject.details).to start_with 'Will fly expendable on Iridium NEXT Mission 5'
43
+ end
44
+ end
45
+ end