#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../config/environment' include Noosfero::SampleDataHelper categories = $environment.categories places = [ { :country=>'BR', :city=>'Salvador', :lat=>-12.94032, :lng=>-38.58398 }, { :country=>'BR', :city=>'São Paulo', :lat=>-23.54894, :lng=>-46.63881 }, { :country=>'BR', :city=>'Rio de Janeiro', :lat=>-22.90353, :lng=>-43.20958 }, { :country=>'AR', :city=>'Buenos Aires', :lat=>-34.61088, :lng=>-58.39782 }, { :country=>'AR', :city=>'Mar del Plata', :lat=>-37.98317, :lng=>-57.59513 }, { :country=>'MX', :city=>'Acapulco', :lat=>16.86369, :lng=>-99.88151 }, { :country=>'US', :city=>'Los Angeles', :lat=>34.02307, :lng=>-118.24310 }, { :country=>'IT', :city=>'Roma', :lat=>41.89512, :lng=>12.48184 }, { :country=>'IN', :city=>'Mumbai', :lat=>19.01798, :lng=>72.85583 }, { :country=>'CN', :city=>'Shanghai', :lat=>31.23041, :lng=>121.47308 }, { :country=>'JP', :city=>'Tokyo', :lat=>35.68964, :lng=>139.69116 }, { :country=>'FR', :city=>'Paris', :lat=>48.85658, :lng=>2.351074 }, { :country=>'BW', :city=>'Sowa', :lat=>-20.56891, :lng=>26.22367 } ] people = [] NAMES = %w[ José João Antonio Paulo Maria Joana Paula Angela ] SURNAMES = %w[ Silva Santos Abreu Oliveira Machado Bonfim ] print "Creating users: " for name in NAMES for surname in SURNAMES full_name = [name, surname].join(' ') user = User.new({ :login => full_name.to_slug, :email => full_name.to_slug + '@localhost.localdomain', :password => 'test', :password_confirmation => 'test', :environment => $environment, }) save user do user.person.name = full_name place = places[rand(places.length)] user.person.data[:country] = place[:country] user.person.city = place[:city] user.person.lat = place[:lat] + (rand/100)-0.005 user.person.lng = place[:lng] + (rand/100)-0.005 user.person.save! categories.rand.people << user.person categories.rand.people << user.person end end end ze = User.new({ :login => "ze", :email => 'root@localhost.localdomain', :password => 'test', :password_confirmation => 'test', :environment => $environment, }) save ze do $environment.add_admin(ze.person) end admin = User.new({ :login => "adminuser", :email => 'adminuser@localhost.localdomain', :password => 'admin', :password_confirmation => 'admin', :environment => $environment, }) save admin do $environment.add_admin(admin.person) end guest = User.new({ :login => "guest", :email => 'guest@localhost.localdomain', :password => 'test', :password_confirmation => 'test', :environment => $environment, }) save guest do 5.times do communities.rand.add_admin(guest.person) communities.rand.add_member(guest.person) end end done print "Activating users: " User.all(:conditions => ["login NOT LIKE '%%_template'"]).each do |user| user.activate print '.' end done people = $environment.people print "Creating some friendships: " rand(people.size * 3).times do from = people.rand to = people.rand if from != to && !from.friends.include?(to) task = AddFriend.new(:requestor => to, :target => from) save task do task.finish end end print '.' end done communities = [] VERBS = ['Save', 'I like', 'Use'] STUFF = ['Free Software', 'Organic food', 'the wales', 'the environment'] print "Creating communities: " for verb in VERBS for stuff in STUFF name = [verb, stuff].join(' ') community = Community.new(:name => name, :environment => $environment) save community do communities << community rand(10).times do community.add_member(people.rand) end categories.rand.communities << community categories.rand.communities << community end end end done