lib/earth/rail/rail_class/data_miner.rb in earth-0.6.6 vs lib/earth/rail/rail_class/data_miner.rb in earth-0.7.0

- old
+ new

@@ -1,18 +1,19 @@ RailClass.class_eval do data_miner do - process "Define some unit conversions" do - Conversions.register :gallons_per_mile, :litres_per_kilometre, 2.35214583 + process "Ensure CountryRailClass, CountryRailTractionClass, and RailCompanyTractionClass are populated" do + CountryRailTractionClass.run_data_miner! + CountryRailClass.run_data_miner! + RailCompanyTractionClass.run_data_miner! end - - import "a list of rail classes and pre-calculated trip and fuel use characteristics", - :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHRYaDNvRXMtZGoxNmRiOHlNWGV6b2c&hl=en&gid=0&output=csv' do - key 'name' - store 'description' - store 'passengers' - store 'distance', :units_field_name => 'distance_units' - store 'speed', :units_field_name => 'speed_units' - store 'electricity_intensity', :units_field_name => 'electricity_intensity_units' - store 'diesel_intensity', :units_field_name => 'diesel_intensity_units' + + process "Derive rail class names from CountryRailClass, CountryRailTractionClass, and RailCompanyTractionClass" do + names = [] + names += CountryRailTractionClass.select("DISTINCT rail_class_name").map(&:rail_class_name) + names += CountryRailClass.select("DISTINCT rail_class_name").map(&:rail_class_name) + names += RailCompanyTractionClass.select("DISTINCT rail_class_name").map(&:rail_class_name) + names.uniq.each do |name| + RailClass.find_or_create_by_name(name) + end end end end