Class: Studium::Exams::Pruefung

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/exams/pruefung.rb

Overview

Studium::Exams::Pruefung

Constant Summary collapse

NAMESPACE =
#

NAMESPACE

#
inspect
SHALL_WE_DISPLAY_AVAILABLE_TOPICS =
#

SHALL_WE_DISPLAY_AVAILABLE_TOPICS

#
false
ARRAY_QUESTION_POOL =
%w(
  genomik
  gentechnik
  biotech
  ab2
)

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

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, #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 = nil, run_already = true) ⇒ Pruefung

#

initialize

#


55
56
57
58
59
60
61
62
# File 'lib/studium/exams/pruefung.rb', line 55

def initialize(
    i           = nil,
    run_already = true
  )
  reset
  set_input(i)
  run if run_already
end

Instance Method Details

#display_available_topicsObject

#

display_available_topics

#


203
204
205
206
207
208
209
210
# File 'lib/studium/exams/pruefung.rb', line 203

def display_available_topics
  if SHALL_WE_DISPLAY_AVAILABLE_TOPICS
    opnn; e 'The available topics are:'
    e '  '+ARRAY_QUESTION_POOL.map {|entry|
        simp(entry.capitalize)
      }.join(', ')+N
  end
end

#editor?Boolean

#

editor?

#

Returns:

  • (Boolean)


111
112
113
# File 'lib/studium/exams/pruefung.rb', line 111

def editor?
  @editor
end

#feedback_helpObject

#

feedback_help (help tag)

#


260
261
262
263
264
265
266
267
268
269
270
# File 'lib/studium/exams/pruefung.rb', line 260

def feedback_help
  e 'The following options are available for '+sfile('pruefung.rb')+':'
  e
  ecomment '  OPEN_ALL   # open everything'
  ecomment '  LOCATION   # feedback the location'
  ecomment '  EDIT       # Open the exams file.'
  ecomment '  EDIT_ALL   # open all relevant files'
  ecomment '  VIM        # open with vim.'
  ecomment '  QUESTIONS? # show which questions are available.'
  e
end

#feedback_locationObject

#

feedback_location

#


86
87
88
89
90
# File 'lib/studium/exams/pruefung.rb', line 86

def feedback_location # This will give us the location.
  opnn; e 'The location of current exams are kept here:'
  opnn; efile('  '+main_file?)
  opnn; e 'Note: You can pass the argument OPEN to open this file.'
end

#fetch_random_datasetObject

#

fetch_random_dataset

#


196
197
198
# File 'lib/studium/exams/pruefung.rb', line 196

def fetch_random_dataset
  @topic = ARRAY_QUESTION_POOL.sample
end

#give_exam_questionObject

#

give_exam_question

#


287
288
289
290
291
# File 'lib/studium/exams/pruefung.rb', line 287

def give_exam_question
  _ = ::Studium::Exams::ExamQuestion.new(@topic, :dont_run_yet)
  _.set_show_topic(@shall_we_show_the_topic) # true for show topic.
  _.run
end

#main_file?Boolean

#

main_file?

#

Returns:

  • (Boolean)


230
231
232
# File 'lib/studium/exams/pruefung.rb', line 230

def main_file?
  CURRENT_EXAMS
end

#open_current_exams(shall_we_exit = true) ⇒ Object

#

open_current_exams

#


102
103
104
105
106
# File 'lib/studium/exams/pruefung.rb', line 102

def open_current_exams(shall_we_exit = true)
  _ = editor?+' '+CURRENT_EXAMS
  efancy('  '+_); system(_)
  exit if shall_we_exit
end

#open_everything(be_verbose = :be_verbose) ⇒ Object

#

open_everything

#


237
238
239
240
241
242
243
244
# File 'lib/studium/exams/pruefung.rb', line 237

def open_everything(be_verbose = :be_verbose)
  be_verbose = true if be_verbose == :be_verbose
  if be_verbose
    e 'Now opening the files with editor vim:'
  end
  open_current_exams(false)
  open_this_file_here # This is fine here because we will exit.
end

#open_this_file_here(shall_we_exit = true) ⇒ Object

#

open_this_file_here

#


249
250
251
252
253
254
255
# File 'lib/studium/exams/pruefung.rb', line 249

def open_this_file_here(shall_we_exit = true)
  _ = editor?+' '\
      '/home/x/DATA/PROGRAMMING_LANGUAGES/RUBY/src/studium/lib/studium/exams/pruefung.rb'
  efancy('  '+_)
  system(_)
  exit if shall_we_exit
end

#process_inputObject Also known as: menu

#

process_input

#


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
189
190
191
# File 'lib/studium/exams/pruefung.rb', line 132

def process_input
  case @input.first # case tag
  # ======================================================================= #
  # === pruefung --open
  # ======================================================================= #
  when 'OPEN',
       'OPEN_EXAM',
       /^-?-?open$/i,
       /^-?-?edit$/i
    open_current_exams
  # ======================================================================= #
  # === pruefung --editor?
  # ======================================================================= #
  when '--editor?','EDITOR','EDITOR?','editor?'
    show_which_editor_we_will_use; exit
  # ======================================================================= #
  # === pruefung --help
  # ======================================================================= #
  when '--help','HELP'
    feedback_help; exit
  # ======================================================================= #
  # === pruefung --questions?
  # ======================================================================= #
  when 'topic','topcs?','QUESTIONS?','questions?','QUESTIONS',
       '--questions?'
    show_available_topics; exit
  # ======================================================================= #
  # === pruefung BLUEFISH
  # ======================================================================= #
  when /^-?-?bluefish$/i
    set_editor 'bluefish'
    open_everything(:be_verbose)
  # ======================================================================= #
  # === pruefung nano
  # ======================================================================= #
  when /^-?-?NANO$/i
    set_editor 'nano'
    open_everything(:be_verbose)
  # ======================================================================= #
  # === pruefung OPEN_VIM
  # ======================================================================= #
  when 'OPEN_VIM','OPEN_WITH_VIM','OPENVIM','VIM',
       'EDIT_WITH_VIM'
    set_editor 'vim'
    open_everything(:be_verbose) # We open everything with vim.
  # ======================================================================= #
  # === pruefung OPEN_ALL
  # ======================================================================= #
  when 'OPEN_ALL','OPENALL','EDIT_ALL','EDITALL'
    open_everything
  when 'OPEN_SELF','SELF','--self'
    open_this_file_here
  when 'SHOW'
    show_yaml_file
    exit
  when 'LOCATION','L','L?','FILE?'
    feedback_location
    exit
  end
end

#resetObject

#

reset (reset tag)

#


67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/studium/exams/pruefung.rb', line 67

def reset
  super()
  # ======================================================================= #
  # === @namespace
  # ======================================================================= #
  @namespace = NAMESPACE
  # ======================================================================= #
  # === @shall_we_show_the_topic
  # ======================================================================= #
  @shall_we_show_the_topic = false
  # ======================================================================= #
  # === @editor
  # ======================================================================= #
  @editor = ::Studium.editor?
end

#runObject

#

run (run tag)

#


275
276
277
278
279
280
# File 'lib/studium/exams/pruefung.rb', line 275

def run
  fetch_random_dataset
  display_available_topics # This can be optional.
  process_input
  give_exam_question
end

#set_editor(i = 'VIM') ⇒ Object

#

set_editor

#


118
119
120
# File 'lib/studium/exams/pruefung.rb', line 118

def set_editor(i = 'VIM')
  @editor = i
end

#set_input(i) ⇒ Object

#

set_input

#


95
96
97
# File 'lib/studium/exams/pruefung.rb', line 95

def set_input(i)
  @input = i.dup
end

#show_available_topicsObject

#

show_available_topics

#


215
216
217
218
# File 'lib/studium/exams/pruefung.rb', line 215

def show_available_topics
  e 'These topics are available:'
  pp ARRAY_QUESTION_POOL
end

#show_which_editor_we_will_useObject

#

show_which_editor_we_will_use

#


125
126
127
# File 'lib/studium/exams/pruefung.rb', line 125

def show_which_editor_we_will_use
  opnn; e 'Which editor will we use? '+simp(@editor)
end

#show_yaml_fileObject

#

show_yaml_file

#


223
224
225
# File 'lib/studium/exams/pruefung.rb', line 223

def show_yaml_file
  e File.read(main_file?)
end