namespace :db do

namespace :populate do

  desc "Create populate data with events"
  task :create => 'create:events'

  namespace :create do
    desc "Add events to populate data"
    task :events => :read_environment do
      scope = 2.months

      SocialStream::Population::ActivityObject.new Event do |l|
        l.title = Forgery::LoremIpsum.words(1+rand(4),:random => true)
        l.description = Forgery::LoremIpsum.sentences(1+rand(4), :random => true)

        s = rand(scope)
        s *= -1 if [ true, false ].sample

        l.start_at = Time.at(Time.now.to_i + s)

        if rand(1) > 0.25
          l.start_at = l.start_at.begining_of_day
          l.end_at   = l.start_at.end_of_day
          l.all_day  = true
        else
          l.end_at = l.start_at + rand(3.days)
        end

        l.frequency = [ 0, 2, 3 ].sample

        case l.frequency
        when 2
          l.interval = [ 1, 2, 3 ].sample
          l.week_days = 7.times.map{ |i| i }.sample(rand(6).to_i + 1)
        when 3
          l.week_day_order = [ 1, 2, 3, -1 ].sample
          l.week_day = 7.times.map{ |i| i }.sample
          l.interval = rand(3).to_i + 1
        end
      end
    end
  end
end

end