box-o-sand/rails/map-mash/app/models/map.rb

26 lines
577 B
Ruby
Raw Normal View History

require 'fastercsv'
2012-03-04 16:51:35 +00:00
class Map < ActiveRecord::Base
def self.from_city_name(city_name)
self.find_or_initialize_by_name(city_name).save!
end
def self.rand(count = 2)
self.find(:all, :order => 'RANDOM()', :limit => count)
end
def self.import(csv_filename)
FasterCSV.parse(open(csv_filename), :headers => true,
:header_converters => [:downcase, :symbol]).each do |row|
map = self.find_or_initialize_by_name(
"#{row[:city]}, #{row[:country]}"
)
map.save
if block_given?
yield map
end
end
end
2012-03-04 16:51:35 +00:00
end