# frozen_string_literal: true
namespace :us_geo do
namespace :import do klasses = { regions: USGeo::Region, divisions: USGeo::Division, states: USGeo::State, designated_market_areas: USGeo::DesignatedMarketArea, combined_statistical_areas: USGeo::CombinedStatisticalArea, core_based_statistical_areas: USGeo::CoreBasedStatisticalArea, metropolitan_divisions: USGeo::MetropolitanDivision, counties: USGeo::County, county_subdivisions: USGeo::CountySubdivision, urban_areas: USGeo::UrbanArea, places: USGeo::Place, zctas: USGeo::Zcta, zcta_counties: USGeo::ZctaCounty, zcta_urban_areas: USGeo::ZctaUrbanArea, zcta_places: USGeo::ZctaPlace, urban_area_counties: USGeo::UrbanAreaCounty, place_counties: USGeo::PlaceCounty } klasses.each do |name, klass| desc "Import data for #{klass}" task name => :environment do t = Time.now klass.load! puts "Loaded #{klass.count} rows into #{klass.table_name} in #{(Time.now - t).round(1)}s" klass.removed.find_each do |record| puts(" WARNING: #{klass}.#{record.id} status changed to removed") end end desc "Import data for all USGeo models" task all: :environment do klasses.each_key do |name| Rake::Task["us_geo:import:#{name}"].invoke end end end end
end