Class: Studium::Statistics::ReportHowManyEctsPointsPerCurriculumWereCompleted

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/statistics/report_how_many_ects_points_per_curriculum_were_completed.rb

Overview

Studium::Statistics::ReportHowManyEctsPointsPerCurriculumWereCompleted.new

Constant Summary collapse

NAMESPACE =
#

NAMESPACE

#
inspect

Constants inherited from Base

Base::ARRAY_HTML_COLOURS_IN_USE, Base::CHECK_FOR_INCORRECT_ENTRIES_IN_THE_QUESTION_ANSWER_FILE_THAT_SHOULD_BE_COMMENTS, Base::COLOURS, Base::COMMON_YEAR_DAYS_IN_MONTH, Base::GRAY, Base::LEFT_PADDING, Base::N_CHARACTERS_PER_LINE, Base::UNICODE_RIGHT_ARROW

Constants included from Colours

Colours::COLOURS

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#add_proper_year_entry_to_this_line, #already_solved_this_lva_number?, #append_what_into, #available_topics_as_short_name, #average_grade, #bachelor_master_or_diploma, #base_dir?, #be_silent, #be_verbose?, #beautiful_url, #change_directory, #cheering_person, #cliner, #colour_for_ects_points, #colourize_percentage, #commandline_arguments?, #commandline_arguments_joined, #commandline_arguments_with_hyphens?, #convert_this_array_of_lectures_into_the_full_dataset, #copy, #cpruby, #create_directory, #create_file, #csv_file?, #current_month?, #datum?, #day_month_year, #debug?, #delete_file, #directory_of_the_exam_topics?, #directory_to_my_exam_topics, #directory_to_the_exam_topics?, #disable_colours, #disable_colours_globally, #do_not_be_verbose, #do_not_use_opn, #do_these_curricula_include_both_a_bachelor_and_a_master_curriculum?, #does_this_line_include_a_german_weekday?, #does_this_line_include_a_html_colour?, #e, #ecomment, #editor?, #ee, #enable_colours, #enable_colours_globally, #enable_debug, #encoding?, #english_to_german_weekday, #ensure_main_encoding, #ensure_that_the_log_directory_exists, #eparse, #erev, #esystem, #etomato, #exit_program, #expand_topic, #extract_dd_mm_yyyy, #file_lecture_information?, #file_read_with_proper_encoding, #filter_away_invalid_questions, #find_corresponding_exam_topic, #first_argument?, #first_non_hyphen_argument?, #from_curriculum_id_to_university, #german_date_notation, #german_weekday?, #german_weekdays?, #has_a_bachelor_curriculum?, #has_a_master_curriculum?, #has_this_exam_topic_been_solved?, #has_year_entry?, #hh_mm_ss_dd_mm_yyyy, #horizontal_bar?, #html_log_directory?, #is_a_master_lecture?, #is_a_weekday?, #is_connected_to_the_www?, #is_on_roebe?, #is_prüfungsimmanent?, #is_this_a_valid_html_colour?, #is_this_day_today?, #konsole_support?, #last_file?, #lectures_from_indi1, #lectures_from_indi2, #lectures_from_indi3, #lectures_from_indi4, #lectures_from_the_bachelor_genetik_curriculum, #lectures_from_the_individual_vektor_curricula, #load_yaml_dataset, #move_file, #n_days_difference_from_today_to_this_day, #no_ext_name, #no_file_at, #number_to_month, #obtain, #obtain_lectures_from_this_curriculum, #open_in_editor, #opnn, #path_to_exam_topic?, #read_dataset_from_a_curriculum_file, #read_in_exam_dataset_from_this_file, #read_this_file_with_default_encoding, #readlines_from_this_input_file, #register_sigint, #remove_empty_strings, #remove_escape_sequences, #remove_internal_comments, #remove_leading_comments, #remove_leading_weekday_names_from, #remove_newlines, #remove_tags_from_this_input, #rename_kde_konsole_tab, #rename_konsole_tab?, #replace_all_html_colours_in_this, #replace_bold_token_with_default_colour, #replace_italic_token_with_default_colour, #replace_italic_token_with_this_colour, #replace_regular_numbers_with_unicode_numbers, #replace_underline_token_with_default_colour, #replace_underline_token_with_this_colour, #return_all_bachelor_lectures, #return_all_exams_on_this_day, #return_all_numbers_from, #return_all_registered_curricula, #return_all_steop_lectures, #return_current_year, #return_dataset_for_this_topic, #return_dataset_from_this_curriculum_file, #return_dd_mm_yy_and_time_from, #return_directory_for, #return_ects_points_from_these_lectures, #return_either_grey_or_the_custom_colour_for_answers, #return_either_grey_or_the_custom_colour_for_questions, #return_file_for_this_curriculum, #return_german_name_for_this_english_month, #return_german_weekday_of?, #return_hh_mm_ss_from, #return_hour_from_this, #return_lectures_from_bachelor_vektor_curriculum, #return_lectures_with_at_the_least_one_upcoming_exam, #return_local_path_of_this_pwdstud, #return_lva_number_of_this_lecture, #return_month_fitting_to_this_input, #return_n_days_until_monday, #return_n_days_until_sunday, #return_n_exam_questions_in, #return_n_questions_were_answered_for_this_topic, #return_name_of_the_weekday, #return_name_of_this_curriculum, #return_name_of_this_curriculum_based_on_its_id_number, #return_opnn, #return_passed_courses, #return_pwd, #return_random_curriculum, #return_sanitized_dataset_from_the_file_lecture_information, #return_solved_lectures, #return_steop_lectures, #return_the_remote_homepage_url, #return_this_line_has_n_characters_as_html_colour_tags, #return_title_from_this_curriculum_file, #rev, #right_arrow?, #rinstall2, #roebe_exam_directory?, #ruby_src_dir_at_home?, #runmode?, #sanitize_this_topic, #sanitize_url, #select_lectures_with_this_key, #set_be_quiet, #set_be_verbose, #set_commandline_arguments, #set_commandline_mode, #set_runmode, #set_this_cd_alias_to, #set_www_mode, #sfancy, #shall_we_make_use_of_unicode_symbols?, #show_todays_date, #simp, #sort_these_lecture_names_by_time, #spacer, #swarn, #this_month_has_n_days?, #total_ects_points_passed, #translate_dd_mm_yyyy_to_weekday, #try_to_require_the_rcfiles, #turn_this_array_into_the_full_dataset, #unicode_blocks_line, #use_colours?, #use_opn?, #vertical_bar?, #web_liner, #weekday?, #weekdays?, #word_wrap, #write_what_into, #www_connection_is_unavailable, #www_mode?, #yaml_dir?

Methods included from Colours

#bold_blue, #bold_red, #bold_yellow, #cadetblue, #chartreuse, crimson, #darkgray, darkgreen, darkseagreen, deepskyblue, #deepskyblue, default_colour, #dimgray, disable_colours, #dodgerblue, e, #efancy, enable_colours, #ewarn, #forestgreen, gold, #grey, lightblue, lightgreen, #lightslategray, #lightsteelblue, #mediumorchid, #mediumseagreen, #oldlace, #olivedrab, orange, orangered, #orchid, palevioletred, #papayawhip, rev, royalblue, sdir, #sdir, sfancy, #sfancy, sfile, #sfile, simp, #simp, slateblue, steelblue, #steelblue, #swarn, swarn, #teal, turquoise, use_colours?, use_this_colour_for_exam_answers, use_this_colour_for_exam_questions, #yellow

Constructor Details

#initialize(i = nil, run_already = true) ⇒ ReportHowManyEctsPointsPerCurriculumWereCompleted

#

initialize

#


35
36
37
38
39
40
41
42
# File 'lib/studium/statistics/report_how_many_ects_points_per_curriculum_were_completed.rb', line 35

def initialize(
    i           = nil,
    run_already = true
  )
  reset
  set_input(i)
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

Studium::Statistics::ReportHowManyEctsPointsPerCurriculumWereCompleted[]

#


164
165
166
# File 'lib/studium/statistics/report_how_many_ects_points_per_curriculum_were_completed.rb', line 164

def self.[](i = '')
  new(i)
end

Instance Method Details

#input?Boolean

#

input?

#

Returns:

  • (Boolean)


82
83
84
# File 'lib/studium/statistics/report_how_many_ects_points_per_curriculum_were_completed.rb', line 82

def input?
  @input
end

#report_these_curricula(i = @array_bachelor_curricula) ⇒ Object

#

report_these_curricula

This method will do the actual reporting-part of the various curricula.

#


107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/studium/statistics/report_how_many_ects_points_per_curriculum_were_completed.rb', line 107

def report_these_curricula(
    i = @array_bachelor_curricula
  )
  i.each {|this_curriculum|
    @show_lectures_on_the_commandline.reset
    @show_lectures_on_the_commandline.no_html_and_do_not_report_anything
    # ===================================================================== #
    # Assign the proper curriculum next.
    # ===================================================================== #
    @show_lectures_on_the_commandline.use_this_curriculum = this_curriculum
    @show_lectures_on_the_commandline.read_in_main_dataset_from_the_existing_files
    @show_lectures_on_the_commandline.do_the_main_iteration
    # ===================================================================== #
    # Find out how many ECTS were passed in that curriculum.
    # ===================================================================== #
    n_ects_were_passed_in_this_curriculum =
      @show_lectures_on_the_commandline.n_ects_were_passed_in_this_curriculum
    total_ects_points = 
      @show_lectures_on_the_commandline.total_ects_points?
    percentage = (n_ects_were_passed_in_this_curriculum.to_f * 100 ) / total_ects_points
    formatted_percentage = (percentage.round(2).to_s).ljust(5, '0')
    # ===================================================================== #
    # The percentage will be crimson by default; and a slightly stronger
    # red colour if the percentage is above '50'.
    # ===================================================================== #
    if formatted_percentage.strip.to_f > 50
      colourized_and_formatted_percentage = orangered(' '+formatted_percentage+'%')
    else
      colourized_and_formatted_percentage = crimson(' '+formatted_percentage+'%')
    end
    # ===================================================================== #
    # Ok - we prepared our object; now we can query some values, which
    # we can then report to the user.
    # ===================================================================== #
    name_of_the_curriculum = @show_lectures_on_the_commandline.name_of_the_curriculum
    # ===================================================================== #
    # Some titles are too long, so we trim these very specifically.
    # ===================================================================== #
    _ = 'Vector-based strategies in Life Sciences, Molecular Medicine and Biotechnology'
    if name_of_the_curriculum
      if name_of_the_curriculum.include? _
        index = name_of_the_curriculum.index(_) - 1
        name_of_the_curriculum = name_of_the_curriculum[0 .. (index + _.size)]+' [...]'
      end
    end
    result = orange(name_of_the_curriculum.to_s.ljust(63))+
             slateblue(n_ects_were_passed_in_this_curriculum.to_s.rjust(5)+
             ' ECTS points of ')+royalblue(total_ects_points.to_s+' ECTS ')+
             slateblue('points in total were completed successfully')+
             colourized_and_formatted_percentage
    e result
  }
end

#resetObject

#

reset (reset tag)

#


47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/studium/statistics/report_how_many_ects_points_per_curriculum_were_completed.rb', line 47

def reset
  super()
  # ======================================================================= #
  # === @namespace
  # ======================================================================= #
  @namespace = NAMESPACE
  @show_lectures_on_the_commandline = Studium::ShowLecturesOnTheCommandline.new(:do_not_run_yet)
  @array_bachelor_curricula = %i(
    bachelor_vektorx
    bachelor_genetics
    bachelor_molbio
    bachelor_lmbt
    bachelor_agrarwissenschaften
  )
  @array_master_curricula = %i(
    master_vektorx
    master_immuno
    master_molbio
    master_lmbt
    master_tuwien_biotechnologie
  )
end

#runObject

#

run (run tag)

#


89
90
91
92
93
94
95
96
97
98
99
# File 'lib/studium/statistics/report_how_many_ects_points_per_curriculum_were_completed.rb', line 89

def run
  e
  opnn; e 'First going through Bachelor lectures:'
  e
  report_these_curricula(@array_bachelor_curricula)
  e
  opnn; e 'Next going through Master lectures:'
  e
  report_these_curricula(@array_master_curricula)
  e
end

#set_input(i = '') ⇒ Object

#

set_input

#


73
74
75
76
77
# File 'lib/studium/statistics/report_how_many_ects_points_per_curriculum_were_completed.rb', line 73

def set_input(i = '')
  i = i.first if i.is_a? Array
  i = i.to_s.dup
  @input = i
end