ierail 0.2 → 0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/ierail.rb +39 -0
- metadata +1 -1
data/lib/ierail.rb
CHANGED
@@ -162,4 +162,43 @@ class IERail
|
|
162
162
|
end
|
163
163
|
retval
|
164
164
|
end
|
165
|
+
|
166
|
+
# Get direction-specific train information for a particular station, by station name.
|
167
|
+
# This gives data on trains through that station
|
168
|
+
# Returns array of StationData objects, and each object responds to
|
169
|
+
# {
|
170
|
+
# obj#servertime =>"2012-01-20T10:03:33.777",
|
171
|
+
# obj#traincode =>"E909",
|
172
|
+
# obj#name / obj#station_name =>"Glenageary",
|
173
|
+
# obj#code / obj#station_code =>"GLGRY",
|
174
|
+
# obj#query_time =>"10:03:33",
|
175
|
+
# obj#train_date =>"20 Jan 2012",
|
176
|
+
# obj#origin => {:name => "Bray", :time => "09:55"}
|
177
|
+
# obj#destination => {:name => "Howth", :time => "11:03"}
|
178
|
+
# obj#status =>"En Route",
|
179
|
+
# obj#last_location =>"Arrived Killiney",
|
180
|
+
# obj#duein / obj#due_in =>"6",
|
181
|
+
# obj#late =>"0",
|
182
|
+
# obj#late? => 0 / 1
|
183
|
+
# obj#arrival => {:scheduled => "10:09", :expected => "10:09"}
|
184
|
+
# obj#departure => {:scheduled => "10:09", :expected => "10:09"}
|
185
|
+
# obj#direction => "Northbound",
|
186
|
+
# obj#train_type => "DART",
|
187
|
+
# }
|
188
|
+
# Returns empty array if no data.
|
189
|
+
#
|
190
|
+
|
191
|
+
def method_missing(name, *args, &block)
|
192
|
+
# Only handle *bound_from (e.g northbound_from / southbound_from)
|
193
|
+
if name =~ /bound_from/
|
194
|
+
direction = name.to_s.split('_').first.capitalize
|
195
|
+
|
196
|
+
ier = IERailGet.new("getStationDataByNameXML?StationDesc=#{args.first}", "arrayofobjstationdata", "objstationdata")
|
197
|
+
retval = []
|
198
|
+
ier.response.each do |sd|
|
199
|
+
retval << StationData.new(sd) if sd['Direction'] == direction
|
200
|
+
end
|
201
|
+
retval
|
202
|
+
end
|
203
|
+
end
|
165
204
|
end
|