lothianbusestimetable 0.1.3 → 0.1.4

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: b04bea73d8b5ad4e895b25d94eb1ffa0a94d3c91
4
- data.tar.gz: af832e2b5850a9b705f141b996d88abf7ea88425
3
+ metadata.gz: b3bf2af622eaa822e7a296b7cea1bbdb8680c7a8
4
+ data.tar.gz: bc2f0e8851c2333a28196598ba339373dd61a2f5
5
5
  SHA512:
6
- metadata.gz: 8419029b14414ead0461fc50f123964428342b48a4f7670db6b0eec7a6ccd906eb8a62dea7a343bf2e6663e4f91ea9efa2b2811d0f816a8326e5471594faa405
7
- data.tar.gz: 5e040323094473cc03d9e10eee45af0be233285d816d53b2c48e8a3a0e455b648225ea3650d3efb2f86e607ef10623920447178adf1341d5fa0c6812301ad13c
6
+ metadata.gz: 86524dc73bc3fdc147c83f38ce5353a3fa2689cdd7bc998617d88122321150b346a68ea6b45bfca6357bb23661da7821463bd8a27619cbd81b8d5cd72e8c51ef
7
+ data.tar.gz: d03b438eca70aef97dc79b0fa012e64f27ce965903042c6f25024034c3295d24ec5babdcbddc05ba3d663572f5f321a8eb6b89905ef49f531a2f7657ebaeb8fe
checksums.yaml.gz.sig CHANGED
Binary file
@@ -46,6 +46,8 @@ class LothianBusesTimetable
46
46
 
47
47
  # get the name
48
48
  a = tr.xpath('td//text()').map(&:unescape)
49
+
50
+ next unless a.any?
49
51
 
50
52
  col1 = a.shift.strip
51
53
 
@@ -54,7 +56,8 @@ class LothianBusesTimetable
54
56
  a0 << {service: $1}
55
57
 
56
58
  elsif col1.empty? or col1.length <= 1
57
-
59
+
60
+ #next if a.length < 1
58
61
  if prev_col.empty? or prev_col.length <= 1 and a0.last.any? then
59
62
 
60
63
  a0 << {}
@@ -70,7 +73,7 @@ class LothianBusesTimetable
70
73
 
71
74
  else
72
75
 
73
- if a.any? then
76
+ if a.any? and a.length > 1 then
74
77
 
75
78
  h = a0.last
76
79
 
@@ -81,6 +84,7 @@ class LothianBusesTimetable
81
84
  end
82
85
 
83
86
  else
87
+
84
88
  a0.pop if a0.last.empty?
85
89
  end
86
90
  end
@@ -114,28 +118,40 @@ class LothianBusesTimetable
114
118
  h = a0.shift
115
119
  master[:saturday][:outbound] = h
116
120
 
117
- h = a0.shift
118
- h = a0.shift until h.any?
119
- master[:sunday][:desc] = h[:timetable]
120
121
  h = a0.shift
121
- master[:sunday][:inbound] = h
122
- h = a0.shift
123
- master[:sunday][:outbound] = h
124
-
122
+
123
+ if h then
124
+
125
+ h = a0.shift until h.any?
126
+ master[:sunday][:desc] = h[:timetable]
127
+ h = a0.shift
128
+ master[:sunday][:inbound] = h
129
+ h = a0.shift
130
+ master[:sunday][:outbound] = h
131
+
132
+ end
125
133
 
126
134
  master.to_a[1..-1].each do |key, timetable|
127
135
 
128
136
  timetable.to_a[1..-1].each do |direction, printed_rows|
129
137
 
138
+ next unless printed_rows
139
+
130
140
  # find the interval gaps
131
141
 
132
142
  a = printed_rows.to_a
133
- index = a.index a.detect {|x| x.last.grep(/^ $/).any? }
134
- a2 = a[index].last
143
+ index = a.index a.detect {|x| x.last.grep(/^ |then$/).any? }
144
+
145
+ if index then
146
+ a2 = a[index].last
135
147
 
136
- gaps = a2.map.with_index.select {|x,i| x == " "}.map(&:last)
148
+ gaps = a2.map.with_index.select {|x,i| x == " " \
149
+ or x == 'then'}.map(&:last)
137
150
 
138
- gaps.delete_at -1 if gaps.last >= a2.length - 1
151
+ gaps.delete_at -1 if gaps.last >= a2.length - 1
152
+ else
153
+ gaps = []
154
+ end
139
155
 
140
156
  # sanitise the times (where short hand times are
141
157
  # given i.e. minutes only)
@@ -143,7 +159,7 @@ class LothianBusesTimetable
143
159
  printed_rows.each do |name, row|
144
160
 
145
161
  prev_time = nil
146
- printed_rows[name] = row.map.with_index do |col,i|
162
+ printed_rows[name] = row.map.with_index do |col,i|
147
163
 
148
164
  if gaps.include? i then
149
165
  col
@@ -173,15 +189,22 @@ class LothianBusesTimetable
173
189
 
174
190
  # fill in the gaps
175
191
 
176
- periods = gaps.map {|i| a.map {|k,v| v[i].to_s.gsub(/\W/,'')}
192
+ periods = gaps.map {|i| a.map {|k,v| v[i].to_s.gsub(/\W/,' ')}
177
193
  .compact.join(' ').strip }
178
194
 
179
195
  gap_times = gaps.zip(periods)
180
196
 
181
197
 
182
198
  intervaltimes = gap_times.map do |i, desc|
199
+
200
+ interval = if desc =~
201
+ /^then at these mins past each hour(?: until)?/ then
202
+ 60
203
+ else
204
+ interval = desc[/then (?:at least )?every (\d+) mins(?: until)?/,1].to_i
205
+ end
183
206
 
184
- interval = desc[/then every (\d+) mins until/,1].to_i
207
+ next if interval == 0
185
208
 
186
209
  new_rows = printed_rows.map do |k,v|
187
210
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lothianbusestimetable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  K7yWGJq+eGl34xrLaucvTbO8Ua3rHayCkBzgfx5LVcch22Axj8quw+YGsPnhuosr
32
32
  BHdCmx9eUF/TKg==
33
33
  -----END CERTIFICATE-----
34
- date: 2017-08-25 00:00:00.000000000 Z
34
+ date: 2017-08-26 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: nokorexi
metadata.gz.sig CHANGED
Binary file