Class: Studium::MandatoryLecturesInThisMonth
- Inherits:
-
Base
- Object
- Base
- Studium::MandatoryLecturesInThisMonth
show all
- Defined in:
- lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb
Overview
Studium::MandatoryLecturesInThisMonth
Constant Summary
collapse
- NAMESPACE =
inspect
- AVAILABLE_MONTHS =
Date::MONTHNAMES
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
# === Studium::MandatoryLecturesInThisMonth[] ========================================================================= #.
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
36
37
38
39
40
41
42
43
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 36
def initialize(
i = nil,
run_already = true
)
reset
set_show_mandatory_courses_in_this_month(i)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
#
Studium::MandatoryLecturesInThisMonth[]
#
301
302
303
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 301
def self.[](i = '')
new(i)
end
|
Instance Method Details
#check_against_this_year? ⇒ Boolean
Also known as:
check_for_which_year?, searching_for_which_year?
#
check_against_this_year?
#
249
250
251
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 249
def check_against_this_year?
@check_against_this_year
end
|
#determine_which_courses_are_run_in_this_month ⇒ Object
#
determine_which_courses_are_run_in_this_month
#
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
172
173
174
175
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 128
def determine_which_courses_are_run_in_this_month
searching_for_this_month = searching_for_which_month?
searching_for_this_year = searching_for_which_year?
_ = @dataset
_.select! {|name_of_the_lecture, inner_dataset|
lva_dates = inner_dataset['lva_dates']
if lva_dates
only_the_month = lva_dates.map {|entry|
entry = remove_weeknames(entry).strip
unless entry.include? searching_for_this_year.to_s
entry = nil
end
if entry
if entry.include? ','
entry = entry.split(',').first
end
if entry.include? '.'
entry = entry.split('.')[1].to_i end
end
entry
}
only_the_month.compact!
only_the_month.include? searching_for_this_month
else
e swarn('No lva entry for `')+
slateblue(name_of_the_lecture)+
swarn('`.')
end
}
_ = _.sort_by {|a, b| priority = b[:priority]
priority }
@dataset = _
e
e "The following lectures are in the month #{orange(which_month?.to_s)}:"
e
report(@dataset)
end
|
#report(i = @dataset) ⇒ Object
#
report (report tag)
This is the general reporting-method of this class. Arrays and Hashes may be treated somewhat differently.
#
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
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 183
def report(
i = @dataset
)
result = ''.dup
if i.is_a? Hash
i.each_pair {|a, b|
result << " #{powderblue(a)}#{N}"
}
elsif i.is_a? Array
counter = 0
i.each {|name_of_the_lecture, b| counter += 1
result << ' '+
royalblue((counter.to_s+')').ljust(4))+
powderblue(name_of_the_lecture)
lva_dates = b['lva_dates']
lecture_type = obtain(:type, b)
if lva_dates.is_a? Array
lva_dates.map! {|inner_line|
inner_line.strip.delete(',')
}
end
if b.is_a?(Hash) and b.has_key?(:priority)
result << +seagreen(
' (Priority: '+b[:priority].to_s
)
if b.has_key?(:ects)
result << seagreen('; ')
result << mediumorchid(b[:ects].to_s+' ECTS')
end
result << "; Type: #{lecture_type}"
result << seagreen(')')
end
result << N
this_month = @show_mandatory_courses_in_this_month
unless lva_dates.empty?
result << N end
lva_dates.each {|lva_date|
splitted = lva_date.split('.')
month = splitted[1].to_i
if month == this_month
weekday = return_weekday_from_this_input(lva_date, :use_german).ljust(10)
result << skyblue(' ')+
mediumseagreen(weekday)+
skyblue(' '+lva_date+N)
end
}
result << N }
end
result << N
e result
end
|
#reset ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 48
def reset
super()
@namespace = NAMESPACE
@check_against_this_year = Time.now.year
if ::Studium.main_dataset?
@dataset = ::Studium.main_dataset?
else
@dataset = return_dataset_from_file_lecture_information
end
end
|
#run ⇒ Object
289
290
291
292
293
294
295
296
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 289
def run
select_only_unfinished_mandatory_presence_courses_with_a_lva_dates_entry
determine_which_courses_are_run_in_this_month
end
|
#select_only_unfinished_mandatory_presence_courses_with_a_lva_dates_entry ⇒ Object
#
select_only_unfinished_mandatory_presence_courses_with_a_lva_dates_entry
We will select only the following courses:
(1) Those that are "prüfungsimmanent", aka require "mandatory presence"
(2) Those that have NOT yet been solved
(3) Those that DO have a lva_dates entry.
#
264
265
266
267
268
269
270
271
272
273
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 264
def select_only_unfinished_mandatory_presence_courses_with_a_lva_dates_entry
@dataset.select! {|a, inner_dataset|
lecture_type = inner_dataset[:type]
already_solved = inner_dataset[:already_solved]
has_lva_dates_entry = inner_dataset.has_key?('lva_dates')
is_prüfungsimmanent?(lecture_type) and
(!already_solved) and
has_lva_dates_entry
}
end
|
#set_show_mandatory_courses_in_this_month(i = return_current_month_as_a_number) ⇒ Object
#
set_show_mandatory_courses_in_this_month
This method determines on which month we will work.
Note that we will store the month as a number.
#
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
102
103
104
105
106
107
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 77
def set_show_mandatory_courses_in_this_month(
i = return_current_month_as_a_number
)
if i.is_a? Array if i.empty?
i << return_current_month_as_a_number
end
i = i.join(' ').strip
end
i = i.to_s if MONTH_NAME_ALIASES_GERMAN_TO_ENGLISH.has_key? i.capitalize
i = MONTH_NAME_ALIASES_GERMAN_TO_ENGLISH[i.capitalize]
end
if MONTH_NAME_TO_MONTH_NUMBER.has_key? i.capitalize
i = MONTH_NAME_TO_MONTH_NUMBER[i.capitalize]
end
i = i.to_i
@show_mandatory_courses_in_this_month = i
if i < Time.now.month
@check_against_this_year += 1
end
end
|
278
279
280
281
282
283
284
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 278
def
opnn { :no_colon }
e
e
e "All lectures that offer a date on the month #{teal(which_month?.to_s)}"\
" will be shown next."
end
|
#show_mandatory_courses_in_this_month? ⇒ Boolean
Also known as:
searching_for_which_month?
#
show_mandatory_courses_in_this_month?
#
112
113
114
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 112
def show_mandatory_courses_in_this_month?
@show_mandatory_courses_in_this_month
end
|
#which_month? ⇒ Boolean
#
which_month?
This method must return the name of a month.
#
121
122
123
|
# File 'lib/studium/utility_scripts/mandatory_lectures_in_this_month.rb', line 121
def which_month?
AVAILABLE_MONTHS[@show_mandatory_courses_in_this_month]
end
|