Guest User

Untitled

a guest
May 25th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. class Scheduling
  2.  
  3.  
  4. attr_reader :sticky_user
  5.  
  6. def initialize(tasks, users)
  7. @users = users
  8. @assigments = order_tasks(tasks).map do |task|
  9. users = select_users_for_task(task)
  10. Assignment.new(task, users, self)
  11. end
  12. end
  13.  
  14. private
  15.  
  16. def order_tasks(tasks)
  17. #here we order tasks by priority
  18. end
  19.  
  20. def select_users_for_task(task)
  21. #here we get all the users that could perform that task, from our @users array.
  22. end
  23.  
  24. end
  25.  
  26. class Assignment
  27. def initialize(task, users, scheduling)
  28. @scheduling = scheduling
  29. @task = task
  30. @scheduling.sticky_user = @user = order_users(users).first
  31. @events = @user.add_to_bucket(self)
  32. end
  33.  
  34. private
  35.  
  36. def order_users(users)
  37. #here we find the best user to do the job.
  38.  
  39. #rule 1 - the 'sticky user' gets priority
  40. if @scheduling.sticky_user && users.include?(@scheduling.sticky_user)
  41. ( [@scheduling.sticky_user] + users ).uniq
  42. else
  43. users
  44. end
  45. end
  46.  
  47.  
  48. end
Add Comment
Please, Sign In to add comment