Class: Studium::ShowAllPassedExamsOfThisUniversity

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/exams/show_all_passed_exams_of_this_university.rb

Overview

Studium::ShowAllExamsOfThisUniversity

Constant Summary

Constants inherited from Base

Base::COMMON_YEAR_DAYS_IN_MONTH, Base::LEFT_PADDING, Base::NAMESPACE, Base::N_CHARACTERS_PER_LINE

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, #be_silent, #be_verbose?, #beautiful_url, #change_directory, #cheering_person, #chmod, #cliner, #colour_for_ects_points, #colourize_percentage, #convert_this_array_of_lectures_into_the_full_dataset, #copy, #course_filter, #cpruby, #create_directory, #create_file, #csv_file?, #current_month?, #current_semester?, #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?, #does_this_line_include_an_english_weekday?, #does_this_line_start_with_a_german_weekday?, #e, #ecomment, #editor?, #ee, #egrey, #enable_colours, #enable_colours_globally, #enable_debug, #encoding?, #english_to_german_weekday, #ensure_that_a_base_directory_exists_for_this_file, #ensure_that_the_log_directory_exists, #eparse, #esystem, #etomato, #exit_program, #extract_dd_mm_yyyy, #fetch_this_curriculum, #file_important_exams?, #file_lecture_information?, #file_passed_exams_per_month, #file_read_with_proper_encoding, #filter_away_already_answered_questions, #filter_away_invalid_questions, #filter_for_all_passed_exams, #find_corresponding_exam_topic, #from_curriculum_id_to_university, #german_date_notation, #german_weekday?, #german_weekdays?, #german_weekend_for?, #german_yes_or_no, #has_a_bachelor_and_a_master_curriculum?, #has_a_bachelor_curriculum?, #has_a_master_curriculum?, #has_lva_dates_registered?, #has_this_exam_topic_been_solved?, #has_year_entry?, #hh_mm_ss_dd_mm_yyyy, #horizontal_bar?, #html_log_directory?, #infer_the_namespace, #initialize_the_internal_hash, #internal_hash?, #is_a_master_lecture?, #is_a_registered_curriculum?, #is_a_weekday?, #is_connected_to_the_www?, #is_german_weekday?, #is_on_roebe?, #is_prüfungsimmanent?, #is_this_a_registered_exam_topic?, #is_this_a_valid_html_colour?, #is_this_day_today?, #is_this_lecture_a_practical_course?, #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, #left_arrow?, #load_yaml_dataset, #map_input_to_this_curriculum_filename, #move_file, #n_days_difference_from_today_to_this_day, #n_seconds_to_n_days, #namespace?, #no_ext_name, #no_file_exists_at, #number_to_month, #obtain, #obtain_lectures_from_this_curriculum, #open_in_browser, #open_in_editor, #opne, #opnerev, #opnn, #padded_current_month?, #parse_dd_mm_yyyy, #parse_this_line_for_date_entry, #path_to_exam_topic?, #project_yaml_directory?, #rds, #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, #require_open_uri, #reset_the_internal_state, #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, #right_arrow?, #rinstall2, #roebe_exam_directory?, #roebe_path_to_file_lecture_information?, #ruby_src_dir_at_home?, #sanitize_this_topic, #sanitize_url, #select_for_prüfungsimmanente_LVs, #select_lectures_with_this_key, #set_be_verbose, #set_this_cd_alias_to, #set_xorg_buffer, #sfancy, #shall_we_make_use_of_unicode_symbols?, #show_todays_date, #silently_open_in_browser, #simp, #sort_these_lecture_names_by_time, #spacer, #studium_log_dir?, #this_month_has_n_days?, #total_ects_points_passed, #translate_dd_mm_yyyy_to_weekday, #try_to_require_html_templates, #try_to_require_the_open_gem, #try_to_require_the_rcfiles, #try_to_require_the_verbose_truth_gem, #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, #yaml_dir?, #yellowrev, #yes_or_no

Methods included from RunmodeModule

#commandline?, #runmode?, #set_commandline_mode, #set_runmode, #set_www_mode, #www_mode?

Methods included from CommandlineArgumentsModule

#commandline_arguments?, #commandline_arguments_joined, #commandline_arguments_with_hyphens?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_non_hyphen_argument?, #reset_the_commandline_arguments, #set_commandline_arguments, #set_first_argument

Methods included from HtmlColoursModule

#aquamarine, #blanchedalmond, #brown, #cadetblue, #chocolate, #coral, #cornflowerblue, #crimson, #cyan, #darkblue, #darkcyan, #darkgoldenrod, #darkgreen, #darkkhaki, #darkolivegreen, #darkorange, #darkred, #darkseagreen, #darkslateblue, #darkslategray, #darkturquoise, #deepskyblue, #firebrick, #forestgreen, #gold, #goldenrod, #green, #grey, #indianred, #khaki, #lavender, #lawngreen, #lightblue, #lightcoral, #lightgreen, #lightred, #lightseagreen, #lightskyblue, #lightslategray, #lightslategrey, #lime, #limegreen, #mediumaquamarine, #mediumblue, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mediumvioletred, #mintcream, #moccasin, #oldlace, #olive, #olivedrab, #orange, #orangered, #orchid, #palegoldenrod, #palegreen, #paleturquoise, #palevioletred, #peru, #plum, #powderblue, #red, #rosybrown, #royalblue, #saddlebrown, #salmon, #sandybrown, #seagreen, #sienna, #silver, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #tan, #teal, #thistle, #tomato, #turquoise, #violet, #whitesmoke, #yellow, #yellowgreen

Methods included from Colours

#bold_blue, #bold_red, #bold_yellow, cadetblue, #cadetblue, #chartreuse, #coral, coral, #cornflowerblue, cornflowerblue, crimson, #cyan, cyan, darkgoldenrod, #darkgoldenrod, #darkgray, darkgreen, darkolivegreen, darkseagreen, #darkslateblue, darkslateblue, #darkslategray, darkslategray, #darkturquoise, darkturquoise, #deepskyblue, deepskyblue, default_colour, #dimgray, disable_colours, #dodgerblue, e, #efancy, enable_colours, #erev, #ewarn, #forestgreen, forestgreen, gold, #goldenrod, goldenrod, #grey, grey, indianred, #indianred, khaki, #khaki, lawngreen, #lawngreen, lightblue, lightgreen, lightsalmon, #lightseagreen, lightseagreen, lightskyblue, #lightskyblue, #lightslategray, lightslategray, #lightsteelblue, lime, #lime, limegreen, #limegreen, #mediumaquamarine, mediumaquamarine, #mediumorchid, #mediumpurple, mediumpurple, #mediumseagreen, mediumseagreen, #mediumslateblue, mediumslateblue, #mediumspringgreen, mediumspringgreen, #mediumturquoise, mediumturquoise, #oldlace, olive, #olive, olivedrab, #olivedrab, orange, orangered, #orchid, orchid, palegreen, #palegreen, paleturquoise, #paleturquoise, palevioletred, #papayawhip, peru, #peru, plum, #plum, #powderblue, powderblue, rev, #rev?, royalblue, saddlebrown, #saddlebrown, #sandybrown, sandybrown, sdir, #sdir, seagreen, #seagreen, sfancy, #sfancy, sfile, #sfile, #simp, simp, #skyblue, skyblue, slateblue, #slategray, slategray, springgreen, #springgreen, #steelblue, steelblue, #swarn, swarn, #tan, tan, teal, #teal, #tomato, tomato, turquoise, use_colours?, use_this_colour_for_exam_answers, use_this_colour_for_exam_questions, #yellow, yellowgreen, #yellowgreen

Constructor Details

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

#

initialize

#


32
33
34
35
36
37
38
39
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 32

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

Class Method Details

.[](i = '') ⇒ Object

#

Studium::ShowAllPassedExamsOfThisUniversity[]

#


243
244
245
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 243

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

Instance Method Details

#colourize_ects_points(i) ⇒ Object

#

colourize_ects_points

#


236
237
238
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 236

def colourize_ects_points(i)
  slategray(i)
end

#colourize_name_of_the_lecture(i) ⇒ Object

#

colourize_name_of_the_lecture

#


229
230
231
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 229

def colourize_name_of_the_lecture(i)
  mediumaquamarine(i)
end

#dataset?Boolean

#

dataset?

#

Returns:

  • (Boolean)


80
81
82
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 80

def dataset?
  @dataset
end

#display_the_datasetObject

#

display_the_dataset

This method will show the passed exams.

#


185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 185

def display_the_dataset
  total_ects_points = 0
  dataset?.each_with_index {|line, index|
    index += 1
    # ===================================================================== #
    # Each individual line entry will look like this:
    #   "25.09.2015 | 3.0 | 4.0 | 2 |   BOKU  |   B  | Grundlagen der Biochemie"
    # ===================================================================== #
    splitted = line.split('|').map(&:strip)
    the_date = splitted.first
    colourized_date = orange('(Date: '+the_date+')')
    name_of_the_lecture = splitted.last
    n_ects_points = splitted[2]
    index = (index.to_s.rjust(2)+')').ljust(4)
    e simp(index)+' '+
      colourize_ects_points(n_ects_points.to_s.rjust(4)+' ECTS points')+ # The n ECTS points.
      ', '+colourize_name_of_the_lecture(name_of_the_lecture.ljust(72))+
      colourized_date
    total_ects_points += n_ects_points.to_f
  }
  e
  e "In total: #{colourize_ects_points(total_ects_points.to_s+' ECTS points')}."
  e
  report_which_file_we_used_for_the_dataset
end

#initialize_datasetObject

#

initialize_dataset

#


59
60
61
62
63
64
65
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 59

def initialize_dataset
  @dataset = File.readlines(main_file?).map(&:chomp).reject {|inner_entry|
    inner_entry.start_with? '#'
  }.select {|entry|
    entry.count('|') >= 6
  }
end

#input?Boolean

#

input?

#

Returns:

  • (Boolean)


87
88
89
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 87

def input?
  @input
end

#main_file?Boolean

#

main_file?

#

Returns:

  • (Boolean)


222
223
224
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 222

def main_file?
  Studium.file_passed_exams_per_month
end

#notify_the_user_what_we_will_doObject

#

notify_the_user_what_we_will_do

#


94
95
96
97
98
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 94

def notify_the_user_what_we_will_do
  opnn; e "We will next show all exams passed at the "\
          "university #{simp(input?)}."
  e
end

#report_which_file_we_used_for_the_datasetObject

#

report_which_file_we_used_for_the_dataset

#


214
215
216
217
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 214

def report_which_file_we_used_for_the_dataset
  e 'We read in from the file'
  e "  `#{sfile(main_file?)}`."
end

#resetObject

#

reset (reset tag)

#


44
45
46
47
48
49
50
51
52
53
54
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 44

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # @dataset is the raw dataset.
  # ======================================================================= #
  # File is:
  #   /home/x/studium/YAML/passed_exams_per_month.csv
  # ======================================================================= #
  initialize_dataset
end

#runObject

#

run (run tag)

You can control which university is to be displayed.

Example:

show_university --meduni
#


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
172
173
174
175
176
177
178
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 131

def run
  notify_the_user_what_we_will_do
  _ = input?.downcase
  case _ # case tag
  # ======================================================================= #
  # === suniversity --help
  # ======================================================================= #
  when /help/
    show_help(:then_exit)
  # ======================================================================= #
  # === suniversity vetmed
  # ======================================================================= #
  when /vetmed/
    @dataset.select! {|entry|
      entry.include? '|  Vetmed |'
    }
  # ======================================================================= #
  # === suniversity boku
  # ======================================================================= #
  when /boku/,'default'
    @dataset.select! {|entry|
      entry.include? '|   BOKU  |'
    }
  # ======================================================================= #
  # === suniversity meduni
  # ======================================================================= #
  when 'meduni',/med/
    @dataset.select! {|entry|
      entry.include? '|  Meduni |'
    }
  # ======================================================================= #
  # === suniversity tuwien
  # ======================================================================= #
  when /^-?-?TU/i,
       /^-?-?tu(_|-)?wien$/i
    @dataset.select! {|entry|
      entry.include? '|    TU   |'
    }
  # ======================================================================= #
  # === suniversity uniwien
  # ======================================================================= #
  when 'uni','university',/uni_?wien/
    @dataset.select! {|entry|
      entry.include? '| UniWien |'
    }
  end
  display_the_dataset
end

#set_input(i = '') ⇒ Object

#

set_input

#


70
71
72
73
74
75
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 70

def set_input(i = '')
  i = i.first if i.is_a? Array
  i = i.to_s.dup.delete('-') # We don't need any '-' characters.
  i = 'alle Universitäten' if i.empty?
  @input = i
end

#show_help(also_exit = :then_exit) ⇒ Object

#

show_help (help tag)

Invoke this method like this:

suniversity --help
#


108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/studium/exams/show_all_passed_exams_of_this_university.rb', line 108

def show_help(also_exit = :then_exit)
  also_exit = true if also_exit.is_a? Symbol # Shortcut.
  e 'These four (5) options are available right now:'
  e
  e '  --boku'
  e '  --meduni'
  e '  --tuwien'
  e '  --uniwien'
  e '  --vetmed'
  e
  exit if also_exit
end