amtrak 3.0.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e6f2af5819b3bc8d69a509b5424ac1642ca3225
4
- data.tar.gz: 9acdc2c34c1205a12ead90465939c796f4f0bc53
3
+ metadata.gz: 777d9e8f065d34422f498f3bbaaa471fc309dba1
4
+ data.tar.gz: 29935d5c7a3f659b2901af24b27253e39372aa2e
5
5
  SHA512:
6
- metadata.gz: 7eabdc4126fd285c7bf630de6f1678a5875a0cf5d7b7b22107f0f054176003138fa87d201393bf2d4e781ffce3ebe4bcc39a2b90e56c8216037ebcaaa2edb95b
7
- data.tar.gz: 46551c2535e81286c55a9b04a868fa667409a65a3520a608c2f72a15b7e542714e6078da05a0e9ebfbedca0f9f11d0a4bfd7bf480906f7c31e8474c8ad0baeee
6
+ metadata.gz: 5292b610e3c8e51d8ba1deb5c472084bf2f7edc29fef4fc2bd758a9d1d4a505c7dd614337f04871a144edc55407921956e2d291adb7b822ec63e327f9fca5d3c
7
+ data.tar.gz: a271a5af2c8333d491bf0517f4541d5341e2b76b0c71ce3dc5d1e2e2ef58b0e22d281f06e521c453be91413097df517611dd4a7c9ca04e458747f10c3aeeff1a
@@ -1,3 +1,4 @@
1
+ require 'date'
1
2
  require 'json'
2
3
  require 'excon'
3
4
 
@@ -35,28 +35,38 @@ module Amtrak
35
35
  date, scheduled_time = segment['originScheduledDepartureDateTime'].split('T')
36
36
  estimated_depart = segment['originEstimatedDepartureDateTime']
37
37
  _, estimated_time = estimated_depart.split('T') if estimated_depart
38
+ status = segment['originStatusComment']
38
39
 
39
40
  {
40
41
  date: date,
41
42
  scheduled_time: format_time(scheduled_time),
42
- estimated_time: format_time(estimated_time)
43
+ estimated_time: or_cancelled(format_time(estimated_time), status)
43
44
  }
44
45
  end
45
46
 
46
47
  def find_arrival_times(segment)
47
- date, scheduled_time = segment['originScheduledDepartureDateTime'].split('T')
48
- estimated_arrival = segment['originEstimatedDepartureDateTime']
48
+ date, scheduled_time = segment['destinationScheduledArrivalDateTime'].split('T')
49
+ estimated_arrival = segment['destinationEstimatedArrivalDateTime']
49
50
  _, estimated_time = estimated_arrival.split('T') if estimated_arrival
51
+ status = segment['destinationStatusComment']
50
52
 
51
53
  {
52
54
  date: date,
53
55
  scheduled_time: format_time(scheduled_time),
54
- estimated_time: format_time(estimated_time)
56
+ estimated_time: or_cancelled(format_time(estimated_time), status)
55
57
  }
56
58
  end
57
59
 
58
60
  private
59
61
 
62
+ def or_cancelled(time, status)
63
+ if status == 'Canceled'
64
+ 'Canceled'
65
+ else
66
+ time
67
+ end
68
+ end
69
+
60
70
  def format_time(time)
61
71
  return unless time
62
72
 
@@ -1,6 +1,6 @@
1
1
  module Amtrak
2
2
  # This module holds the Amtrak version
3
3
  module Version
4
- VERSION = '3.0.2'.freeze
4
+ VERSION = '3.1.0'.freeze
5
5
  end
6
6
  end
@@ -29,6 +29,22 @@ describe Amtrak::TrainParser do
29
29
  expect(output).to eq(expected)
30
30
  end
31
31
 
32
+ context 'when the train status is canceled' do
33
+ let(:document) do
34
+ File.read(File.join('spec', 'fixtures', 'json', 'canceled.json'))
35
+ end
36
+ let(:expected) do
37
+ JSON.parse(
38
+ File.read(File.join('spec', 'fixtures', 'json', '_parse_canceled.json')),
39
+ symbolize_names: true
40
+ )
41
+ end
42
+
43
+ it 'puts canceled in the time field' do
44
+ expect(output).to eq(expected)
45
+ end
46
+ end
47
+
32
48
  context 'when the train status is unavailable' do
33
49
  let(:document) do
34
50
  File.read(File.join('spec', 'fixtures', 'json', 'unavailable.json'))
@@ -7,9 +7,9 @@
7
7
  "estimated_time": "11:29 pm"
8
8
  },
9
9
  "arrival": {
10
- "date": "2017-10-11",
11
- "scheduled_time": "11:29 pm",
12
- "estimated_time": "11:29 pm"
10
+ "date": "2017-10-12",
11
+ "scheduled_time": "12:14 am",
12
+ "estimated_time": "12:11 am"
13
13
  }
14
14
  },
15
15
  {
@@ -21,8 +21,8 @@
21
21
  },
22
22
  "arrival": {
23
23
  "date": "2017-10-12",
24
- "scheduled_time": " 6:56 am",
25
- "estimated_time": " 6:56 am"
24
+ "scheduled_time": " 7:53 am",
25
+ "estimated_time": " 7:38 am"
26
26
  }
27
27
  },
28
28
  {
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "arrival": {
36
36
  "date": "2017-10-12",
37
- "scheduled_time": " 9:20 am",
37
+ "scheduled_time": " 9:56 am",
38
38
  "estimated_time": null
39
39
  }
40
40
  },
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "arrival": {
49
49
  "date": "2017-10-12",
50
- "scheduled_time": "10:17 am",
50
+ "scheduled_time": "10:59 am",
51
51
  "estimated_time": null
52
52
  }
53
53
  },
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "arrival": {
62
62
  "date": "2017-10-12",
63
- "scheduled_time": "10:53 am",
63
+ "scheduled_time": "11:34 am",
64
64
  "estimated_time": null
65
65
  }
66
66
  },
@@ -73,7 +73,7 @@
73
73
  },
74
74
  "arrival": {
75
75
  "date": "2017-10-12",
76
- "scheduled_time": "11:55 am",
76
+ "scheduled_time": "12:39 pm",
77
77
  "estimated_time": null
78
78
  }
79
79
  },
@@ -86,7 +86,7 @@
86
86
  },
87
87
  "arrival": {
88
88
  "date": "2017-10-12",
89
- "scheduled_time": "12:56 pm",
89
+ "scheduled_time": " 1:39 pm",
90
90
  "estimated_time": null
91
91
  }
92
92
  },
@@ -99,7 +99,7 @@
99
99
  },
100
100
  "arrival": {
101
101
  "date": "2017-10-12",
102
- "scheduled_time": " 2:23 pm",
102
+ "scheduled_time": " 3:09 pm",
103
103
  "estimated_time": null
104
104
  }
105
105
  },
@@ -112,7 +112,7 @@
112
112
  },
113
113
  "arrival": {
114
114
  "date": "2017-10-12",
115
- "scheduled_time": " 2:59 pm",
115
+ "scheduled_time": " 3:42 pm",
116
116
  "estimated_time": null
117
117
  }
118
118
  },
@@ -125,7 +125,7 @@
125
125
  },
126
126
  "arrival": {
127
127
  "date": "2017-10-12",
128
- "scheduled_time": " 3:47 pm",
128
+ "scheduled_time": " 4:28 pm",
129
129
  "estimated_time": null
130
130
  }
131
131
  },
@@ -138,7 +138,7 @@
138
138
  },
139
139
  "arrival": {
140
140
  "date": "2017-10-12",
141
- "scheduled_time": " 4:02 pm",
141
+ "scheduled_time": " 4:45 pm",
142
142
  "estimated_time": null
143
143
  }
144
144
  },
@@ -151,7 +151,7 @@
151
151
  },
152
152
  "arrival": {
153
153
  "date": "2017-10-12",
154
- "scheduled_time": " 5:30 pm",
154
+ "scheduled_time": " 6:23 pm",
155
155
  "estimated_time": null
156
156
  }
157
157
  },
@@ -164,7 +164,7 @@
164
164
  },
165
165
  "arrival": {
166
166
  "date": "2017-10-12",
167
- "scheduled_time": " 5:51 pm",
167
+ "scheduled_time": " 6:39 pm",
168
168
  "estimated_time": null
169
169
  }
170
170
  },
@@ -177,7 +177,7 @@
177
177
  },
178
178
  "arrival": {
179
179
  "date": "2017-10-12",
180
- "scheduled_time": " 6:54 pm",
180
+ "scheduled_time": " 7:35 pm",
181
181
  "estimated_time": null
182
182
  }
183
183
  },
@@ -190,7 +190,7 @@
190
190
  },
191
191
  "arrival": {
192
192
  "date": "2017-10-12",
193
- "scheduled_time": " 7:19 pm",
193
+ "scheduled_time": " 8:06 pm",
194
194
  "estimated_time": null
195
195
  }
196
196
  },
@@ -203,7 +203,7 @@
203
203
  },
204
204
  "arrival": {
205
205
  "date": "2017-10-12",
206
- "scheduled_time": " 7:56 pm",
206
+ "scheduled_time": " 8:40 pm",
207
207
  "estimated_time": null
208
208
  }
209
209
  },
@@ -216,7 +216,7 @@
216
216
  },
217
217
  "arrival": {
218
218
  "date": "2017-10-12",
219
- "scheduled_time": " 8:54 pm",
219
+ "scheduled_time": " 9:38 pm",
220
220
  "estimated_time": null
221
221
  }
222
222
  },
@@ -229,7 +229,7 @@
229
229
  },
230
230
  "arrival": {
231
231
  "date": "2017-10-12",
232
- "scheduled_time": " 9:16 pm",
232
+ "scheduled_time": "10:02 pm",
233
233
  "estimated_time": null
234
234
  }
235
235
  },
@@ -242,7 +242,7 @@
242
242
  },
243
243
  "arrival": {
244
244
  "date": "2017-10-12",
245
- "scheduled_time": "10:03 pm",
245
+ "scheduled_time": "10:44 pm",
246
246
  "estimated_time": null
247
247
  }
248
248
  }
@@ -7,9 +7,9 @@
7
7
  "estimated_time": "11:29 pm"
8
8
  },
9
9
  "arrival": {
10
- "date": "2017-10-11",
11
- "scheduled_time": "11:29 pm",
12
- "estimated_time": "11:29 pm"
10
+ "date": "2017-10-12",
11
+ "scheduled_time": "12:14 am",
12
+ "estimated_time": "12:11 am"
13
13
  }
14
14
  },
15
15
  {
@@ -21,8 +21,8 @@
21
21
  },
22
22
  "arrival": {
23
23
  "date": "2017-10-12",
24
- "scheduled_time": " 6:56 am",
25
- "estimated_time": " 6:56 am"
24
+ "scheduled_time": " 7:53 am",
25
+ "estimated_time": " 7:38 am"
26
26
  }
27
27
  },
28
28
  {
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "arrival": {
36
36
  "date": "2017-10-12",
37
- "scheduled_time": " 9:20 am",
37
+ "scheduled_time": " 9:56 am",
38
38
  "estimated_time": null
39
39
  }
40
40
  },
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "arrival": {
49
49
  "date": "2017-10-12",
50
- "scheduled_time": "10:17 am",
50
+ "scheduled_time": "10:59 am",
51
51
  "estimated_time": null
52
52
  }
53
53
  },
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "arrival": {
62
62
  "date": "2017-10-12",
63
- "scheduled_time": "10:53 am",
63
+ "scheduled_time": "11:34 am",
64
64
  "estimated_time": null
65
65
  }
66
66
  },
@@ -73,7 +73,7 @@
73
73
  },
74
74
  "arrival": {
75
75
  "date": "2017-10-12",
76
- "scheduled_time": "11:55 am",
76
+ "scheduled_time": "12:39 pm",
77
77
  "estimated_time": null
78
78
  }
79
79
  },
@@ -86,7 +86,7 @@
86
86
  },
87
87
  "arrival": {
88
88
  "date": "2017-10-12",
89
- "scheduled_time": "12:56 pm",
89
+ "scheduled_time": " 1:39 pm",
90
90
  "estimated_time": null
91
91
  }
92
92
  },
@@ -99,7 +99,7 @@
99
99
  },
100
100
  "arrival": {
101
101
  "date": "2017-10-12",
102
- "scheduled_time": " 2:23 pm",
102
+ "scheduled_time": " 3:09 pm",
103
103
  "estimated_time": null
104
104
  }
105
105
  },
@@ -112,7 +112,7 @@
112
112
  },
113
113
  "arrival": {
114
114
  "date": "2017-10-12",
115
- "scheduled_time": " 2:59 pm",
115
+ "scheduled_time": " 3:42 pm",
116
116
  "estimated_time": null
117
117
  }
118
118
  },
@@ -125,7 +125,7 @@
125
125
  },
126
126
  "arrival": {
127
127
  "date": "2017-10-12",
128
- "scheduled_time": " 3:47 pm",
128
+ "scheduled_time": " 4:28 pm",
129
129
  "estimated_time": null
130
130
  }
131
131
  },
@@ -138,7 +138,7 @@
138
138
  },
139
139
  "arrival": {
140
140
  "date": "2017-10-12",
141
- "scheduled_time": " 4:02 pm",
141
+ "scheduled_time": " 4:45 pm",
142
142
  "estimated_time": null
143
143
  }
144
144
  },
@@ -151,7 +151,7 @@
151
151
  },
152
152
  "arrival": {
153
153
  "date": "2017-10-12",
154
- "scheduled_time": " 5:30 pm",
154
+ "scheduled_time": " 6:23 pm",
155
155
  "estimated_time": null
156
156
  }
157
157
  },
@@ -164,7 +164,7 @@
164
164
  },
165
165
  "arrival": {
166
166
  "date": "2017-10-12",
167
- "scheduled_time": " 5:51 pm",
167
+ "scheduled_time": " 6:39 pm",
168
168
  "estimated_time": null
169
169
  }
170
170
  },
@@ -177,7 +177,7 @@
177
177
  },
178
178
  "arrival": {
179
179
  "date": "2017-10-12",
180
- "scheduled_time": " 6:54 pm",
180
+ "scheduled_time": " 7:35 pm",
181
181
  "estimated_time": null
182
182
  }
183
183
  },
@@ -190,7 +190,7 @@
190
190
  },
191
191
  "arrival": {
192
192
  "date": "2017-10-12",
193
- "scheduled_time": " 7:19 pm",
193
+ "scheduled_time": " 8:06 pm",
194
194
  "estimated_time": null
195
195
  }
196
196
  },
@@ -203,7 +203,7 @@
203
203
  },
204
204
  "arrival": {
205
205
  "date": "2017-10-12",
206
- "scheduled_time": " 7:56 pm",
206
+ "scheduled_time": " 8:40 pm",
207
207
  "estimated_time": null
208
208
  }
209
209
  },
@@ -216,7 +216,7 @@
216
216
  },
217
217
  "arrival": {
218
218
  "date": "2017-10-12",
219
- "scheduled_time": " 8:54 pm",
219
+ "scheduled_time": " 9:38 pm",
220
220
  "estimated_time": null
221
221
  }
222
222
  },
@@ -229,7 +229,7 @@
229
229
  },
230
230
  "arrival": {
231
231
  "date": "2017-10-12",
232
- "scheduled_time": " 9:16 pm",
232
+ "scheduled_time": "10:02 pm",
233
233
  "estimated_time": null
234
234
  }
235
235
  },
@@ -242,7 +242,7 @@
242
242
  },
243
243
  "arrival": {
244
244
  "date": "2017-10-12",
245
- "scheduled_time": "10:03 pm",
245
+ "scheduled_time": "10:44 pm",
246
246
  "estimated_time": null
247
247
  }
248
248
  }
@@ -0,0 +1,236 @@
1
+ [
2
+ {
3
+ "number": 2153,
4
+ "departure": {
5
+ "date": "2018-03-21",
6
+ "scheduled_time": " 6:06 am",
7
+ "estimated_time": null
8
+ },
9
+ "arrival": {
10
+ "date": "2018-03-21",
11
+ "scheduled_time": " 6:36 am",
12
+ "estimated_time": null
13
+ }
14
+ },
15
+ {
16
+ "number": 95,
17
+ "departure": {
18
+ "date": "2018-03-21",
19
+ "scheduled_time": " 6:10 am",
20
+ "estimated_time": null
21
+ },
22
+ "arrival": {
23
+ "date": "2018-03-21",
24
+ "scheduled_time": " 6:43 am",
25
+ "estimated_time": null
26
+ }
27
+ },
28
+ {
29
+ "number": 2155,
30
+ "departure": {
31
+ "date": "2018-03-21",
32
+ "scheduled_time": " 7:20 am",
33
+ "estimated_time": "Canceled"
34
+ },
35
+ "arrival": {
36
+ "date": "2018-03-21",
37
+ "scheduled_time": " 7:49 am",
38
+ "estimated_time": "Canceled"
39
+ }
40
+ },
41
+ {
42
+ "number": 171,
43
+ "departure": {
44
+ "date": "2018-03-21",
45
+ "scheduled_time": " 8:16 am",
46
+ "estimated_time": " 8:16 am"
47
+ },
48
+ "arrival": {
49
+ "date": "2018-03-21",
50
+ "scheduled_time": " 8:49 am",
51
+ "estimated_time": " 8:49 am"
52
+ }
53
+ },
54
+ {
55
+ "number": 2159,
56
+ "departure": {
57
+ "date": "2018-03-21",
58
+ "scheduled_time": " 9:05 am",
59
+ "estimated_time": "Canceled"
60
+ },
61
+ "arrival": {
62
+ "date": "2018-03-21",
63
+ "scheduled_time": " 9:34 am",
64
+ "estimated_time": "Canceled"
65
+ }
66
+ },
67
+ {
68
+ "number": 93,
69
+ "departure": {
70
+ "date": "2018-03-21",
71
+ "scheduled_time": " 9:32 am",
72
+ "estimated_time": "Canceled"
73
+ },
74
+ "arrival": {
75
+ "date": "2018-03-21",
76
+ "scheduled_time": "10:07 am",
77
+ "estimated_time": "Canceled"
78
+ }
79
+ },
80
+ {
81
+ "number": 2163,
82
+ "departure": {
83
+ "date": "2018-03-21",
84
+ "scheduled_time": "11:06 am",
85
+ "estimated_time": "Canceled"
86
+ },
87
+ "arrival": {
88
+ "date": "2018-03-21",
89
+ "scheduled_time": "11:39 am",
90
+ "estimated_time": "Canceled"
91
+ }
92
+ },
93
+ {
94
+ "number": 173,
95
+ "departure": {
96
+ "date": "2018-03-21",
97
+ "scheduled_time": "11:11 am",
98
+ "estimated_time": "Canceled"
99
+ },
100
+ "arrival": {
101
+ "date": "2018-03-21",
102
+ "scheduled_time": "12:00 pm",
103
+ "estimated_time": "Canceled"
104
+ }
105
+ },
106
+ {
107
+ "number": 2165,
108
+ "departure": {
109
+ "date": "2018-03-21",
110
+ "scheduled_time": "12:11 pm",
111
+ "estimated_time": "Canceled"
112
+ },
113
+ "arrival": {
114
+ "date": "2018-03-21",
115
+ "scheduled_time": "12:40 pm",
116
+ "estimated_time": "Canceled"
117
+ }
118
+ },
119
+ {
120
+ "number": 2167,
121
+ "departure": {
122
+ "date": "2018-03-21",
123
+ "scheduled_time": " 1:06 pm",
124
+ "estimated_time": "Canceled"
125
+ },
126
+ "arrival": {
127
+ "date": "2018-03-21",
128
+ "scheduled_time": " 1:34 pm",
129
+ "estimated_time": "Canceled"
130
+ }
131
+ },
132
+ {
133
+ "number": 137,
134
+ "departure": {
135
+ "date": "2018-03-21",
136
+ "scheduled_time": " 1:36 pm",
137
+ "estimated_time": "Canceled"
138
+ },
139
+ "arrival": {
140
+ "date": "2018-03-21",
141
+ "scheduled_time": " 2:10 pm",
142
+ "estimated_time": "Canceled"
143
+ }
144
+ },
145
+ {
146
+ "number": 2171,
147
+ "departure": {
148
+ "date": "2018-03-21",
149
+ "scheduled_time": " 3:11 pm",
150
+ "estimated_time": "Canceled"
151
+ },
152
+ "arrival": {
153
+ "date": "2018-03-21",
154
+ "scheduled_time": " 3:42 pm",
155
+ "estimated_time": "Canceled"
156
+ }
157
+ },
158
+ {
159
+ "number": 175,
160
+ "departure": {
161
+ "date": "2018-03-21",
162
+ "scheduled_time": " 3:21 pm",
163
+ "estimated_time": "Canceled"
164
+ },
165
+ "arrival": {
166
+ "date": "2018-03-21",
167
+ "scheduled_time": " 3:54 pm",
168
+ "estimated_time": "Canceled"
169
+ }
170
+ },
171
+ {
172
+ "number": 2173,
173
+ "departure": {
174
+ "date": "2018-03-21",
175
+ "scheduled_time": " 4:16 pm",
176
+ "estimated_time": "Canceled"
177
+ },
178
+ "arrival": {
179
+ "date": "2018-03-21",
180
+ "scheduled_time": " 4:46 pm",
181
+ "estimated_time": "Canceled"
182
+ }
183
+ },
184
+ {
185
+ "number": 2175,
186
+ "departure": {
187
+ "date": "2018-03-21",
188
+ "scheduled_time": " 5:26 pm",
189
+ "estimated_time": "Canceled"
190
+ },
191
+ "arrival": {
192
+ "date": "2018-03-21",
193
+ "scheduled_time": " 5:53 pm",
194
+ "estimated_time": "Canceled"
195
+ }
196
+ },
197
+ {
198
+ "number": 177,
199
+ "departure": {
200
+ "date": "2018-03-21",
201
+ "scheduled_time": " 5:40 pm",
202
+ "estimated_time": "Canceled"
203
+ },
204
+ "arrival": {
205
+ "date": "2018-03-21",
206
+ "scheduled_time": " 6:14 pm",
207
+ "estimated_time": "Canceled"
208
+ }
209
+ },
210
+ {
211
+ "number": 179,
212
+ "departure": {
213
+ "date": "2018-03-21",
214
+ "scheduled_time": " 6:51 pm",
215
+ "estimated_time": "Canceled"
216
+ },
217
+ "arrival": {
218
+ "date": "2018-03-21",
219
+ "scheduled_time": " 7:23 pm",
220
+ "estimated_time": "Canceled"
221
+ }
222
+ },
223
+ {
224
+ "number": 67,
225
+ "departure": {
226
+ "date": "2018-03-21",
227
+ "scheduled_time": " 9:36 pm",
228
+ "estimated_time": "Canceled"
229
+ },
230
+ "arrival": {
231
+ "date": "2018-03-21",
232
+ "scheduled_time": "10:19 pm",
233
+ "estimated_time": "Canceled"
234
+ }
235
+ }
236
+ ]