Class: Studium::CheckDescriptionOfTheseLectures

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/utility_scripts/check_description_of_these_lectures.rb

Overview

Studium::CheckDescriptionOfTheseLectures

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

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 = ARGV, run_already = true) ⇒ CheckDescriptionOfTheseLectures

#

initialize

#


21
22
23
24
25
26
27
28
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 21

def initialize(
    i           = ARGV,
    run_already = true
  )
  reset
  set_commandline_arguments(i)
  run if run_already
end

Instance Method Details

#

menu (menu tag)

#


100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 100

def menu(i)
  if i.is_a? Array
    if i.empty?
      please_provide_some_feedback
    else
      i.each {|entry| menu(entry) }
    end
  else
    case i
    # ===================================================================== #
    # === lecture_descs --help
    # ===================================================================== #
    when /help/
      show_help
      exit
    end
  end
end

#please_provide_some_feedbackObject

#

please_provide_some_feedback

#


122
123
124
125
126
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 122

def please_provide_some_feedback
  e
  opnn; e 'Please provide some input.'
  show_help
end

#report_how_many_descriptions_are_missing(n) ⇒ Object

#

report_how_many_descriptions_are_missing

#


201
202
203
204
205
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 201

def report_how_many_descriptions_are_missing(n)
  e
  e 'There are still '+slateblue(n.to_s)+' descriptions missing.'
  e
end

#report_that_no_descriptions_are_missingObject

#

report_that_no_descriptions_are_missing

#


193
194
195
196
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 193

def report_that_no_descriptions_are_missing
  e 'No description is missing - this is great! '+
     gold(cheering_dude?)
end

#resetObject

#

reset

#


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 33

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @check_for_english_descriptions_of_lectures
  #
  # Whether to check for english descriptions of lectures or whether we
  # will not.
  # ======================================================================= #
  @check_for_english_descriptions_of_lectures = false
  # ======================================================================= #
  # === @dataset
  # ======================================================================= #
  @dataset = return_dataset_from_the_lectures
  # ======================================================================= #
  # === @report_lectures_that_were_found
  #
  # The next variable is set to false, in order to reduce the verbosity.
  # ======================================================================= #
  @report_lectures_that_were_found = false
end

#runObject

#

run

#


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
176
177
178
179
180
181
182
183
184
185
186
187
188
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 131

def run
  _ = @commandline_arguments
  menu(_)
  _ = sanitize_this_input(_)
  n_descriptions_are_missing = 0
  if _.empty?
    please_provide_some_feedback
  else
    _.each {|this_lecture|
      pointer = @dataset[this_lecture]
      if pointer
        # ================================================================= #
        # First check whether there is a german-description for this lecture:
        # ================================================================= #
        if pointer.has_key? :description_in_german
          # =============================================================== #
          # In this case all is fine. Let's report this nonetheless.
          # =============================================================== #
          if @report_lectures_that_were_found
            e "#{rev}The lecture #{sfancy(this_lecture)} "\
            "does have a german description. "+
            gold(cheering_person)
          end
        else
          e "#{rev}The lecture #{sfancy(this_lecture)} does "\
            "#{crimson('NOT')} have a german description."
        end
        # ================================================================= #
        # First check whether there is a german-description for this
        # lecture:
        # ================================================================= #
        if @check_for_english_descriptions_of_lectures
          if pointer.has_key? :description_in_english
            # ============================================================= #
            # In this case all is fine. Let's report this nonetheless.
            # ============================================================= #
            if @report_lectures_that_were_found
              e "#{rev}The lecture #{sfancy(this_lecture)} "\
                "does have an english description."+
                gold(cheering_person)
            end
          else
            e "#{rev}The lecture #{sfancy(this_lecture)} does "\
              "#{crimson('NOT')} have an english description."
            n_descriptions_are_missing += 1
          end
        end
      else
        e "No lecture called #{sfancy(this_lecture)} is registered."
      end
    }
    if n_descriptions_are_missing > 0
      report_how_many_descriptions_are_missing(n_descriptions_are_missing)
    else
      report_that_no_descriptions_are_missing
    end
  end
end

#sanitize_this_input(i) ⇒ Object

#

sanitize_this_input

This method will convert input such as bachelor-master-vektorx into the corresponding lectures.

#


61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 61

def sanitize_this_input(i)
  if i.is_a? Array
    i.map! {|entry|
      entry = entry.to_s.dup
      entry.sub!(/^-+/,'')
      entry.tr!('-','_')
      case entry
      # =================================================================== #
      # === missingdesc --indi3
      # =================================================================== #
      when /^-?-?indi3$/
        entry = return_dataset_from_this_curriculum_file(entry.to_sym).keys
      # =================================================================== #
      # === missingdesc --indi2
      # =================================================================== #
      when /^-?-?indi2$/
        entry = return_dataset_from_this_curriculum_file(entry.to_sym).keys
      # =================================================================== #
      # === missingdesc --indi1
      # =================================================================== #
      when /^-?-?indi1$/
        entry = return_dataset_from_this_curriculum_file(entry.to_sym).keys
      # =================================================================== #
      # === missingdesc --bachelor-master-vektorx
      # =================================================================== #
      when /^-?-?bachelor(_|-)?master(_|-)?vektorx$/
        entry = return_dataset_from_this_curriculum_file(entry.to_sym).keys
      end
      entry
    }
    i.flatten!
    i.compact!
  end
  i
end

#show_helpObject

#

show_help (help tag)

#


210
211
212
213
214
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 210

def show_help
  e
  e '  --bachelor_master_vektorx # show bachelor-master vector curriculum'
  e
end