Class: Studium::ShowTheAssociatedLecturesForTheIndividualCurriculum
- Inherits:
-
Base
- Object
- Base
- Studium::ShowTheAssociatedLecturesForTheIndividualCurriculum
show all
- Defined in:
- lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb
Overview
Studium::ShowTheAssociatedLecturesForTheIndividualCurriculum
Constant Summary
collapse
- NAMESPACE =
inspect
- DEFAULT_FILE =
Studium.studium_directory_at_home?+'UNI_WIEN/Individuelles_Studium_an_der_Uni_Wien/'+
'Lehrveranstaltungen_für_das_Curriculum_Biotechnologie_und_Molekularsimulatorische_Vektoren.md'
- REGEX_FOR_ECTS_POINTS =
#
REGEX_FOR_ECTS_POINTS
#
/\+(\d+.\d+)/
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
-
.[](i = '') ⇒ Object
# === [] ========================================================================= #.
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
51
52
53
54
55
56
57
58
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 51
def initialize(
i = DEFAULT_FILE,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
257
258
259
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 257
def self.[](i = '')
self.new(i)
end
|
Instance Method Details
#calculate_how_many_lectures_and_ects_points_were_done_at_each_university ⇒ Object
#
calculate_how_many_lectures_and_ects_points_were_done_at_each_university
#
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 133
def calculate_how_many_lectures_and_ects_points_were_done_at_each_university
@hash = {} dataset?.each {|array| n_ects_points = array.last
university = which_university?(array.first)
if @hash.has_key? university
@hash[university][:n_ects_points] += n_ects_points
@hash[university][:n_exams] += 1
else
@hash[university] = {}
@hash[university][:n_ects_points] = n_ects_points
@hash[university][:n_exams] = 1
end
}
end
|
#calculate_total_ects ⇒ Object
245
246
247
248
249
250
251
252
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 245
def calculate_total_ects
use_this_regex = REGEX_FOR_ECTS_POINTS n_points = @dataset.map {|line|
line =~ use_this_regex
$1.to_s.dup.to_f
}
@n_ects = n_points.inject(0){|sum,x| sum + x }
end
|
#dataset? ⇒ Boolean
231
232
233
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 231
def dataset?
@dataset
end
|
#determine_dataset ⇒ Object
#
determine_dataset
Note that we will only consider entries that start with '- '.
#
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 117
def determine_dataset
_ = input?
if File.exist? _
@dataset = File.readlines(_).select {|entry|
entry.start_with? '- '
}
else
e 'No file exists at `'+sfile(_)+'`, thus we can not read '\
'in dataset. Exiting now.'
exit
end
end
|
108
109
110
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 108
def input?
@input
end
|
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 87
def (i)
case i
when /help/
show_help
exit
end
end
|
#report_ects_per_university ⇒ Object
#
report_ects_per_university
#
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 177
def report_ects_per_university
@hash.each_pair {|university, hash|
n_ects = hash[:n_ects_points]
n_exams = hash[:n_exams]
e
left = 'An der Universität '+simp(university.rjust(11))+': '
right = (orange(n_ects.to_s.rjust(5))+' ECTS Punkte')
e left+right+' ('+salmon(n_exams.to_s.rjust(2))+' exams)'
}
e
hash_values = @hash.values.map {|inner_hash|
inner_hash[:n_ects_points]
}
e 'Macht in Summe:'.ljust(32)+
orange(hash_values.inject(0){|sum,x| sum + x }.to_s)+' ECTS Punkte'
e
end
|
#report_total_ects ⇒ Object
238
239
240
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 238
def report_total_ects
e 'In total we have '+simp(@n_ects.to_s)+' ECTS points. (168 are required)'
end
|
#reset ⇒ Object
63
64
65
66
67
68
69
70
71
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 63
def reset
super()
@namespace = NAMESPACE
@n_ects = 0
@hash = {}
end
|
#return_n_ects_points(i) ⇒ Object
#
return_n_ects_points(i)
#
213
214
215
216
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 213
def return_n_ects_points(i)
i.to_s =~ REGEX_FOR_ECTS_POINTS
$1.to_s.strip.dup.to_f
end
|
#run ⇒ Object
271
272
273
274
275
276
277
278
279
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 271
def run
determine_dataset
calculate_total_ects split_dataset_into_lecture_name_and_ects_points
calculate_how_many_lectures_and_ects_points_were_done_at_each_university
tell_the_user_from_which_input_file_we_read_in
report_total_ects
report_ects_per_university
end
|
#set_dataset(i) ⇒ Object
#
set_dataset
Assign to the @dataset variable. This method is not allowed to do any further modification.
#
224
225
226
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 224
def set_dataset(i)
@dataset = i
end
|
76
77
78
79
80
81
82
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 76
def set_input(i = DEFAULT_FILE)
i = i.join(' ') if i.is_a? Array
i = i.to_s.dup.strip
i = DEFAULT_FILE if i.empty?
@input = i
(i)
end
|
#show_help ⇒ Object
101
102
103
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 101
def show_help
e 'Currently we have no documented help option.'
end
|
#split_dataset_into_lecture_name_and_ects_points ⇒ Object
#
split_dataset_into_lecture_name_and_ects_points
This method will split the dataset into the lecture-name, as the first part, and the n ECTS points.
#
201
202
203
204
205
206
207
208
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 201
def split_dataset_into_lecture_name_and_ects_points
_ = @dataset.map {|line|
splitted = line.split('[').map(&:strip)
splitted[-1,1] = return_n_ects_points(splitted[-1,1])
[splitted.first, splitted.last]
}
set_dataset(_)
end
|
264
265
266
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 264
def tell_the_user_from_which_input_file_we_read_in
e N+'We read in the dataset from the file '+N+N+' '+sfile(input?)+N+N
end
|
#which_university?(i) ⇒ Boolean
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
# File 'lib/studium/utility_scripts/show_the_associated_lectures_for_the_individual_curriculum.rb', line 152
def which_university?(i)
case i when /Meduni/i,/Meduni Wien/
'Meduni Wien'
when /BOKU/i,/BOKU Wien/
'BOKU Wien'
when /Vetmed/i,/Vetmed Wien/
'Vetmed Wien'
when /Uni ?Wien/ 'Uni Wien'
when /TU Wien/
'TU Wien'
else
'undefined for `'+i.to_s+'`'
end
end
|