metra_schedule 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/metra/cacher.rb +30 -1
- data/lib/metra/delay_parser.rb +60 -0
- data/lib/metra/extensions/time_extension.rb +5 -1
- data/lib/metra/line.rb +29 -2
- data/lib/metra/train.rb +10 -15
- data/lib/metra.rb +1 -0
- data/metra_schedule.gemspec +9 -2
- data/test/fixture/service_updates_alerts.html +26 -0
- data/test/fixture/service_updates_alerts_multiple_with_non_delay.html +39 -0
- data/test/fixture/service_updates_alerts_no_advisories.html +792 -0
- data/test/fixture/service_updates_alerts_no_range.html +25 -0
- data/test/functional/test_all_filters.rb +8 -8
- data/test/integration/test_line_integration.rb +16 -0
- data/test/test_helper.rb +1 -0
- data/test/unit/test_cacher.rb +29 -0
- data/test/unit/test_delay_parser.rb +76 -0
- data/test/unit/test_line.rb +26 -0
- data/test/unit/test_parser.rb +5 -24
- data/test/unit/test_time_extension.rb +7 -0
- data/test/unit/test_train.rb +17 -0
- metadata +9 -2
@@ -0,0 +1,25 @@
|
|
1
|
+
<div id="serviceAdvisory">
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
<h2><span class="hidden">Service Advisories</span></h2>
|
6
|
+
|
7
|
+
|
8
|
+
<dl>
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
<dt class="line md-w first">Milwaukee District / West Line</dt>
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
<dd class="first"><a href="#serviceAdvisory1">Inbound Train #2226 15 Minute Delay</a></dd>
|
20
|
+
<dd id="serviceAdvisory1" class="details">Train #2226, scheduled to arrive Chicago at 9:00 a.m., is operating approximately 15 minutes behind schedule due to earlier delays. Updated at 8:34 a.m.</dd>
|
21
|
+
|
22
|
+
|
23
|
+
</dl>
|
24
|
+
</div>
|
25
|
+
|
@@ -3,20 +3,20 @@ require File.join(File.dirname(__FILE__), "../", "test_helper.rb")
|
|
3
3
|
class TestLine < Test::Unit::TestCase
|
4
4
|
include MetraSchedule::TrainData
|
5
5
|
|
6
|
-
def
|
6
|
+
def setup
|
7
7
|
f = File.open(File.join(File.dirname(__FILE__), '../fixture/UP_NW.html'), 'r')
|
8
8
|
parser = MetraSchedule::Parser.new f
|
9
9
|
parser.line = LINES[:up_nw]
|
10
|
-
line = Metra.new.line(:up_nw)
|
11
|
-
line.engines = parser.scrape
|
12
|
-
line
|
10
|
+
@line = Metra.new.line(:up_nw)
|
11
|
+
@line.engines = parser.scrape
|
12
|
+
@line
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_all_filters
|
16
|
-
line
|
17
|
-
assert_equal(
|
18
|
-
line
|
19
|
-
assert_equal(
|
16
|
+
@line.from(:ogilve).to(:barrington).at(Time.parse("11:29PM")).on(Date.parse("Dec 27 2009"))
|
17
|
+
assert_equal(2, @line.trains.count)
|
18
|
+
@line.from(:ogilve).to(:barrington).at(Time.parse("3:00AM")).on(Date.parse("Dec 27 2009"))
|
19
|
+
assert_equal(8, @line.trains.count)
|
20
20
|
end
|
21
21
|
|
22
22
|
end
|
@@ -9,4 +9,20 @@ class TestLine < Test::Unit::TestCase
|
|
9
9
|
assert_not_nil(line.trains)
|
10
10
|
end
|
11
11
|
|
12
|
+
def test_inject_delays_filter
|
13
|
+
cleanup_cache_dir
|
14
|
+
data = [{:train_num => 602, :delay => (10..15)}]
|
15
|
+
result = MetraSchedule::Cacher.new.persist_delays(data)
|
16
|
+
assert_equal(true, result)
|
17
|
+
line = Metra.new.line(:up_nw).from(:barrington).to(:ogilve)
|
18
|
+
line.load_schedule
|
19
|
+
trains = line.trains
|
20
|
+
the_602 = trains.find {|t| t.train_num == 602}
|
21
|
+
assert_not_nil(the_602)
|
22
|
+
assert_not_nil(the_602.delay)
|
23
|
+
assert_equal(data.first[:delay], the_602.delay)
|
24
|
+
cleanup_cache_dir
|
25
|
+
end
|
26
|
+
|
27
|
+
|
12
28
|
end
|
data/test/test_helper.rb
CHANGED
data/test/unit/test_cacher.rb
CHANGED
@@ -76,4 +76,33 @@ class TestLine < Test::Unit::TestCase
|
|
76
76
|
cleanup_dir
|
77
77
|
end
|
78
78
|
|
79
|
+
def test_persist_delays
|
80
|
+
cleanup_dir
|
81
|
+
c = MetraSchedule::Cacher.new
|
82
|
+
data = [{:train_num => 800, :delay => (15..30)}]
|
83
|
+
assert_equal(true, c.persist_delays(data))
|
84
|
+
cleanup_dir
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_retrieve_delays
|
88
|
+
cleanup_dir
|
89
|
+
c = MetraSchedule::Cacher.new
|
90
|
+
data = [{:train_num => 800, :delay => (15..30)}]
|
91
|
+
c.persist_delays(data)
|
92
|
+
assert_equal(data, c.retrieve_delays)
|
93
|
+
cleanup_dir
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_clear_delays
|
97
|
+
cleanup_dir
|
98
|
+
c = MetraSchedule::Cacher.new
|
99
|
+
data = [{:train_num => 800, :delay => (15..30)}]
|
100
|
+
c.persist_delays(data)
|
101
|
+
assert_equal(true, c.delays_exist?)
|
102
|
+
assert_equal(true, c.clear_delays)
|
103
|
+
assert_equal(false, c.delays_exist?)
|
104
|
+
assert_equal(false, c.clear_delays)
|
105
|
+
cleanup_dir
|
106
|
+
end
|
107
|
+
|
79
108
|
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "../", "test_helper.rb")
|
2
|
+
|
3
|
+
class TestDelayParser < Test::Unit::TestCase
|
4
|
+
include MetraSchedule::TrainData
|
5
|
+
|
6
|
+
def advisory_alert_stub
|
7
|
+
f = File.open(File.join(File.dirname(__FILE__), '../fixture/service_updates_alerts.html'), 'r')
|
8
|
+
parser = MetraSchedule::DelayParser.new f
|
9
|
+
parser.scrape
|
10
|
+
parser
|
11
|
+
end
|
12
|
+
|
13
|
+
def no_advisory_stub
|
14
|
+
f = File.open(File.join(File.dirname(__FILE__), '../fixture/service_updates_alerts_no_advisories.html'), 'r')
|
15
|
+
parser = MetraSchedule::DelayParser.new f
|
16
|
+
parser.scrape
|
17
|
+
parser
|
18
|
+
end
|
19
|
+
|
20
|
+
def no_range_stub
|
21
|
+
f = File.open(File.join(File.dirname(__FILE__), '../fixture/service_updates_alerts_no_range.html'), 'r')
|
22
|
+
parser = MetraSchedule::DelayParser.new f
|
23
|
+
parser.scrape
|
24
|
+
parser
|
25
|
+
end
|
26
|
+
|
27
|
+
def no_delay_advisory
|
28
|
+
f = File.open(File.join(File.dirname(__FILE__), '../fixture/service_updates_alerts_multiple_with_non_delay.html'), 'r')
|
29
|
+
parser = MetraSchedule::DelayParser.new f
|
30
|
+
parser.scrape
|
31
|
+
parser
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_init
|
35
|
+
assert_nothing_raised do
|
36
|
+
@@p = MetraSchedule::DelayParser.new 'http://blake.com'
|
37
|
+
end
|
38
|
+
assert_not_nil(advisory_alert_stub.html_doc)
|
39
|
+
assert_not_nil(@@p.html_doc)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_find_train_num
|
43
|
+
node = advisory_alert_stub.html_doc.css('#serviceAdvisory')
|
44
|
+
assert_equal(2156, advisory_alert_stub.find_train_num(node))
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_find_delay
|
48
|
+
node = advisory_alert_stub.html_doc.css('#serviceAdvisory')
|
49
|
+
assert_equal("20 minutes delayed", advisory_alert_stub.find_delay(node))
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_make_train_delays
|
53
|
+
assert_equal([{:train_num => 2156, :delay => "18 - 20 minutes delayed"}], advisory_alert_stub.make_train_delays)
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_has_delays?
|
57
|
+
assert_equal(true, advisory_alert_stub.has_delays?)
|
58
|
+
assert_equal(false, no_advisory_stub.has_delays?)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_find_delay_no_range
|
62
|
+
node = no_range_stub.html_doc.css('#serviceAdvisory dd.first')
|
63
|
+
assert_equal("15 Minute Delay", no_range_stub.find_delay(node))
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_find_delay
|
67
|
+
node = advisory_alert_stub.html_doc.css('#serviceAdvisory dd.first')
|
68
|
+
assert_equal("18 - 20 minutes delayed", advisory_alert_stub.find_delay(node))
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_find_delay_advisory_with_no_delay
|
72
|
+
node = no_delay_advisory.html_doc.css('#serviceAdvisory dd.first')
|
73
|
+
assert_equal("Stopped North of Ashburn", no_delay_advisory.find_delay(node))
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
data/test/unit/test_line.rb
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "../", "test_helper.rb")
|
2
|
+
begin
|
3
|
+
require 'mocha'
|
4
|
+
rescue
|
5
|
+
puts "Not all the tests may function properly without Mocha installed. gem install mocha"
|
6
|
+
end
|
2
7
|
|
3
8
|
class TestLine < Test::Unit::TestCase
|
4
9
|
|
@@ -189,6 +194,21 @@ class TestLine < Test::Unit::TestCase
|
|
189
194
|
assert_equal([train2], valid_trains)
|
190
195
|
end
|
191
196
|
|
197
|
+
def test_trains_filter_by_start_with_delay_threshold
|
198
|
+
line = Metra.new.line(:up_nw).delay_threshold(10)
|
199
|
+
|
200
|
+
stop1 = MetraSchedule::Stop.new :station => :arlington_heights, :time => Time.parse('12:30')
|
201
|
+
stop2 = MetraSchedule::Stop.new :station => :arlington_heights, :time => Time.parse('12:40')
|
202
|
+
stop3 = MetraSchedule::Stop.new :station => :ogilve, :time => Time.parse('13:30')
|
203
|
+
train1 = MetraSchedule::Train.new :stops => [stop1, stop3], :direction => :inbound, :schedule => :weekday
|
204
|
+
train2 = MetraSchedule::Train.new :stops => [stop2, stop3], :direction => :inbound, :schedule => :weekday
|
205
|
+
train1.delay = "Delayed"
|
206
|
+
line.engines = [train1, train2]
|
207
|
+
|
208
|
+
valid_trains = line.to(:ogilve).from(:arlington_heights).at('12:35').trains
|
209
|
+
assert_equal([train1, train2], valid_trains)
|
210
|
+
end
|
211
|
+
|
192
212
|
def test_trains_just_direction_and_time
|
193
213
|
line = Metra.new.line(:up_nw)
|
194
214
|
|
@@ -321,4 +341,10 @@ class TestLine < Test::Unit::TestCase
|
|
321
341
|
assert_equal(train1, line.find_train_by_train_num(642))
|
322
342
|
end
|
323
343
|
|
344
|
+
def test_delay_threshold
|
345
|
+
line = Metra.new.line(:up_nw)
|
346
|
+
line.delay_threshold(5)
|
347
|
+
assert_equal(5, line.del_threshold)
|
348
|
+
end
|
349
|
+
|
324
350
|
end
|
data/test/unit/test_parser.rb
CHANGED
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), "../", "test_helper.rb")
|
|
3
3
|
class TestLine < Test::Unit::TestCase
|
4
4
|
include MetraSchedule::TrainData
|
5
5
|
|
6
|
-
def
|
6
|
+
def p
|
7
7
|
f = File.open(File.join(File.dirname(__FILE__), '../fixture/UP_NW.html'), 'r')
|
8
8
|
parser = MetraSchedule::Parser.new f
|
9
9
|
parser.line = LINES[:up_nw]
|
@@ -11,6 +11,10 @@ class TestLine < Test::Unit::TestCase
|
|
11
11
|
parser
|
12
12
|
end
|
13
13
|
|
14
|
+
def up_nw_stub
|
15
|
+
p
|
16
|
+
end
|
17
|
+
|
14
18
|
def test_init
|
15
19
|
assert_nothing_raised do
|
16
20
|
@@p = MetraSchedule::Parser.new 'http://blake.com'
|
@@ -20,20 +24,17 @@ class TestLine < Test::Unit::TestCase
|
|
20
24
|
end
|
21
25
|
|
22
26
|
def test_seperate_tables
|
23
|
-
p = up_nw_stub
|
24
27
|
assert_equal(2, p.tables.find_all {|t| t[:schedule] == :weekday}.count)
|
25
28
|
assert_equal(2, p.tables.find_all {|t| t[:schedule] == :saturday}.count)
|
26
29
|
assert_equal(2, p.tables.find_all {|t| t[:schedule] == :sunday}.count)
|
27
30
|
end
|
28
31
|
|
29
32
|
def test_sanitize
|
30
|
-
p = up_nw_stub
|
31
33
|
list = [1, 2, 3]
|
32
34
|
assert_equal(2, p.sanitize(list).count)
|
33
35
|
end
|
34
36
|
|
35
37
|
def test_train_count
|
36
|
-
p = up_nw_stub
|
37
38
|
assert_equal(16, p.train_count(p.tables[0][:tables][0]))
|
38
39
|
assert_equal(16, p.train_count(p.tables[0][:tables][1]))
|
39
40
|
assert_equal(12, p.train_count(p.tables[1][:tables][0]))
|
@@ -45,13 +46,10 @@ class TestLine < Test::Unit::TestCase
|
|
45
46
|
end
|
46
47
|
|
47
48
|
def test_stop_count
|
48
|
-
p = up_nw_stub
|
49
49
|
assert_equal(23, p.stop_count(p.tables[0][:tables][0]))
|
50
50
|
end
|
51
51
|
|
52
52
|
def test_make_stop_inbound
|
53
|
-
p = up_nw_stub
|
54
|
-
|
55
53
|
node = p.tables[0][:tables][0].xpath("tbody[4]/tr/td[1]")[0]
|
56
54
|
expected = MetraSchedule::Stop.new :station => :crystal_lake, :time => Time.parse("4:47AM")
|
57
55
|
assert_equal(expected.station, p.make_stop(node, 3, :inbound).station)
|
@@ -59,8 +57,6 @@ class TestLine < Test::Unit::TestCase
|
|
59
57
|
end
|
60
58
|
|
61
59
|
def test_make_stop_outbound
|
62
|
-
p = up_nw_stub
|
63
|
-
|
64
60
|
node = p.tables[3][:tables][0].xpath("tbody[4]/tr/td[1]")[0]
|
65
61
|
expected = MetraSchedule::Stop.new :station => :jefferson_park, :time => Time.parse("6:13AM")
|
66
62
|
assert_equal(expected.station, p.make_stop(node, 3, :outbound).station)
|
@@ -68,15 +64,11 @@ class TestLine < Test::Unit::TestCase
|
|
68
64
|
end
|
69
65
|
|
70
66
|
def test_make_stop_nil
|
71
|
-
p = up_nw_stub
|
72
|
-
|
73
67
|
node = p.tables[0][:tables][0].xpath("tbody[1]/tr/td[1]")[0]
|
74
68
|
assert_nil(p.make_stop(node, 0, :inbound))
|
75
69
|
end
|
76
70
|
|
77
71
|
def test_make_stop_am
|
78
|
-
p = up_nw_stub
|
79
|
-
|
80
72
|
node = p.tables[0][:tables][1].xpath("tbody[18]/tr/td[5]")[0]
|
81
73
|
expected = MetraSchedule::Stop.new :station => :norwood_park, :time => Time.parse("11:57AM")
|
82
74
|
assert_equal(expected.station, p.make_stop(node, 17, :inbound).station)
|
@@ -84,8 +76,6 @@ class TestLine < Test::Unit::TestCase
|
|
84
76
|
end
|
85
77
|
|
86
78
|
def test_make_stop_pm
|
87
|
-
p = up_nw_stub
|
88
|
-
|
89
79
|
node = p.tables[0][:tables][1].xpath("tbody[20]/tr/td[5]")[0]
|
90
80
|
expected = MetraSchedule::Stop.new :station => :jefferson_park, :time => Time.parse("12:01PM")
|
91
81
|
assert_equal(expected.station, p.make_stop(node, 19, :inbound).station)
|
@@ -93,8 +83,6 @@ class TestLine < Test::Unit::TestCase
|
|
93
83
|
end
|
94
84
|
|
95
85
|
def test_make_stop_pm_express
|
96
|
-
p = up_nw_stub
|
97
|
-
|
98
86
|
node = p.tables[3][:tables][1].xpath("tbody[2]/tr/td[5]")[0]
|
99
87
|
expected = MetraSchedule::Stop.new :station => :clyborn, :time => Time.parse("5:29PM")
|
100
88
|
assert_equal(expected.station, p.make_stop(node, 1, :outbound).station)
|
@@ -102,15 +90,11 @@ class TestLine < Test::Unit::TestCase
|
|
102
90
|
end
|
103
91
|
|
104
92
|
def test_find_stops
|
105
|
-
p = up_nw_stub
|
106
|
-
|
107
93
|
table = p.tables[0][:tables][0]
|
108
94
|
assert_equal(19, p.find_stops(table, 1, :inbound).count)
|
109
95
|
end
|
110
96
|
|
111
97
|
def test_find_stops_express
|
112
|
-
p = up_nw_stub
|
113
|
-
|
114
98
|
table = p.tables[0][:tables][0]
|
115
99
|
stops = p.find_stops(table, 5, :inbound)
|
116
100
|
assert_equal(Time.parse("6:43AM").to_f , stops[6].time.to_f)
|
@@ -119,13 +103,11 @@ class TestLine < Test::Unit::TestCase
|
|
119
103
|
end
|
120
104
|
|
121
105
|
def test_make_trains_count
|
122
|
-
p = up_nw_stub
|
123
106
|
trains = p.make_trains
|
124
107
|
assert_equal(104, p.make_trains.count)
|
125
108
|
end
|
126
109
|
|
127
110
|
def test_find_train_num
|
128
|
-
p = up_nw_stub
|
129
111
|
train_602 = p.make_trains.first
|
130
112
|
train_632 = p.make_trains[15]
|
131
113
|
|
@@ -134,7 +116,6 @@ class TestLine < Test::Unit::TestCase
|
|
134
116
|
end
|
135
117
|
|
136
118
|
def test_find_bike_count
|
137
|
-
p = up_nw_stub
|
138
119
|
train_602 = p.make_trains.first
|
139
120
|
train_640 = p.make_trains[18]
|
140
121
|
|
@@ -9,4 +9,11 @@ class TestTimeExtension < Test::Unit::TestCase
|
|
9
9
|
assert_equal(expected, sample.to_today)
|
10
10
|
end
|
11
11
|
|
12
|
+
def test_to_today_midnight_inclusive
|
13
|
+
sample = Time.local(2009, 5, 5, 0, 30, 45)
|
14
|
+
today = Time.now
|
15
|
+
expected = Time.local(today.year, today.month, today.day+1, sample.hour, sample.min, sample.sec)
|
16
|
+
assert_equal(expected, sample.to_today)
|
17
|
+
end
|
18
|
+
|
12
19
|
end
|
data/test/unit/test_train.rb
CHANGED
@@ -50,6 +50,16 @@ class TestLine < Test::Unit::TestCase
|
|
50
50
|
assert_equal(false, @@t.in_time?(:barrington, Time.parse("12:35PM")))
|
51
51
|
end
|
52
52
|
|
53
|
+
def test_in_time_midnight_inclusive
|
54
|
+
stop1 = MetraSchedule::Stop.new :station => :arlington_heights, :time => Time.parse("12:30AM")
|
55
|
+
stop2 = MetraSchedule::Stop.new :station => :cary, :time => Time.parse("2:45AM")
|
56
|
+
stop3 = MetraSchedule::Stop.new :station => :harvard, :time => Time.parse("4:00AM")
|
57
|
+
@@t = MetraSchedule::Train.new :train_num => 651, :bike_limit => 12, :schedule => :weekday, :direction => :inbound, :stops => [stop1, stop2, stop3]
|
58
|
+
assert_equal(true, @@t.in_time?(:arlington_heights, Time.parse("11:45PM")))
|
59
|
+
assert_equal(true, @@t.in_time?(:cary, Time.parse("11:45PM")))
|
60
|
+
assert_equal(false, @@t.in_time?(:harvard, Time.parse("11:45PM")))
|
61
|
+
end
|
62
|
+
|
53
63
|
def test_in_time_same_time_next_day
|
54
64
|
stop1 = MetraSchedule::Stop.new :station => :barrington, :time => Time.parse("12:30PM")
|
55
65
|
stop2 = MetraSchedule::Stop.new :station => :arlington_heights, :time => Time.parse("12:40PM")
|
@@ -165,4 +175,11 @@ class TestLine < Test::Unit::TestCase
|
|
165
175
|
assert_equal("2 hours 5 minutes", train.print_my_travel_time)
|
166
176
|
end
|
167
177
|
|
178
|
+
def test_departure_with_delay
|
179
|
+
train = MetraSchedule::Train.new :train_num => 651, :bike_limit => 12, :schedule => :weekday, :direction => :inbound
|
180
|
+
train.my_departure = Time.parse("12:30PM")
|
181
|
+
train.del_threshold = 5
|
182
|
+
assert_equal(Time.parse("12:35PM"), train.departure_with_delay)
|
183
|
+
end
|
184
|
+
|
168
185
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metra_schedule
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blake Smith
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-02-03 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -40,6 +40,7 @@ files:
|
|
40
40
|
- lib/metra.rb
|
41
41
|
- lib/metra/cacher.rb
|
42
42
|
- lib/metra/classmethods.rb
|
43
|
+
- lib/metra/delay_parser.rb
|
43
44
|
- lib/metra/extensions/time_extension.rb
|
44
45
|
- lib/metra/line.rb
|
45
46
|
- lib/metra/parser.rb
|
@@ -48,6 +49,10 @@ files:
|
|
48
49
|
- lib/metra/train_data.rb
|
49
50
|
- metra_schedule.gemspec
|
50
51
|
- test/fixture/UP_NW.html
|
52
|
+
- test/fixture/service_updates_alerts.html
|
53
|
+
- test/fixture/service_updates_alerts_multiple_with_non_delay.html
|
54
|
+
- test/fixture/service_updates_alerts_no_advisories.html
|
55
|
+
- test/fixture/service_updates_alerts_no_range.html
|
51
56
|
- test/functional/test_all_filters.rb
|
52
57
|
- test/integration/test_line_integration.rb
|
53
58
|
- test/test_helper.rb
|
@@ -61,6 +66,7 @@ files:
|
|
61
66
|
- test/timecop/lib/timecop/time_stack_item.rb
|
62
67
|
- test/timecop/lib/timecop/timecop.rb
|
63
68
|
- test/unit/test_cacher.rb
|
69
|
+
- test/unit/test_delay_parser.rb
|
64
70
|
- test/unit/test_line.rb
|
65
71
|
- test/unit/test_metra.rb
|
66
72
|
- test/unit/test_parser.rb
|
@@ -108,5 +114,6 @@ test_files:
|
|
108
114
|
- test/unit/test_metra.rb
|
109
115
|
- test/unit/test_stop.rb
|
110
116
|
- test/unit/test_parser.rb
|
117
|
+
- test/unit/test_delay_parser.rb
|
111
118
|
- test/unit/test_cacher.rb
|
112
119
|
- test/test_helper.rb
|