Skip to content

Instantly share code, notes, and snippets.

@johnholdun
Forked from Will-Sommers/gist:4fe13e7a9383318f4bcd
Last active August 29, 2015 14:22
Show Gist options
  • Save johnholdun/00455e4a46b7b19e494c to your computer and use it in GitHub Desktop.
Save johnholdun/00455e4a46b7b19e494c to your computer and use it in GitHub Desktop.
An okay way to interleave names
FOLKS = %w(
Caroline
Chris
Dave
Devin
Hindi
John
Kai
Nizar
Pat
Saimon
Sharell
Will
)
Person = Struct.new(:name, :reviewee, :reviewer) do
alias_method :to_s, :name
end
crew = FOLKS
.map { |name| Person.new name }
.shuffle
.tap do |shuffled_crew|
shuffled_crew.zip(shuffled_crew.rotate).each do |reviewer, reviewee|
reviewer.reviewee = reviewee
reviewee.reviewer = reviewer
end
end
.sort_by(&:name)
crew.each do |person|
puts <<-RESULT
#{ person }:
- Reviewing #{ person.reviewee }
- Reviewed by #{ person.reviewer }
RESULT
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment