Class: CourseData

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/jakdlugo/course_data.rb

Constant Summary

Constants included from Helpers

Helpers::ASSESSMENTS, Helpers::JS_TRACK, Helpers::RB_TRACK

Instance Method Summary collapse

Methods included from Helpers

#display_bad_course_error, #format_track, #has_assessment?, #include_assessment, #valid_course?, #valid_track?

Constructor Details

#initializeCourseData

Returns a new instance of CourseData.



7
8
9
10
# File 'lib/jakdlugo/course_data.rb', line 7

def initialize
  @connection = db_connection
  setup_db
end

Instance Method Details

#course_summary(course) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/jakdlugo/course_data.rb', line 12

def course_summary(course)
  return unless valid_course?(course)

  course = ASSESSMENTS.key(course) if ASSESSMENTS.values.include?(course)
  hours_arr = course_info(course)
  display_course_summary(course, hours_arr)
end

#progress_summary(track, course) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/jakdlugo/course_data.rb', line 27

def progress_summary(track, course)
  return unless valid_track?(track) && valid_course?(course)

  hash = track_info(track).map { |course, _, percent| [course, percent] }.to_h
  course = ASSESSMENTS.key(course) if ASSESSMENTS.values.include?(course)
  you_are_here = hash.keys.index(course)
  return display_bad_course_error unless you_are_here

  percent = hash.values[0..you_are_here].reduce(:+).round

  display_progress_summary(course, percent)
end

#track_summary(track) ⇒ Object



20
21
22
23
24
25
# File 'lib/jakdlugo/course_data.rb', line 20

def track_summary(track)
  return unless valid_track?(track)

  courses_and_hours = track_info(track)
  display_track_summary(courses_and_hours)
end