class Ruboty::GithubAssignor::Assignor

Attributes

current[RW]

Public Class Methods

new(assignees) click to toggle source
# File lib/ruboty/github_assignor/assignor.rb, line 9
def initialize(assignees)
  @mutex = Mutex.new
  @assignees = assignees.map do |assignee|
    Assignee.new(*assignee.values_at(*Assignee.members))
  end
  @current = rand(@assignees.size)
end

Public Instance Methods

next() click to toggle source
# File lib/ruboty/github_assignor/assignor.rb, line 17
def next
  @mutex.synchronize do
    assignee = @assignees[@current % @assignees.size]
    @current += 1

    assignee
  end
end