Class: Studium::PrepareIndividualCurriculum

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

Overview

Studium::PrepareIndividualCurriculum

Constant Summary collapse

DIRECTORY_EXAMS_RESULT =
#

DIRECTORY_EXAMS_RESULT

#
"#{ROEBE_STUDIUM_DIR}EXAMS_RESULT/"

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::NAMESPACE, 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) ⇒ PrepareIndividualCurriculum

#

initialize

#


33
34
35
36
37
38
39
40
41
42
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 33

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

Class Method Details

.[](i = '') ⇒ Object

#

Studium::PrepareIndividualCurriculum[]

#


297
298
299
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 297

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

Instance Method Details

#cd_to_the_generated_directoryObject

#

cd_to_the_generated_directory

#


131
132
133
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 131

def cd_to_the_generated_directory
  cd @package_into_this_subdirectory
end

#copy_bachelor_documentsObject

#

copy_bachelor_documents

#


83
84
85
86
87
88
89
90
91
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 83

def copy_bachelor_documents
  e 'Now copying the '+steelblue('bachelor-related documents')+'.'
  # _ = ROEBE_STUDIUM_DIR+'UNI_WIEN/Individuelles_Studium_an_der_Uni_Wien/'
  _ = ROEBE_STUDIUM_DIR+'TU_WIEN/Individuelles_Studium_an_der_TU_Wien/Antrag/'
  cd _
  files = Dir["#{_}Bachelorcurriculum*"]
  # files += Dir["#{_}Zusammenfassung*"]
  copy_these_files(files)
end

#copy_BOKU_sammelzeugnisObject

#

copy_BOKU_sammelzeugnis

#


186
187
188
189
190
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 186

def copy_BOKU_sammelzeugnis
  file = Dir[DIRECTORY_EXAMS_RESULT+'BOKU_WIEN/BOKU_Wien_Sammelzeugnis_bis_24.02.2021_Matrikelnummer_09703011.pdf'].first
  das_sammelzeugnis_wurde_nicht_gefunden if file.nil?
  copy_this_file(file)
end

#copy_master_documentsObject

#

copy_master_documents (master tag)

#


110
111
112
113
114
115
116
117
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 110

def copy_master_documents
  e 'Now copying the '+steelblue('master-related documents')+'.'
  _ = ROEBE_STUDIUM_DIR+'UNI_WIEN/Individuelles_Studium_an_der_Uni_Wien/Individuelles_Master_Studium/'
  cd _
  files = Dir[_+'Curriculum_Master'+'*']
  files += Dir[_+'Zusammenfassung'+'*']
  copy_these_files(files)
end

#copy_meduni_sammelzeugnisObject

#

copy_meduni_sammelzeugnis

#


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

def copy_meduni_sammelzeugnis
  file = Dir[DIRECTORY_EXAMS_RESULT+'MEDUNI_WIEN/MeduniWien_Sammelzeugnis_9703011_bis_17.02.2020_33.5_ECTS.pdf'].first
  das_sammelzeugnis_wurde_nicht_gefunden if file.nil?
  copy_this_file(file)
end

#copy_the_erklärbärschreiben(target = ROEBE_STUDIUM_DIR+'TU_WIEN/Individuelles_Studium_an_der_TU_Wien/Antrag/'\ 'Extensives_Erklärungsschreiben_zu_dem_individuellen_Curriculum_Informatik_und_molekulare_Biologie.*') ⇒ Object

#

copy_the_erklärbärschreiben

#


155
156
157
158
159
160
161
162
163
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 155

def copy_the_erklärbärschreiben(
    # target = ROEBE_STUDIUM_DIR+'UNI_WIEN/Individuelles_Studium_an_der_Uni_Wien/Erklärungsschreiben/*'
    target = ROEBE_STUDIUM_DIR+'TU_WIEN/Individuelles_Studium_an_der_TU_Wien/Antrag/'\
             'Extensives_Erklärungsschreiben_zu_dem_individuellen_Curriculum_Informatik_und_molekulare_Biologie.*'
  )
  Dir[target].sort.each {|this_file|
    copy_this_file(this_file)
  }
end

#copy_the_scanned_image_for_the_petitionObject

#

copy_the_scanned_image_for_the_petition

This is currently (April 2021) only used for the TU Vienna.

#


246
247
248
249
250
251
252
253
254
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 246

def copy_the_scanned_image_for_the_petition
  case @target_university
  when :tu_vienna
    file = Dir[
      '/home/x/studium/TU_WIEN/Individuelles_Studium_an_der_TU_Wien/Antrag/SCAN_*.jpg'
    ].first
    copy_this_file(file)
  end
end

#copy_these_files(files) ⇒ Object Also known as: copy_this_file

#

copy_these_files

#


96
97
98
99
100
101
102
103
104
105
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 96

def copy_these_files(files)
  [files].flatten.compact.each {|entry|
    if File.exist? entry
      copy_file(
        entry,
        @package_into_this_subdirectory+File.basename(entry)
      )
    end
  }
end

#copy_tuwien_sammelzeugnisObject

#

copy_tuwien_sammelzeugnis

#


168
169
170
171
172
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 168

def copy_tuwien_sammelzeugnis
  file = Dir[DIRECTORY_EXAMS_RESULT+'TU_WIEN/*Sammel*.pdf'].first
  das_sammelzeugnis_wurde_nicht_gefunden if file.nil?
  copy_this_file(file)
end

#copy_uniwien_sammelzeugnisObject

#

copy_uniwien_sammelzeugnis

#


211
212
213
214
215
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 211

def copy_uniwien_sammelzeugnis
  file = Dir[DIRECTORY_EXAMS_RESULT+'UNI_WIEN/*UniWien_Sammelzeugnis*.pdf'].first
  das_sammelzeugnis_wurde_nicht_gefunden if file.nil?
  copy_this_file(file)
end

#copy_vetmed_sammelzeugnisObject

#

copy_vetmed_sammelzeugnis

#


177
178
179
180
181
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 177

def copy_vetmed_sammelzeugnis
  file = Dir[DIRECTORY_EXAMS_RESULT+'VETMED_UNI/Sammelzeugnis_Mitbeleger_an_der_Vetmed_Uni_bis_24.05.2019.pdf'].first
  das_sammelzeugnis_wurde_nicht_gefunden if file.nil?
  copy_this_file(file)
end

#create_a_zip_archiveObject

#

create_a_zip_archive (zip tag)

Finally create a .zip archive.

#


283
284
285
286
287
288
289
290
291
292
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 283

def create_a_zip_archive
  e "Now creating a #{tomato('.zip')} archive."
  cd @cd_into_this_directory
  zip_cmd = 'zip -r '+
            @name_of_the_directory_for_the_individual_curriculum+'-'+
            return_dd_mm_yyyy+'.zip '+
            @name_of_the_directory_for_the_individual_curriculum+
            '-'+return_dd_mm_yyyy+'/'
  esystem zip_cmd
end

#create_the_sammelzeugnis_directoryObject

#

create_the_sammelzeugnis_directory

#


269
270
271
272
273
274
275
276
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 269

def create_the_sammelzeugnis_directory
  cd_to_the_generated_directory
  e 'Next creating the directory '+
    sdir('sammelzeugnisse/')+
    ' in the directory `'+
    sdir(return_pwd)+'`.'
  mkdir 'sammelzeugnisse'
end

#create_the_subdirectory_and_cd_into_itObject

#

create_the_subdirectory_and_cd_into_it

#


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

def create_the_subdirectory_and_cd_into_it
  mkdir @cd_into_this_directory
  mkdir @package_into_this_subdirectory
  cd_to_the_generated_directory # This refers to @package_into_this_subdirectory. 
end

#das_sammelzeugnis_wurde_nicht_gefundenObject

#

das_sammelzeugnis_wurde_nicht_gefunden

#


204
205
206
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 204

def das_sammelzeugnis_wurde_nicht_gefunden
  e tomato('Das Sammelzeugnis wurde nicht gefunden.')
end

#notify_the_user_where_the_subdirectory_isObject

#

notify_the_user_where_the_subdirectory_is

#


145
146
147
148
149
150
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 145

def notify_the_user_where_the_subdirectory_is
  e "#{rev}Everything will be copied into the following directory:"
  e
  e "  #{sdir(@package_into_this_subdirectory)}"
  e
end

#package_into_this_subdirectory?Boolean Also known as: target?

#

package_into_this_subdirectory?

#

Returns:

  • (Boolean)


138
139
140
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 138

def package_into_this_subdirectory?
  @package_into_this_subdirectory
end

#relocate_all_samelzeugnisse_into_the_sammelzeugnis_directoryObject

#

relocate_all_samelzeugnisse_into_the_sammelzeugnis_directory

#


259
260
261
262
263
264
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 259

def relocate_all_samelzeugnisse_into_the_sammelzeugnis_directory
  array = Dir['*ammelzeugnis*.pdf']
  array.each {|this_file|
    move_file(this_file, 'sammelzeugnisse/')
  }
end

#resetObject

#

reset (reset tag)

#


47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 47

def reset
  super()
  # ======================================================================= #
  # === @cd_into_this_directory
  #
  # This variable will specify our base-directory for the documents.
  # ======================================================================= #
  @cd_into_this_directory = '/Depot/Individuelles_Studium/'
  # ======================================================================= #
  # === @name_of_the_directory_for_the_individual_curriculum
  # ======================================================================= #
  @name_of_the_directory_for_the_individual_curriculum =
    'individuelles_bachelorcurriculum_an_der_TU_Wien'
  # ======================================================================= #
  # === @target_university
  # ======================================================================= #
  @target_university = :boku
  # ======================================================================= #
  # === @package_into_this_subdirectory
  #
  # This variable denotes into which subdirectory we will put the
  # relevant files into.
  #
  #   cd /Depot/j/individual_curriculum/
  #
  # ======================================================================= #
  @package_into_this_subdirectory =
    @cd_into_this_directory+
    @name_of_the_directory_for_the_individual_curriculum+
    '-'+
    return_dd_mm_yyyy+'/'
end

#runObject

#

run (run tag)

#


220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'lib/studium/utility_scripts/prepare_individual_curriculum.rb', line 220

def run
  e 'Preparing an individual curriculum at '\
    'the university '+steelblue(@target_university.to_s)+
    ' next.'
  create_the_subdirectory_and_cd_into_it
  notify_the_user_where_the_subdirectory_is
  copy_bachelor_documents
  # copy_master_documents
  copy_uniwien_sammelzeugnis
  copy_tuwien_sammelzeugnis
  copy_vetmed_sammelzeugnis
  copy_BOKU_sammelzeugnis
  copy_vetmed_sammelzeugnis
  copy_meduni_sammelzeugnis
  copy_the_erklärbärschreiben
  copy_the_scanned_image_for_the_petition
  create_the_sammelzeugnis_directory
  relocate_all_samelzeugnisse_into_the_sammelzeugnis_directory
  create_a_zip_archive
end