Class: Studium::CheckForExistingDescriptionOfThisLecture

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb

Overview

Studium::CheckForExistingDescriptionOfThisLecture

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

Studium::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?, #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

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) ⇒ CheckForExistingDescriptionOfThisLecture

#

initialize

#


26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 26

def initialize(
    i           = nil,
    run_already = true
  )
  reset
  # ======================================================================= #
  # Next, we have to designate the full name of the lecture, including
  # the LVA-ID entry.
  # ======================================================================= #
  set_full_name_of_the_lecture(i)
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

Studium::CheckForExistingDescriptionOfThisLecture[]

#


186
187
188
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 186

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

Instance Method Details

#consider_notifying_the_user_that_at_the_least_one_missing_description_was_foundObject

#

consider_notifying_the_user_that_at_the_least_one_missing_description_was_found

#


101
102
103
104
105
106
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 101

def consider_notifying_the_user_that_at_the_least_one_missing_description_was_found
  unless @we_found_at_the_least_one_missing_entry
    opne 'No missing description was found - this is good! '+
         gold('\o/')
  end
end

#do_determine_whether_this_entry_has_a_description(i = @full_name_of_the_lecture) ⇒ Object

#

do_determine_whether_this_entry_has_a_description

This method will also report our findings to the user.

#


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
154
155
156
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 113

def do_determine_whether_this_entry_has_a_description(
    i = @full_name_of_the_lecture
  )
  if @dataset.has_key? i
    pointer = @dataset[i]
    if pointer.has_key? :description_in_german
      unless @report_only_missing_entries
        # ================================================================= #
        # In this case, the lecture has an entry called
        # :description_in_german.
        # ================================================================= #
        opne 'The lecture '+sfancy(i)+' does have an '\
             'entry called '+
             steelblue(':description_in_german')+
             ', which is good. '+
             royalblue(cheering_person)
      end
    end
    if pointer.has_key? :description_in_english
      unless @report_only_missing_entries
        # ================================================================= #
        # In this case, the lecture has an entry called
        # :description_in_english.
        # ================================================================= #
        opne 'The lecture '+sfancy(i)+' does have an '\
             'entry called '+
             steelblue(':description_in_english')+
             ', which is good. '+royalblue(cheering_person)
      end
    else
      # =================================================================== #
      # In this case, the lecture is missing an entry called :description.
      # =================================================================== #
      opne 'The lecture '+sfancy(i)+' does '+
           swarn('NOT')+' have an '\
           'entry called '+steelblue(':description_in_german')+
           ' or '+steelblue(':description_in_english')+'. '\
           'Consider adding it.'
      we_did_find_at_the_least_one_missing_entry # Keep track of at the least one missing entry.
    end
  else
    opne 'The key `'+sfancy(i)+'` has not been found. Is it registered?'
  end
end

#do_report_all_entriesObject

#

do_report_all_entries

#


87
88
89
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 87

def do_report_all_entries
  @report_only_missing_entries = false
end

#full_name_of_the_lecture?Boolean Also known as: main_input?

#

full_name_of_the_lecture?

#

Returns:

  • (Boolean)


80
81
82
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 80

def full_name_of_the_lecture?
  @full_name_of_the_lecture
end

#report_how_many_entries_we_will_have(i) ⇒ Object

#

report_how_many_entries_we_will_have

#


94
95
96
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 94

def report_how_many_entries_we_will_have(i)
  opne slateblue(i.size.to_s)+' lectures are part of this curriculum.'
end

#resetObject

#

reset (reset tag)

#


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 42

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @dataset
  # ======================================================================= #
  @dataset = return_dataset_from_the_file_lecture_information
  # ======================================================================= #
  # === @report_only_missing_entries
  # ======================================================================= #
  @report_only_missing_entries = true
  # ======================================================================= #
  # === @we_found_at_the_least_one_missing_entry
  # ======================================================================= #
  @we_found_at_the_least_one_missing_entry = false
end

#runObject

#

run (run tag)

#


161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 161

def run
  # ======================================================================= #
  # Empty input means that the user supplied no argument, so we do
  # batch-check in a hardcoded manner, towards bachelor-master vektoren.
  # ======================================================================= #
  if main_input?.empty?
    array = return_dataset_from_this_curriculum_file(:bachelor_master_vektorx).keys
  else
    # ===================================================================== #
    # This clause here is for regular user input.
    # ===================================================================== #
    array = [main_input?].flatten.compact
    do_report_all_entries
  end
  report_how_many_entries_we_will_have(array)
  array.each {|entry|
    set_name(entry)
    do_determine_whether_this_entry_has_a_description
  }
  consider_notifying_the_user_that_at_the_least_one_missing_description_was_found
end

#set_full_name_of_the_lecture(i = '941106 Einführung in die Zellbiologie und Genetik') ⇒ Object Also known as: set_name

#

set_full_name_of_the_lecture

#


69
70
71
72
73
74
75
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 69

def set_full_name_of_the_lecture(
    i = '941106 Einführung in die Zellbiologie und Genetik'
  )
  i = i.first if i.is_a? Array
  i = i.to_s.dup
  @full_name_of_the_lecture = i
end

#we_did_find_at_the_least_one_missing_entryObject

#

we_did_find_at_the_least_one_missing_entry

#


62
63
64
# File 'lib/studium/check_and_sanitize/check_for_existing_description_of_this_lecture.rb', line 62

def we_did_find_at_the_least_one_missing_entry
  @we_found_at_the_least_one_missing_entry = true
end