Module: GroupMixer

Defined in:
lib/group_mixer.rb,
lib/group_mixer/group.rb,
lib/group_mixer/mixer.rb,
lib/group_mixer/version.rb,
lib/group_mixer/weighted_group.rb

Defined Under Namespace

Classes: Group, Mixer, WeightedGroup, ZeroGroupSize, ZeroMaxMemberSize

Constant Summary collapse

VERSION =
"0.5.0"

Class Method Summary collapse

Class Method Details

.by_group_size(people, past_set, group_size, is_separate_reminders = false) ⇒ Object



9
10
11
# File 'lib/group_mixer.rb', line 9

def self.by_group_size(people, past_set, group_size, is_separate_reminders = false)
  Mixer.new(people, past_set, group_size, is_separate_reminders).execute
end

.by_member_size(people, past_set, max_member_size, is_separate_reminders = false) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/group_mixer.rb', line 13

def self.by_member_size(people, past_set, max_member_size, is_separate_reminders = false)
  if max_member_size.to_f < 1
    raise ZeroMaxMemberSize, 'max_member_size must be a number greater than 1'
  end
  group_size = (people.size / max_member_size.to_f).ceil
  Mixer.new(people, past_set, group_size, is_separate_reminders).execute
end