Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 5th, 2012  |  syntax: None  |  size: 1.86 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.   def self.contenders_for_time_rep(user, rep, desired, cutoff)
  2.     puts "=> Creating contenders..."
  3.     time_bar = (cutoff == nil)? Time.now.to_i : cutoff.to_i
  4.     time_diff = 60*60*24
  5.  
  6.     time_column = "activities.created_at"
  7.     limit = desired * 24 if rep == 3  # otherwise nil
  8.  
  9.     contenders = UserActivity.relevant_to(user)
  10.     puts "=====\n=> #{UserActivity.relevant_to(user).to_sql}"
  11.     puts "=> [#{UserActivity.relevant_to(user).count}]contenders = #{UserActivity.relevant_to(user).class}"
  12.     #contenders = contenders.where("#{time_column} < ?", Time.at(cutoff.to_i)) if cutoff != nil
  13.  
  14.     conditions = ["activities.created_at < ?", Time.at(time_bar)]
  15. =begin
  16. =end
  17.     puts "=> Conditions:\n-> #{conditions}"
  18.     puts "-> #{Hide.hidden_for_sql(user.id)}"
  19.  
  20.     contenders = contenders.where(Hide.hidden_for_sql(user.id))\
  21.                            .where(conditions)\
  22.                            .order("#{time_column} desc").limit(desired)
  23.     puts "=> After applying conditions: #{contenders.count}"
  24.     contenders.where(Hide.hidden_for_sql(user.id))\
  25.         .order("#{time_column} desc").limit(limit).all
  26.   end
  27.  
  28.   def self.time(user, desired=8, before=nil)
  29.     logger.info "Getting time"
  30.     contenders = contenders_for_time_rep(user, 1, desired*2, before)
  31.     show = []
  32.     reps = 0
  33.     while show.length < desired and reps < 5 do
  34.     #  contenders = contenders_for_time_rep(user, reps, desired*2, before)
  35.       contenders.each do |c|
  36.         next if reps<3 && c.user_id == user.id
  37.         show << c
  38.         break if show.length >= desired
  39.       end
  40.       reps += 1
  41.       break if show.length >= desired
  42.     end
  43.  
  44.     puts "========================="
  45.     puts "=> Show:  #{(show.map {|a| a.created_at}).inspect}"
  46.     puts "=> Show:  #{(show.map {|a| a.id}).inspect}"
  47.     puts "========================="
  48.    
  49.     UserActivity.get_needed_models_for_display_by_id show.map {|a| a.id}
  50.   end