Created
March 29, 2016 16:42
-
-
Save mindplace/e2be6ed10ac4a15b3e1c5db63cfea1fd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'date' | |
class GlobalCohort | |
attr_reader :local_cohorts, :name, :p0_start_date | |
def initialize(name, p0_start_date=nil) | |
@local_cohorts = [] | |
@students = [] | |
@name = name | |
@p0_start_date = p0_start_date.nil? ? Date.today : p0_start_date | |
end | |
def students | |
# returns student objects, not just names | |
total_students = [] | |
local_cohorts.each do |cohort| | |
total_students << cohort.students | |
end | |
total_students.flatten | |
end | |
def student_names_list | |
total_students = [] | |
local_cohorts.each do |cohort| | |
total_students << cohort.students.map{|student| student.student_name} | |
end | |
total_students.flatten | |
end | |
def email_list | |
students.map{|student| student.email} | |
end | |
def num_of_students | |
students.length | |
end | |
def add_local_cohort(city) | |
@local_cohorts << city | |
end | |
def phases | |
{phase0: {start: p0_start_date, finish: (p0_start_date + 62)}, | |
phase1: {start: (p0_start_date + 63), finish: (p0_start_date + 76)}, | |
phase2: {start: (p0_start_date + 77), finish: (p0_start_date + 90)}, | |
phase3: {start: (p0_start_date + 91), finish: (p0_start_date + 111)}, | |
phase4: {start: (p0_start_date + 112), finish: (p0_start_date + 116)}} | |
end | |
def currently_in_phase | |
phases.each do |phase, dates| | |
if phases[phase][:start] <= Date.today && phases[phase][:finish] >= Date.today | |
return phase.to_s | |
end | |
end | |
end | |
def phases_schedule | |
puts "Phase 0: #{phases[:phase0][:start]} to #{phases[:phase0][:finish]}" | |
puts "Phase 1: #{phases[:phase1][:start]} to #{phases[:phase1][:finish]}" | |
puts "Phase 2: #{phases[:phase2][:start]} to #{phases[:phase2][:finish]}" | |
puts "Phase 3: #{phases[:phase3][:start]} to #{phases[:phase3][:finish]}" | |
puts "Phase 4: #{phases[:phase4][:start]} to #{phases[:phase4][:finish]}" | |
puts "Graduation: #{phases[:phase4][:finish] + 1}" | |
end | |
def immersive_start_date | |
phases[:phase1][:start].strftime("%v") | |
end | |
def graduation_date | |
phases[:phase4][:finish].strftime("%v") | |
end | |
def graduated? | |
phases[:phase4][:finish] < Date.today | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment