lib/earth/shipping/carrier_mode/data_miner.rb in earth-0.3.15 vs lib/earth/shipping/carrier_mode/data_miner.rb in earth-0.4.0

- old
+ new

@@ -2,11 +2,10 @@ data_miner do schema Earth.database_options do string 'name' string 'carrier_name' string 'mode_name' - boolean 'include_in_fallbacks' float 'package_volume' float 'route_inefficiency_factor' float 'transport_emission_factor' string 'transport_emission_factor_units' end @@ -14,69 +13,43 @@ import "a list of carrier modes and their characteristics", :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGRsRkJOd0NPd0FETTI0NmpYUlBsN2c&hl=en&single=true&gid=0&output=csv' do key 'name' store 'carrier_name' store 'mode_name' - store 'include_in_fallbacks' store 'package_volume' store 'route_inefficiency_factor' store 'transport_emission_factor', :units_field_name => 'transport_emission_factor_units' end # Don't need to check that carrier_name appears in carriers b/c carriers is derived from carrier_modes.carrier_name - verify "Carrier name should never be missing" do - CarrierMode.all.each do |carrier_mode| - if carrier_mode.carrier_name.nil? - raise "Missing carrier name for CarrierMode #{carrier_mode.name}" - end - end - end - # Don't need to check that mode_name appears in shipment_modes b/c shipment_modes is derived from carrier_modes.mode_name - verify "Mode name should never be missing" do - CarrierMode.all.each do |carrier_mode| - if carrier_mode.mode_name.nil? - raise "Missing mode name for CarrierMode #{carrier_mode.name}" + # FIXME TODO test for valid transport_emission_factor_units + %w{carrier_name mode_name transport_emission_factor_units}.each do |attribute| + verify "#{attribute.humanize} should never be missing" do + CarrierMode.all.each do |carrier_mode| + value = carrier_mode.send(:"#{attribute}") + unless value.present? + raise "Missing #{attribute.humanize.downcase} for CarrierMode #{carrier_mode.name}" + end end end end - verify "Include in fallbacks should never be missing" do - CarrierMode.all.each do |carrier_mode| - if carrier_mode.include_in_fallbacks.nil? - raise "Missing include in fallbacks for CarrierMode #{carrier_mode.name}" + %w{package_volume transport_emission_factor}.each do |attribute| + verify "#{attribute.humanize} should be greater than zero" do + CarrierMode.all.each do |carrier_mode| + value = carrier_mode.send(:"#{attribute}") + unless value > 0 + raise "Invalid #{attribute.humanize.downcase} for CarrierMode #{carrier_mode.name}: #{value} (should be > 0)" + end end end end - verify "Package volume should be greater than zero" do - CarrierMode.all.each do |carrier_mode| - unless carrier_mode.package_volume > 0 - raise "Invalid package volume for CarrierMode #{carrier_mode.name}: #{carrier_mode.package_volume} (should be > 0)" - end - end - end - verify "Route inefficiency factor should be one or more" do CarrierMode.all.each do |carrier_mode| unless carrier_mode.route_inefficiency_factor >= 1.0 raise "Invalid route inefficiency factor for CarrierMode #{carrier_mode.name}: #{carrier_mode.route_inefficiency_factor} (should be >= 1.0)" - end - end - end - - verify "Transport emission factor should be greater than zero" do - CarrierMode.all.each do |carrier_mode| - unless carrier_mode.transport_emission_factor > 0 - raise "Invalid transport emission factor for CarrierMode #{carrier_mode.name}: #{carrier_mode.transport_emission_factor} (should be > 0)" - end - end - end - - verify "Transport emission factor units should never be missing" do - CarrierMode.all.each do |carrier_mode| - if carrier_mode.transport_emission_factor_units.nil? - raise "Missing transport emission factor units for CarrierMode #{carrier_mode.name}" end end end end end