class UserImport
Attributes
fail_log[R]
success_log[R]
uids[R]
user_api[R]
Public Class Methods
new(limit=nil)
click to toggle source
# File import_scripts/osm_api/import_users.rb, line 7 def initialize(limit=nil) @user_api = OSMAPI.new("http://api.openstreetmap.org/api/0.6/user/") #Open Log files # @success_log = LogFile.new("logs/users","successful") # @fail_log = LogFile.new("logs/users","failed") @limit = limit end
Public Instance Methods
convert_osm_api_to_domain_object_hash(osm_api_hash)
click to toggle source
# File import_scripts/osm_api/import_users.rb, line 50 def convert_osm_api_to_domain_object_hash(osm_api_hash) data = osm_api_hash[:osm][:user] data[:user] = data[:display_name] data[:uid] = data[:id] data[:account_created] = Time.parse data[:account_created] data.delete :display_name data.delete :id return data end
distinct_uids()
click to toggle source
# File import_scripts/osm_api/import_users.rb, line 17 def distinct_uids @uids ||= get_distinct_uids end
get_distinct_uids()
click to toggle source
# File import_scripts/osm_api/import_users.rb, line 22 def get_distinct_uids uids = [] uids = DatabaseConnection.database["nodes"].distinct("uid") uids += DatabaseConnection.database["ways"].distinct("uid") uids += DatabaseConnection.database["relations"].distinct("uid") if @limit.nil? return uids.uniq! else return uids.uniq!.first(@limit) end end
import_user_objects()
click to toggle source
# File import_scripts/osm_api/import_users.rb, line 34 def import_user_objects distinct_uids.each_with_index do |changeset_id, index| this_user = user_api.hit_api(changeset_id) user_obj = User.new convert_osm_api_to_domain_object_hash this_user user_obj.save! if (index%10).zero? print '.' elsif (index%101).zero? print index end end end