Class: WorkTogether::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/work_together.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(batch_id = nil) ⇒ Generator

Returns a new instance of Generator.



14
15
16
17
# File 'lib/work_together.rb', line 14

def initialize(batch_id=nil)
  @batch_id = batch_id
  @pair_maker = PairMaker.new
end

Instance Attribute Details

#batch_idObject

Returns the value of attribute batch_id.



12
13
14
# File 'lib/work_together.rb', line 12

def batch_id
  @batch_id
end

#clientObject

Returns the value of attribute client.



12
13
14
# File 'lib/work_together.rb', line 12

def client
  @client
end

#keysObject

Returns the value of attribute keys.



12
13
14
# File 'lib/work_together.rb', line 12

def keys
  @keys
end

#pair_makerObject

Returns the value of attribute pair_maker.



12
13
14
# File 'lib/work_together.rb', line 12

def pair_maker
  @pair_maker
end

Instance Method Details

#generate_togetherness(options, quiet = nil) ⇒ Object



20
21
22
23
# File 'lib/work_together.rb', line 20

def generate_togetherness(options, quiet=nil)
  make_batch
  make_groups(options, quiet)
end

#helpObject



59
60
61
62
63
64
65
66
67
68
# File 'lib/work_together.rb', line 59

def help
  puts "Available commands:"
    puts "work-together pairs --random batch-number          generate pairs randomly"
    puts "work-together pairs --progress batch-number        generate pairs grouped by similar progress"
    puts "work-together pairs --mindful batch-number         generate pairs with one person who is more advanced, one person less advanced"
    puts "work-together tables --random batch-number         generate tables randomly"
    puts "work-together tables --progress batch-number       generate tables grouped by similar progress"
    puts "work-together tables --mindful batch-number        generate tables with some people more advanced, some less"
    puts "work-together groups --num-of-groups batch-number  genereate n number of groups" 
end

#make_batchObject



25
26
27
28
29
30
# File 'lib/work_together.rb', line 25

def make_batch
  configure_client
  student_data = get_and_parse_csv
  Student.generate_from_data(student_data)
  Student.all
end

#make_batch_dataObject



32
33
34
35
# File 'lib/work_together.rb', line 32

def make_batch_data
  configure_client
  get_and_parse_csv
end

#make_groups(options, quiet = nil, students = nil) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/work_together.rb', line 37

def make_groups(options, quiet=nil, students=nil)
  students ||= Student.all
  flag = options[1][2..-1]
  if options.include?("pairs")
    pair_maker.public_send("make_pairs_#{flag}", students)
  elsif options.include?("tables")
    pair_maker.public_send("make_tables_#{flag}", students)
  elsif options.include?("groups")
    pair_maker.public_send("make_groups", flag, students)
  elsif options.include?("--help")
    help
  else
    puts "Please enter a valid command. Type work-together --help for more."
  end
  if !quiet && Group.all.length > 0
    Group.display_groups 
  else
    Group.all
  end
end