You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							29 lines
						
					
					
						
							899 B
						
					
					
				
			
		
		
	
	
							29 lines
						
					
					
						
							899 B
						
					
					
				require "csv" | 
						|
 | 
						|
namespace :data_import do | 
						|
  desc "Import annual rent range data" | 
						|
  task :rent_ranges, %i[start_year path] => :environment do |_task, args| | 
						|
    start_year = args[:start_year] | 
						|
    path = args[:path] | 
						|
    count = 0 | 
						|
 | 
						|
    raise "Usage: rake data_import:rent_ranges[start_year,'path/to/csv_file']" if path.blank? || start_year.blank? | 
						|
 | 
						|
    CSV.foreach(path, headers: true) do |row| | 
						|
      LaRentRange.upsert( | 
						|
        { ranges_rent_id: row["ranges_rent_id"], | 
						|
          lettype: row["lettype"], | 
						|
          beds: row["beds"], | 
						|
          start_year:, | 
						|
          la: row["la"], | 
						|
          soft_min: row["soft_min"], | 
						|
          soft_max: row["soft_max"], | 
						|
          hard_min: row["hard_min"], | 
						|
          hard_max: row["hard_max"] }, | 
						|
        unique_by: %i[start_year lettype beds la], | 
						|
      ) | 
						|
      count += 1 | 
						|
    end | 
						|
    pp "Created/updated #{count} LA Rent Range records" unless Rails.env.test? | 
						|
  end | 
						|
end
 | 
						|
 |