Class: Studium::ShowCompletedEctsInAllCurricula

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/ects/show_completed_ects_in_all_curricula.rb

Overview

Studium::ShowCompletedEctsInAllCurricula

Constant Summary collapse

NAMESPACE =
#

NAMESPACE

#
inspect
CUTOFF_VALUE =
#

CUTOFF_VALUE

Below the following value we will not include these ECTS values.

Not honoured if set to nil or false.

#
5.0

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_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_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(commandline_arguments = nil, run_already = true) ⇒ ShowCompletedEctsInAllCurricula

#

initialize

#


40
41
42
43
44
45
46
47
48
49
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 40

def initialize(
    commandline_arguments = nil,
    run_already           = true
  )
  reset
  set_commandline_arguments(
    commandline_arguments
  )
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

Studium::ShowCompletedEctsInAllCurricula[]

#


202
203
204
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 202

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

Instance Method Details

#colourize_ects(i) ⇒ Object

#

colourize_ects

#


176
177
178
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 176

def colourize_ects(i)
  royalblue(i)
end

#commandline_arguments?Boolean

#

commandline_arguments?

#

Returns:

  • (Boolean)


75
76
77
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 75

def commandline_arguments?
  @commandline_arguments
end

#consider_applying_the_cutoff_valueObject

#

consider_applying_the_cutoff_value

#


183
184
185
186
187
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 183

def consider_applying_the_cutoff_value
  if CUTOFF_VALUE.is_a? Float
    @hash.select! {|a,b| b >= CUTOFF_VALUE }
  end
end

#notify_the_user_what_we_will_doObject

#

notify_the_user_what_we_will_do

#


82
83
84
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 82

def notify_the_user_what_we_will_do
  opnn; e "Showing all completed #{colourize_ects('ECTS')} in all curricula."
end

#prepare_the_main_dataset(use_this_dataset = return_sanitized_dataset_from_file_lecture_information) ⇒ Object

#

prepare_the_main_dataset

#


89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 89

def prepare_the_main_dataset(
    use_this_dataset = return_sanitized_dataset_from_file_lecture_information
  )
  @dataset = use_this_dataset
  @dataset.each {|lecture_name, inner_hash_dataset|
    already_solved = inner_hash_dataset[:already_solved]
    next unless already_solved and (already_solved == true)
    n_ects = obtain(:ects, inner_hash_dataset)
    these_curricula = obtain(:curricula, inner_hash_dataset)
    these_curricula.each {|this_curriculum_number|
      unless this_curriculum_number.empty?
        @hash[this_curriculum_number] += n_ects
      end
    }
  }
end

#report(i = @hash) ⇒ Object

#

report (report tag)

#


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
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 109

def report(
    i = @hash
  )
  sorted = i.sort_by {|curriculum_id, n_ects_points|
    n_ects_points
  }.reverse
  e
  sorted.each {|curriculum_id_number, n_ects_points|
    padded_curriculum_id_number = curriculum_id_number.center(7)
    padded_n_ects_points = n_ects_points.to_s.strip.rjust(8)
    this_university = which_university?(curriculum_id_number)
    name_of_the_curriculum = name_of_this_curriculum?(curriculum_id_number)
    if name_of_the_curriculum.include?('Besuch einzelner Lehrveranstaltungen') or
       name_of_the_curriculum.include?('Diplomstudium') or
       name_of_the_curriculum.include?('Freie Wahlfächer')
      next
    end
    if @filter_away_lehramt_lectures and name_of_the_curriculum.include?('Lehramt')
      # =================================================================== #
      # We will skip Lehramt-lectures in this case.
      # =================================================================== #
    else
      # =================================================================== #
      # Otherwise, we will report our findings to the user.
      # =================================================================== #
      # We must truncate the name if it is too long.
      # =================================================================== #
      if (name_of_the_curriculum.size > 79)
        name_of_the_curriculum = name_of_the_curriculum[0 .. 74]+' [...]'
      end
      colourized_name_of_the_curriculum = steelblue(
        name_of_the_curriculum.strip.ljust(82)
      ) .dup
      # =================================================================== #
      # Next we will colourize Bachelorcurriculum and Mastercurriculum a
      # bit differently.
      # =================================================================== #
      if colourized_name_of_the_curriculum.include? 'Mastercurriculum'
        colourized_name_of_the_curriculum.sub!(
          /Mastercurriculum/,
          seagreen('Mastercurriculum')+
          steelblue('')
        )
      elsif colourized_name_of_the_curriculum.include? 'Bachelorcurriculum'
        colourized_name_of_the_curriculum.sub!(
          /Bachelorcurriculum/,
          deepskyblue('Bachelorcurriculum')+
          steelblue('')
        )
      end
      padded_this_university = this_university.ljust(11)
      e '  '+
        slateblue(padded_this_university)+
        seagreen(' (')+
        orange(padded_curriculum_id_number)+
        mediumpurple(' - ')+ # <- A mini-spacer.
        colourized_name_of_the_curriculum+
        seagreen(') ')+
        colourize_ects(padded_n_ects_points) # Colourize the amount of ECTS points.
    end
  }
  e
end

#resetObject

#

reset (reset tag)

#


54
55
56
57
58
59
60
61
62
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 54

def reset
  super()
  # === @namespace
  @namespace = NAMESPACE
  # === @filter_away_lehramt_lectures
  @filter_away_lehramt_lectures = true
  @hash = {}
  @hash.default = 0 # 0 ECTS by default.
end

#runObject

#

run (run tag)

#


192
193
194
195
196
197
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 192

def run
  notify_the_user_what_we_will_do
  prepare_the_main_dataset
  consider_applying_the_cutoff_value
  report
end

#set_commandline_arguments(i = '') ⇒ Object

#

set_input

#


67
68
69
70
# File 'lib/studium/ects/show_completed_ects_in_all_curricula.rb', line 67

def set_commandline_arguments(i = '')
  i = [i].flatten.compact
  @commandline_arguments = i
end