--- a/maxious-canberra-transit-feed/01-extracttimes.rb +++ b/maxious-canberra-transit-feed/01-extracttimes.rb @@ -2,6 +2,13 @@ require 'nokogiri' require 'open-uri' require 'pp' +require 'yaml' +class Array + def to_yaml_style + :inline + end +end + def makeTimetable(table, period, short_name) timetable = {"stop_times" => [], "between_stops" => [], "short_name" => short_name} @@ -11,7 +18,7 @@ end end time_points.delete(nil) - timetable["time_points"] = time_points + timetable["time_points"] = time_points.to_a timetable["long_name"] = "To " + time_points.last periodtimes = [] table.css('tr').each do |row| @@ -23,18 +30,18 @@ if not (route = times.shift) raise("TODO: account for shifting route numbers eg. intertown/redex 62/162") end - periodtimes << times + periodtimes << times.to_a end end if periodtimes.size < 1 raise "No times for route " + short_name + " in period " + period end - timetable["stop_times"] = { period => periodtimes } + timetable["stop_times"] = { period => periodtimes.to_a } # pp timetable filename = timetable["short_name"] + "-" + timetable["long_name"].downcase.gsub(" ","-").gsub("/","") + "." + period + ".yml" puts "Saving " + filename File.open("#{File.dirname(__FILE__)}/output/"+filename, "w") do |f| - f.write timetable.to_yaml + f.write timetable.to_yaml end timetable end