Class: Studium::ExamsThisWeek
- Inherits:
-
Base
- Object
- Base
- Studium::ExamsThisWeek
show all
- Defined in:
- lib/studium/exams/exams_this_week.rb
Overview
Constant Summary
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::NAMESPACE, Base::N_CHARACTERS_PER_LINE, Base::UNICODE_RIGHT_ARROW
Constants included
from Colours
Colours::COLOURS
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === Studium::ExamsThisWeek[] ========================================================================= #.
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, #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(commandline_arguments = nil, run_already = true) ⇒ ExamsThisWeek
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/studium/exams/exams_this_week.rb', line 23
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::ExamsThisWeek[]
#
172
173
174
|
# File 'lib/studium/exams/exams_this_week.rb', line 172
def self.[](i = '')
new(i)
end
|
Instance Method Details
#cliner ⇒ Object
158
159
160
|
# File 'lib/studium/exams/exams_this_week.rb', line 158
def cliner
e saddlebrown(@horizontal_bar * 90)
end
|
#display_all_exams_in_this_week ⇒ Object
#
display_all_exams_in_this_week
This is the main method that will show all exams in this week.
#
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/studium/exams/exams_this_week.rb', line 77
def display_all_exams_in_this_week
n_days = return_n_days_until_sunday(@starting_time_to_use)
time_until_sunday = (Date.today + n_days)
hash = {} @dataset.each {|a, b|
exams = b['exams']
if exams.any? {|entry|
parsed_time = Time.parse(entry)
(parsed_time < time_until_sunday.to_time) and
(parsed_time > @starting_time_to_use)
}
hash[a] = b
end
}
if hash and !hash.empty?
report(hash)
else
e 'No exam is registered for the current week.'
end
end
|
#report(i) ⇒ Object
#
report
The input to this method should be our Hash.
#
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
|
# File 'lib/studium/exams/exams_this_week.rb', line 108
def report(i)
sorted = i.sort_by {|a, b|
exams = b['exams']
first_exam = exams.first
Time.parse(first_exam)
}
e "#{rev}The following #{lightgreen(sorted.size)} "\
"exams will happen in #{royalblue('this week')}:"
e
index = 0
cliner
sorted.each {|name_of_the_course, b| index += 1
exams = b['exams']
remote_url = obtain_from(:remote_url, b) remote_url = remote_url.first if remote_url.is_a? Array
first_exam = exams.first
first_exam_time_parsed = Time.parse(first_exam)
time_of_the_exam = return_hour_from_this(first_exam)
english_weekday = translate_dd_mm_yyyy_to_weekday(first_exam.to_s)
german_weekday = english_to_german_weekday(english_weekday)
german_dd_mm_yyyy_format = german_formatting_for_the_date(first_exam_time_parsed)
e " #{lightgreen(index)}) #{steelblue(name_of_the_course).ljust(90)} "+\
mediumpurple("[#{english_weekday}]")
e " → #{springgreen(remote_url)}"
result = royalblue(' The exam will be at:')+
darkkhaki(" #{german_weekday} "\
"#{german_dd_mm_yyyy_format}"
)+crimson(' [Uhrzeit: '+time_of_the_exam.to_s+']')
if is_this_day_today?(german_dd_mm_yyyy_format)
result << lightsteelblue(' ← ist heute \o/')
end
e result
e
cliner
}
e
end
|
#reset ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/studium/exams/exams_this_week.rb', line 37
def reset
super()
@dataset = return_dataset_from_file_lecture_information
@starting_time_to_use = Time.now
@horizontal_bar = horizontal_bar?
sanitize_the_main_dataset
end
|
#run ⇒ Object
165
166
167
|
# File 'lib/studium/exams/exams_this_week.rb', line 165
def run
display_all_exams_in_this_week
end
|
#sanitize_the_main_dataset ⇒ Object
#
sanitize_the_main_dataset
This method will sanitize the main dataset.
#
63
64
65
66
67
68
69
70
|
# File 'lib/studium/exams/exams_this_week.rb', line 63
def sanitize_the_main_dataset
@dataset.select! {|a,b|
b.has_key?('exams')
}
end
|