Class: Studium::Exams::Cycle
- Inherits:
-
Base
- Object
- Base
- Studium::Exams::Cycle
show all
- Defined in:
- lib/studium/exams/cycle.rb
Overview
Constant Summary
collapse
- STORE_WHERE =
#
Cycle::STORE_WHERE
Where we store our results, that is, the last exam topic.
cat /Depot/Studium/last_exam_topic.md
#
"#{Studium.log_dir?}last_exam_topic.md"
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
-
.main_file? ⇒ Boolean
# === Studium::Exams::Cycle.main_file? ========================================================================= #.
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, #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(optional_commandline_argument = ARGV, run_already = true) ⇒ Cycle
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/studium/exams/cycle.rb', line 43
def initialize(
optional_commandline_argument = ARGV,
run_already = true
)
reset
set_commandline_arguments(
optional_commandline_argument
)
run if run_already
end
|
Class Method Details
.main_file? ⇒ Boolean
#
Studium::Exams::Cycle.main_file?
#
Instance Method Details
#ask_the_question(use_this_topic = topic?
) ⇒ Object
247
248
249
250
251
|
# File 'lib/studium/exams/cycle.rb', line 247
def ask_the_question(
use_this_topic = topic?
)
::Studium::Exams::ExamQuestion.new(use_this_topic)
end
|
#check_commandline(i = @commandline) ⇒ Object
Also known as:
#
check_commandline (menu tag)
#
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
|
# File 'lib/studium/exams/cycle.rb', line 208
def check_commandline(
i = @commandline
)
case i when /report(_|-)?where(_|-)?the(_|-)?main(_|-)?yaml(_|-)?file(_|-)?is/
report_where_the_main_yaml_file_is
exit
when /help/
show_available_commandline_options
e
report_where_the_main_yaml_file_is
exit
when /-?-?size/
report_how_many_entries_are_available
exit
when /-?-?open/,'OPEN'
begin
require 'open'
rescue LoadError; end
open_in_editor(yaml_file?)
exit end
end
|
#data? ⇒ Boolean
Also known as:
data
125
126
127
|
# File 'lib/studium/exams/cycle.rb', line 125
def data?
@data
end
|
#debug? ⇒ Boolean
154
155
156
|
# File 'lib/studium/exams/cycle.rb', line 154
def debug?
false
end
|
#determine_which_topic_to_use ⇒ Object
#
determine_which_topic_to_use
We determine the ivar @last_topic_used here.
#
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# File 'lib/studium/exams/cycle.rb', line 92
def determine_which_topic_to_use
if File.exist? STORE_WHERE
@last_topic_used = File.read(STORE_WHERE).strip
else @last_topic_used = data?.first
end
if debug? e 'DEBUG: The last topic used was: '+sfancy(@last_topic_used)
end
end
|
#index? ⇒ Boolean
#
index?
Returns the index of the current topic.
#
111
112
113
|
# File 'lib/studium/exams/cycle.rb', line 111
def index?
data?.find_index(@last_topic_used)
end
|
#load_dataset ⇒ Object
#
load_dataset
The current exams will be stored in @data.
#
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/studium/exams/cycle.rb', line 69
def load_dataset
_ = yaml_file?
if File.exist? _
@data = File.readlines(_) @data.select! {|line| line.start_with? '-'}
@data.map! {|entry| entry.chomp.delete('-').strip }
else
opnn; e 'No file exists at `'+sfile(_)+'`.'
end
end
|
#report_how_many_entries_are_available ⇒ Object
#
report_how_many_entries_are_available
Tell the user how many different entries are available.
#
179
180
181
182
183
184
|
# File 'lib/studium/exams/cycle.rb', line 179
def report_how_many_entries_are_available
_ = yaml_file?
n_entries = YAML.load_file(_).size.to_s
e 'We currently use `'+simp(n_entries)+'` entries. (From file '+sfile(_)+')'
report_which_entries_are_used
end
|
#report_where_the_main_yaml_file_is ⇒ Object
#
report_where_the_main_yaml_file_is
#
201
202
203
|
# File 'lib/studium/exams/cycle.rb', line 201
def report_where_the_main_yaml_file_is
e 'The main yaml file is at: '+sfile(yaml_file?)
end
|
#report_which_entries_are_used ⇒ Object
#
report_which_entries_are_used
#
189
190
191
192
193
194
195
196
|
# File 'lib/studium/exams/cycle.rb', line 189
def report_which_entries_are_used
these_entries = YAML.load_file(yaml_file?)
e
e 'We will use the following entries:'
e
print ' '; e these_entries.join(', ').strip.chop
e
end
|
#reset ⇒ Object
57
58
59
60
61
62
|
# File 'lib/studium/exams/cycle.rb', line 57
def reset
super()
@debug = true
@last_topic_used = nil
end
|
#run ⇒ Object
266
267
268
269
270
271
272
|
# File 'lib/studium/exams/cycle.rb', line 266
def run
load_dataset
check_commandline
determine_which_topic_to_use
ask_the_question
store_last_topic_asked
end
|
#show_available_commandline_options ⇒ Object
#
show_available_commandline_options (help tag)
Invoke this method like so:
cycle --help
#
164
165
166
167
168
169
170
171
172
|
# File 'lib/studium/exams/cycle.rb', line 164
def show_available_commandline_options
e
e 'These commandline-options are available:'
e
e ' --open # To open the .yml file in your editor'
e ' --size # Show how many entries are available'
e ' --report_where_the_main_yaml_file_is # show where the main .yml file is'
e
end
|
#store_last_topic_asked ⇒ Object
#
store_last_topic_asked
#
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
# File 'lib/studium/exams/cycle.rb', line 132
def store_last_topic_asked
where = STORE_WHERE
what = @last_topic_used
index = index?
index = 0 if index.nil? index += 1
if (index+1) > data?.size
index = 0 end
what = data?[index]
if debug?
e 'Next storing `'+what.to_s+'` into `'+sfile(store_where?)+'`.'
end
write_what_into(what, where)
end
|
#store_where? ⇒ Boolean
83
84
85
|
# File 'lib/studium/exams/cycle.rb', line 83
def store_where?
STORE_WHERE
end
|
#topic? ⇒ Boolean
118
119
120
|
# File 'lib/studium/exams/cycle.rb', line 118
def topic?
@last_topic_used
end
|
#yaml_file? ⇒ Boolean
#
yaml_file?
This may point to a file such as “/home/x/DATA/PROGRAMMING_LANGUAGES/RUBY/src/studium/lib/studium/yaml/current_exams.yml”
#