national-rail 0.4.11 → 0.4.12
Sign up to get free protection for your applications and to get access to all the features.
@@ -99,31 +99,36 @@ module NationalRail
|
|
99
99
|
VirginLiveDepartureBoards.capture(page, filename)
|
100
100
|
encoding = 'UTF-8'
|
101
101
|
tbody = page.doc/"table#TrainTable tbody"
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
102
|
+
if tbody
|
103
|
+
trs = tbody/"tr"
|
104
|
+
if trs.length > 2
|
105
|
+
columns = ((trs[1])/"th").map { |th| th.inner_text.gsub(/\s+/, ' ') }
|
106
|
+
summary_rows = []
|
107
|
+
((tbody/"tr")[2..-1] || []).each do |tr|
|
108
|
+
tds = tr/"td"
|
109
|
+
from = tds[columns.index("From")]
|
110
|
+
if from.inner_text.match(/circular route/i)
|
111
|
+
summary_rows.last.attributes[:circular_route] = true if summary_rows.any?
|
112
|
+
next
|
113
|
+
end
|
114
|
+
details_href = (from/"a").first["href"]
|
115
|
+
details_link = page.links.detect { |l| l.attributes["href"] == details_href }
|
116
|
+
attributes = {
|
117
|
+
:from => (tds[columns.index("From")]/"a").inner_text.gsub(/\s+/, ' '),
|
118
|
+
:timetabled_arrival => time_parser.parse(cell_text(tds[columns.index("Timetabled Arrival")])),
|
119
|
+
:expected_arrival => time_parser.parse(cell_text(tds[columns.index("Expected Arrival")])),
|
120
|
+
:to => (tds[columns.index("To")]/"a").inner_text.gsub(/\s+/, ' '),
|
121
|
+
:timetabled_departure => time_parser.parse(cell_text(tds[columns.index("Timetabled Departure")])),
|
122
|
+
:expected_departure => time_parser.parse(cell_text(tds[columns.index("Expected Departure")])),
|
123
|
+
:operator => (tds[columns.index("Operator")]/"a").inner_text.gsub(/\s+/, ' '),
|
124
|
+
:details_url => "http://realtime.nationalrail.co.uk/virgintrains/#{details_href}"
|
125
|
+
}
|
126
|
+
if platform_index = columns.index("Platform")
|
127
|
+
attributes[:platform] = parse_integer(cell_text(tds[platform_index]))
|
128
|
+
end
|
129
|
+
summary_rows << SummaryRow.new(@agent, details_link, attributes)
|
130
|
+
end
|
110
131
|
end
|
111
|
-
details_href = (from/"a").first["href"]
|
112
|
-
details_link = page.links.detect { |l| l.attributes["href"] == details_href }
|
113
|
-
attributes = {
|
114
|
-
:from => (tds[columns.index("From")]/"a").inner_text.gsub(/\s+/, ' '),
|
115
|
-
:timetabled_arrival => time_parser.parse(cell_text(tds[columns.index("Timetabled Arrival")])),
|
116
|
-
:expected_arrival => time_parser.parse(cell_text(tds[columns.index("Expected Arrival")])),
|
117
|
-
:to => (tds[columns.index("To")]/"a").inner_text.gsub(/\s+/, ' '),
|
118
|
-
:timetabled_departure => time_parser.parse(cell_text(tds[columns.index("Timetabled Departure")])),
|
119
|
-
:expected_departure => time_parser.parse(cell_text(tds[columns.index("Expected Departure")])),
|
120
|
-
:operator => (tds[columns.index("Operator")]/"a").inner_text.gsub(/\s+/, ' '),
|
121
|
-
:details_url => "http://realtime.nationalrail.co.uk/virgintrains/#{details_href}"
|
122
|
-
}
|
123
|
-
if platform_index = columns.index("Platform")
|
124
|
-
attributes[:platform] = parse_integer(cell_text(tds[platform_index]))
|
125
|
-
end
|
126
|
-
summary_rows << SummaryRow.new(@agent, details_link, attributes)
|
127
132
|
end
|
128
133
|
end
|
129
134
|
summary_rows
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: national-rail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 12
|
10
|
+
version: 0.4.12
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- James Mead
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
18
|
+
date: 2011-04-12 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|