amtrak 3.0.2 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 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
+ ]