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 collapse

NAMESPACE =
#

NAMESPACE

#
inspect

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

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, #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

#initialize(i = ARGV, run_already = true) ⇒ CheckDescriptionOfTheseLectures

#

initialize

#


26
27
28
29
30
31
32
33
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 26

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

Instance Method Details

#

menu (menu tag)

#


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

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

#


125
126
127
128
129
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 125

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

#


204
205
206
207
208
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 204

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

#


196
197
198
199
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 196

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

#resetObject

#

reset

#


38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 38

def reset
  super()
  # ======================================================================= #
  # === @namespace
  # ======================================================================= #
  @namespace = 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

#


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
189
190
191
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 134

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.

#


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
96
97
98
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 69

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
      # =================================================================== #
      # === --indi2
      # =================================================================== #
      when /^-?-?indi2$/
        entry = return_dataset_from_this_curriculum_file(entry.to_sym).keys
      # =================================================================== #
      # === --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)

#


213
214
215
216
217
# File 'lib/studium/utility_scripts/check_description_of_these_lectures.rb', line 213

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