Class: Studium::Exams::UpcomingRegisteredExams
- Inherits:
-
Base
- Object
- Base
- Studium::Exams::UpcomingRegisteredExams
show all
- Defined in:
- lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb
Overview
Studium::Exams::UpcomingRegisteredExams
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
-
.[](i = ARGV) ⇒ Object
# === Studium::Exams::UpcomingRegisteredExams[] ========================================================================= #.
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?, #dataset?, #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
#commandline?, #runmode?, #set_commandline_mode, #set_runmode, #set_www_mode, #www_mode?
#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
#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(commandline_arguments = ARGV, run_already = true) ⇒ UpcomingRegisteredExams
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 26
def initialize(
commandline_arguments = ARGV,
run_already = true
)
reset
set_commandline_arguments(
commandline_arguments
)
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
#
Studium::Exams::UpcomingRegisteredExams[]
#
249
250
251
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 249
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#do_generate_a_HTML_file ⇒ Object
#
do_generate_a_HTML_file
This method can be used to generate a standalone .html file.
Usage example:
upcomingregisteredexams --html
#
233
234
235
236
237
238
239
240
241
242
243
244
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 233
def do_generate_a_HTML_file
what = Cyberweb.html_template(
title: 'Upcoming registered exams',
body_css_style: 'padding: 4px; font-size: 1.4em;',
body: @internal_hash[:html_content]
)
into = "#{log_dir?}upcoming_registered_exams.html"
write_what_into(what, into)
if is_on_roebe?
Open.in_browser(into)
end
end
|
#do_handle_all_outdated_entries_from(i) ⇒ Object
#
do_handle_all_outdated_entries_from
#
136
137
138
139
140
141
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 136
def do_handle_all_outdated_entries_from(i)
outdated_entries = return_outdated_entries(i)
unless outdated_entries.empty?
do_report_these_outdated_entries(outdated_entries)
end
end
|
#do_report_these_outdated_entries(i) ⇒ Object
#
do_report_these_outdated_entries
#
102
103
104
105
106
107
108
109
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 102
def do_report_these_outdated_entries(i)
e tomato('The following exam entries are outdated:')
e
i.keys.each {|this_entry|
e " #{lightblue(this_entry)}"
}
e
end
|
#generate_a_HTML_file? ⇒ Boolean
#
generate_a_HTML_file?
#
95
96
97
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 95
def generate_a_HTML_file?
@internal_hash[:shall_we_generate_a_HTML_file]
end
|
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 61
def (
i = commandline_arguments?
)
if i.is_a? Array
i.each {|entry| (entry) }
else
case i
when /^-?-?help$/i
show_help
exit
when /^-?-?html$/i
@internal_hash[:shall_we_generate_a_HTML_file] = true
end
end
end
|
#reset ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 40
def reset
super()
infer_the_namespace
reset_the_internal_hash
@internal_hash[:dataset] = dataset_from_file_lecture_information
@internal_hash[:shall_we_generate_a_HTML_file] = false
@internal_hash[:html_content] = nil
end
|
#return_outdated_entries(i) ⇒ Object
#
return_outdated_entries
#
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 114
def return_outdated_entries(i)
time_now = ::Time.now
outdated_entries = i.select {|name_of_the_lecture, inner_hash|
registered = inner_hash['registered']
first_entry = registered.first
first_entry.delete!(',')
if first_entry.include? 'Ort:'
first_entry = first_entry.split('Ort:').first
end
first_entry.strip!
registered_time = ::Time.parse(first_entry)
registered_time < time_now
}
return outdated_entries
end
|
#return_registered_exam_entries(i = ) ⇒ Object
#
return_registered_exam_entries
#
146
147
148
149
150
151
152
153
154
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 146
def return_registered_exam_entries(
i = @internal_hash[:dataset]
)
_ = i.select {|name_of_the_lecture, inner_hash|
inner_hash.has_key?('registered') and
!inner_hash['registered'].empty?
}
return _
end
|
#run ⇒ Object
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
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
210
211
212
213
214
215
216
217
218
219
220
221
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 159
def run
html_content = ''.dup if generate_a_HTML_file?
_ = return_registered_exam_entries
do_handle_all_outdated_entries_from(_)
unless generate_a_HTML_file?
e grey('The upcoming registered exams are:')
e
end
index = 0
sorted_entries = _.sort_by {|name_of_the_lecture, inner_hash|
exam_date = inner_hash['exams']
if exam_date.is_a? Array
exam_date = exam_date.first
end
if exam_date.include? 'Ort:'
exam_date = exam_date.split('Ort:').first
end
exam_date.delete!(',') if exam_date.include?(',')
::Time.parse(exam_date)
}
sorted_entries.each {|name_of_the_lecture, inner_hash| index += 1
exam_date = inner_hash['exams']
remote_homepage = inner_hash[:homepage]
remote_homepage = remote_homepage.first if remote_homepage.is_a?(Array)
if exam_date.is_a? Array
exam_date = exam_date.first
end
exam_date = exam_date.to_s
if generate_a_HTML_file?
html_content << '<div><h2 style="margin-top: 5px">'+
'<a href="'+remote_homepage.to_s+'">'+
name_of_the_lecture+'</a></h2>'
html_content << '<span style="margin-left: 0.4em; color: darkblue; font-weight: bold;">'+
exam_date+'</span><br>'
html_content << '</div>'
else e " #{lightblue(name_of_the_lecture.ljust(60))} "\
"#{grey('#')}#{lightgreen(index)}"
if exam_date.include?(' ')
splitted = exam_date.split(' ')
splitted[0] = mediumslateblue(splitted[0].ljust('Donnerstag '.size))
exam_date = splitted[0]+
tomato(splitted[1 .. -1].join(' '))
end
e " #{exam_date}"
end
}
e
if generate_a_HTML_file?
@internal_hash[:html_content] = html_content
do_generate_a_HTML_file
end
end
|
#show_help ⇒ Object
86
87
88
89
90
|
# File 'lib/studium/exams/upcoming_registered_exams/upcoming_registered_exams.rb', line 86
def show_help
e
e ' --html # generate a standalone .html file'
e
end
|