Class: Studium::ShowDescriptionsOfLecturesBelongingToThisModule

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/run.rb,
lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/menu.rb,
lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/reset.rb,
lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/constants.rb,
lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/show_descriptions_of_lectures_belonging_to_this_module.rb

Overview

Studium::ShowDescriptionsOfLecturesBelongingToThisModule.new

Constant Summary collapse

NAMESPACE =
#

NAMESPACE

#
inspect
USE_THIS_CURRICULUM_BY_DEFAULT =
#

USE_THIS_CURRICULUM_BY_DEFAULT

Here we can toggle the default curriculum that is to be used.

#
:indi3

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

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(commandline_arguments = nil, run_already = true) ⇒ ShowDescriptionsOfLecturesBelongingToThisModule

#

initialize

#


31
32
33
34
35
36
37
38
39
40
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/show_descriptions_of_lectures_belonging_to_this_module.rb', line 31

def initialize(
    commandline_arguments = nil,
    run_already           = true
  )
  reset
  set_commandline_arguments(
    commandline_arguments
  )
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

ShowDescriptionsOfLecturesBelongingToThisModule[]

#


137
138
139
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/show_descriptions_of_lectures_belonging_to_this_module.rb', line 137

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

Instance Method Details

#clear_old_datasetObject

#

clear_old_dataset

#


75
76
77
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/show_descriptions_of_lectures_belonging_to_this_module.rb', line 75

def clear_old_dataset
  @dataset = []
end

#determine_the_dataset_that_is_to_be_used(i = @use_this_curriculum) ⇒ Object

#

determine_the_dataset_that_is_to_be_used

#


61
62
63
64
65
66
67
68
69
70
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/show_descriptions_of_lectures_belonging_to_this_module.rb', line 61

def determine_the_dataset_that_is_to_be_used(
    i = @use_this_curriculum
  )
  # ======================================================================= #
  # === @dataset
  #
  # Next return the default dataset that we shall use.
  # ======================================================================= #
  @dataset = return_dataset_from_this_curriculum(i)
end
#

menu (menu tag)

#


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/menu.rb', line 14

def menu(
    i = commandline_arguments?
  )
  if i.is_a? Array
    i.each {|entry| menu(entry) }
  else
    case i # case tag
    # ===================================================================== #
    # === show_descriptions_of_lectures_belong_to_this_module --indi2
    #
    # Alternatively, try this:
    #
    #   show_descriptions_of_lectures_belong_to_this_module --indi2 --module1
    #   show_descriptions_of_lectures_belong_to_this_module --indi3 --module16
    #
    # ===================================================================== #
    when /^-?-?indi2$/i,
         /^-?-?indi3$/i
      clear_old_dataset
      target = i.to_s.delete('-').to_sym
      determine_the_dataset_that_is_to_be_used(
        target
      )
    # ===================================================================== #
    # === show_descriptions_of_lectures_belong_to_this_module --module1
    #
    # Invocation example:
    #
    #   show_descriptions_of_lectures_belong_to_this_module --module2
    #   studiummodules --module5
    #   studiummodules --15
    #
    # ===================================================================== #
    when /^-?-?module(\d{1,2})$/i,
         /^-?-?(\d{1,2})$/i
      match = $1.to_s.dup
      set_use_this_module(match)
    # ===================================================================== #
    # === show_descriptions_of_lectures_belong_to_this_module
    # ===================================================================== #
    when /^-?-?help$/i
      e
      e 'Not yet implemented.'
      e
    end
  end
end

#report(i) ⇒ Object

#

report (report tag)

#


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
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
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/show_descriptions_of_lectures_belonging_to_this_module.rb', line 82

def report(i)
  if i.empty?
    opnn; e 'No lectures were found.'
  else
    index = 0
    i.each {|lecture_id_and_lecture_name, hash| index += 1
      description_in_english = hash[:description_in_english]
      description_in_german  = hash[:description_in_german]
      case @use_this_language # case tag
      # =================================================================== #
      # === :english
      # =================================================================== #
      when :english
        use_this_description = description_in_english
      # =================================================================== #
      # === :german
      # =================================================================== #
      when :german
        use_this_description = description_in_german
      end
      e
      e royalblue("#{index}) ")+
        slateblue(lecture_id_and_lecture_name)
      e # Tiny spacer.
      # =================================================================== #
      # Next, we must show the proper description - either in german or
      # in english. However had, some lectures may lack such a
      # description. If this is the case it will be reported as well;
      # that way the user can correct this issue.
      # =================================================================== #
      e olivedrab("  #{use_this_description.to_s}")
      if use_this_description.nil?
        n_ljust = 54
        result = ' This course does not have an '+
                 @use_this_language.to_s+' description yet.'.ljust(n_ljust).dup
        if Object.const_defined?(:Roebe) and Roebe.respond_to? :warning_sign
          result.prepend("  #{::Roebe.warning_sign}")
          result << " #{::Roebe.warning_sign}"
        end
        e crimson(result)
        result = ' Consider adding one.'.ljust(n_ljust).dup
        if Object.const_defined?(:Roebe) and Roebe.respond_to? :warning_sign
          result.prepend("  #{::Roebe.warning_sign}")
          result << " #{::Roebe.warning_sign}"
        end
        e crimson(result)
        e
      end
    }
  end
end

#resetObject

#

reset (reset tag)

#


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/reset.rb', line 14

def reset
  super()
  # ======================================================================= #
  # === @namespace
  # ======================================================================= #
  @namespace = NAMESPACE
  # ======================================================================= #
  # === @use_this_curriculum
  # ======================================================================= #
  @use_this_curriculum = USE_THIS_CURRICULUM_BY_DEFAULT
  # ======================================================================= #
  # === @use_this_language
  #
  # This variable can be either :english or :german. Right now it is
  # hardcoded and has to be modified by the user; at a later time this
  # may be changed to a more dynamic approach.
  # ======================================================================= #
  @use_this_language = :german
  set_use_this_module
  determine_the_dataset_that_is_to_be_used
end

#runObject

#

run (run tag)

#


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/run.rb', line 14

def run
  menu # Pass it through the menu first.
  @long_name_of_the_curriculum = return_long_name_of_this_curriculum(@use_this_curriculum)
  we_are_interested_in_these_lectures = @dataset.select {|lecture_id_and_lecture_name, hash|
    we_seek_this_module = "M#{@use_this_module}"
    all_individual_curricula = hash[:individual_curricula]
    # ===================================================================== #
    # Next obtain the proper curricula entry:
    # ===================================================================== #
    selection = all_individual_curricula.select {|hash|
      hash[:name_of_the_curriculum].include? @long_name_of_the_curriculum
    }.first
    individual_curriculum_module = selection[:individual_curriculum_module]
    if individual_curriculum_module.is_a? Array
      individual_curriculum_module = individual_curriculum_module.first
    end
    individual_curriculum_module.include? we_seek_this_module
  }
  report(we_are_interested_in_these_lectures)
end

#set_use_this_module(i = :default) ⇒ Object

#

set_use_this_module

#


45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/studium/utility_scripts/show_descriptions_of_lectures_belonging_to_this_module/show_descriptions_of_lectures_belonging_to_this_module.rb', line 45

def set_use_this_module(
    i = :default
  )
  case i
  # ======================================================================= #
  # === :default
  # ======================================================================= #
  when :default
    i = '1'
  end
  @use_this_module = i
end