Class: Martlet::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/martlet/cli.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/martlet/cli.rb', line 55

def self.exit_on_failure?
  true
end

Instance Method Details

#courses(semester = nil, year = nil) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/martlet/cli.rb', line 29

def courses(semester = nil, year = nil)
  if semester.nil? || year.nil?
    semester, year = current_semester_and_year
  end

  puts 'Fetching courses...'
  schedule = client.schedule(semester, year)
  courses = schedule.fetch_courses
  course_name_size = courses.map { |c| c.name.length }.max

  puts "#{semester.capitalize} #{year} courses"

  courses.each do |course|
    course_row_format = "%-11s %-#{course_name_size}s @ %s\n"
    printf course_row_format, "#{course.number}", course.name, course.location
  end

  puts 'No courses found' if courses.empty?

  if options[:export] && !courses.empty?
    filename = "#{semester}_#{year}.ics"
    puts "Exporting courses to #{filename}..."
    client.export_calendar(filename, courses)
  end
end

#gradesObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/martlet/cli.rb', line 11

def grades
  puts 'Fetching grades...'
  grades = client.grades

  grades = case options['sort']
  when 'course' then grades.sort_by { |k,v| k }
  when 'grade'  then grades.sort_by { |k,v| Grade.new v }
  else grades
  end

  grades.each do |number, grade|
    puts "#{number}: #{grade}"
  end
end