Class: Studium::Statistics::ReportHowManyExamQuestionsWereAnswered

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/statistics/report_how_many_exam_questions_were_answered.rb

Overview

Studium::Statistics::ReportHowManyExamQuestionsWereAnswered

Constant Summary

Constants inherited from Base

Base::COMMON_YEAR_DAYS_IN_MONTH, Base::LEFT_PADDING, Base::NAMESPACE, Base::N_CHARACTERS_PER_LINE

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, #be_silent, #be_verbose?, #beautiful_url, #change_directory, #cheering_person, #chmod, #cliner, #colour_for_ects_points, #colourize_percentage, #convert_this_array_of_lectures_into_the_full_dataset, #copy, #course_filter, #cpruby, #create_directory, #create_file, #csv_file?, #current_month?, #current_semester?, #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?, #does_this_line_include_an_english_weekday?, #does_this_line_start_with_a_german_weekday?, #e, #ecomment, #editor?, #ee, #egrey, #enable_colours, #enable_colours_globally, #enable_debug, #encoding?, #english_to_german_weekday, #ensure_that_a_base_directory_exists_for_this_file, #ensure_that_the_log_directory_exists, #eparse, #esystem, #etomato, #exit_program, #extract_dd_mm_yyyy, #fetch_this_curriculum, #file_important_exams?, #file_lecture_information?, #file_passed_exams_per_month, #file_read_with_proper_encoding, #filter_away_already_answered_questions, #filter_away_invalid_questions, #filter_for_all_passed_exams, #find_corresponding_exam_topic, #from_curriculum_id_to_university, #german_date_notation, #german_weekday?, #german_weekdays?, #german_weekend_for?, #german_yes_or_no, #has_a_bachelor_and_a_master_curriculum?, #has_a_bachelor_curriculum?, #has_a_master_curriculum?, #has_lva_dates_registered?, #has_this_exam_topic_been_solved?, #has_year_entry?, #hh_mm_ss_dd_mm_yyyy, #horizontal_bar?, #html_log_directory?, #infer_the_namespace, #initialize_the_internal_hash, #internal_hash?, #is_a_master_lecture?, #is_a_registered_curriculum?, #is_a_weekday?, #is_connected_to_the_www?, #is_german_weekday?, #is_on_roebe?, #is_prüfungsimmanent?, #is_this_a_registered_exam_topic?, #is_this_a_valid_html_colour?, #is_this_day_today?, #is_this_lecture_a_practical_course?, #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, #left_arrow?, #load_yaml_dataset, #map_input_to_this_curriculum_filename, #move_file, #n_days_difference_from_today_to_this_day, #n_seconds_to_n_days, #namespace?, #no_ext_name, #no_file_exists_at, #number_to_month, #obtain, #obtain_lectures_from_this_curriculum, #open_in_browser, #open_in_editor, #opne, #opnerev, #opnn, #padded_current_month?, #parse_dd_mm_yyyy, #parse_this_line_for_date_entry, #path_to_exam_topic?, #project_yaml_directory?, #rds, #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, #require_open_uri, #reset_the_internal_state, #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, #right_arrow?, #rinstall2, #roebe_exam_directory?, #roebe_path_to_file_lecture_information?, #ruby_src_dir_at_home?, #sanitize_this_topic, #sanitize_url, #select_for_prüfungsimmanente_LVs, #select_lectures_with_this_key, #set_be_verbose, #set_this_cd_alias_to, #set_xorg_buffer, #sfancy, #shall_we_make_use_of_unicode_symbols?, #show_todays_date, #silently_open_in_browser, #simp, #sort_these_lecture_names_by_time, #spacer, #studium_log_dir?, #this_month_has_n_days?, #total_ects_points_passed, #translate_dd_mm_yyyy_to_weekday, #try_to_require_html_templates, #try_to_require_the_open_gem, #try_to_require_the_rcfiles, #try_to_require_the_verbose_truth_gem, #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, #yaml_dir?, #yellowrev, #yes_or_no

Methods included from RunmodeModule

#commandline?, #runmode?, #set_commandline_mode, #set_runmode, #set_www_mode, #www_mode?

Methods included from CommandlineArgumentsModule

#commandline_arguments?, #commandline_arguments_joined, #commandline_arguments_with_hyphens?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_non_hyphen_argument?, #reset_the_commandline_arguments, #set_commandline_arguments, #set_first_argument

Methods included from HtmlColoursModule

#aquamarine, #blanchedalmond, #brown, #cadetblue, #chocolate, #coral, #cornflowerblue, #crimson, #cyan, #darkblue, #darkcyan, #darkgoldenrod, #darkgreen, #darkkhaki, #darkolivegreen, #darkorange, #darkred, #darkseagreen, #darkslateblue, #darkslategray, #darkturquoise, #deepskyblue, #firebrick, #forestgreen, #gold, #goldenrod, #green, #grey, #indianred, #khaki, #lavender, #lawngreen, #lightblue, #lightcoral, #lightgreen, #lightred, #lightseagreen, #lightskyblue, #lightslategray, #lightslategrey, #lime, #limegreen, #mediumaquamarine, #mediumblue, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mediumvioletred, #mintcream, #moccasin, #oldlace, #olive, #olivedrab, #orange, #orangered, #orchid, #palegoldenrod, #palegreen, #paleturquoise, #palevioletred, #peru, #plum, #powderblue, #red, #rosybrown, #royalblue, #saddlebrown, #salmon, #sandybrown, #seagreen, #sienna, #silver, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #tan, #teal, #thistle, #tomato, #turquoise, #violet, #whitesmoke, #yellow, #yellowgreen

Methods included from Colours

#bold_blue, #bold_red, #bold_yellow, cadetblue, #cadetblue, #chartreuse, #coral, coral, #cornflowerblue, cornflowerblue, crimson, #cyan, cyan, darkgoldenrod, #darkgoldenrod, #darkgray, darkgreen, darkolivegreen, darkseagreen, #darkslateblue, darkslateblue, #darkslategray, darkslategray, #darkturquoise, darkturquoise, #deepskyblue, deepskyblue, default_colour, #dimgray, disable_colours, #dodgerblue, e, #efancy, enable_colours, #erev, #ewarn, #forestgreen, forestgreen, gold, #goldenrod, goldenrod, #grey, grey, indianred, #indianred, khaki, #khaki, lawngreen, #lawngreen, lightblue, lightgreen, lightsalmon, #lightseagreen, lightseagreen, lightskyblue, #lightskyblue, #lightslategray, lightslategray, #lightsteelblue, lime, #lime, limegreen, #limegreen, #mediumaquamarine, mediumaquamarine, #mediumorchid, #mediumpurple, mediumpurple, #mediumseagreen, mediumseagreen, #mediumslateblue, mediumslateblue, #mediumspringgreen, mediumspringgreen, #mediumturquoise, mediumturquoise, #oldlace, olive, #olive, olivedrab, #olivedrab, orange, orangered, #orchid, orchid, palegreen, #palegreen, paleturquoise, #paleturquoise, palevioletred, #papayawhip, peru, #peru, plum, #plum, #powderblue, powderblue, rev, #rev?, royalblue, saddlebrown, #saddlebrown, #sandybrown, sandybrown, sdir, #sdir, seagreen, #seagreen, sfancy, #sfancy, sfile, #sfile, #simp, simp, #skyblue, skyblue, slateblue, #slategray, slategray, springgreen, #springgreen, #steelblue, steelblue, #swarn, swarn, #tan, tan, teal, #teal, #tomato, tomato, turquoise, use_colours?, use_this_colour_for_exam_answers, use_this_colour_for_exam_questions, #yellow, yellowgreen, #yellowgreen

Constructor Details

#initialize(optional_commandline_arguments = ARGV, run_already = true) ⇒ ReportHowManyExamQuestionsWereAnswered

#

initialize

#


28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 28

def initialize(
    optional_commandline_arguments = ARGV,
    run_already                    = true
  )
  reset
  if optional_commandline_arguments
    menu(optional_commandline_arguments)
  end
  if block_given?
    yielded = yield
    case yielded
    when :do_not_show_result,
         :do_not_show_the_result,
         :do_not_display_the_result,
         :be_quiet
      @output_result = false
    end
  end
  run if run_already
end

Class Method Details

.[](*args) ⇒ Object

#

Studium::Statistics::ReportHowManyExamQuestionsWereAnswered[]

This is the variant that will not display the result.

#


417
418
419
420
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 417

def self.[](*args) # Accepts arguments.
  object = new(args) { :do_not_display_the_result }
  return object
end

.generate_webpageObject

#

Studium::Statistics::ReportHowManyExamQuestionsWereAnswered.generate_webpage

#


425
426
427
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 425

def self.generate_webpage
  new('generate_webpage')
end

.show_statsObject

#

Studium::Statistics::ReportHowManyExamQuestionsWereAnswered.show_stats

#


432
433
434
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 432

def self.show_stats
  new
end

Instance Method Details

#[](key) ⇒ Object

#

Studium::Statistics::ReportHowManyExamQuestionsWereAnswered[]

#


439
440
441
442
443
444
445
446
447
448
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 439

def [](key)
  # ======================================================================= #
  # If the key is :random_topic then we will treat it in a special
  # manner.
  # ======================================================================= #
  if key == :random_topic
    key = @hash.keys.sample
  end
  @hash[key.to_sym]
end

#add_statistical_information_to_the_main_stringObject

#

add_statistical_information_to_the_main_string

The task of this method is to add how many questions and answered to these questions we have.

#


338
339
340
341
342
343
344
345
346
347
348
349
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 338

def add_statistical_information_to_the_main_string
  _ = ''.dup
  if use_unicode_symbols? and !www_mode?
    _ << N
    _ << return_unicode_line
  end
  _ << N
  _ << 'n questions available: '+sfancy(n_questions?.to_s)+N
  _ << 'n answers given:       '+
        sfancy(n_questions_answered.to_s.rjust(5))+N
  @string_to_save_into_file << _
end

#considering_renaming_kde_konsole_tab(use_this_title = 'Exam Statistics') ⇒ Object

#

considering_renaming_kde_konsole_tab

#


179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 179

def considering_renaming_kde_konsole_tab(
    use_this_title = 'Exam Statistics'
  )
  if Object.const_defined?(:Roebe) and
     Roebe.respond_to?(:rename_konsole_tab) and
     konsole_support? and
     rename_konsole_tab?
    begin
      require 'roebe/classes/kde/kde_konsole/kde_konsole.rb'
    rescue LoadError; end
    Roebe.rename_konsole_tab(use_this_title, :be_quiet)
  end
end

#display_datasetObject Also known as: display

#

display_dataset

#


196
197
198
199
200
201
202
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 196

def display_dataset
  if output_result? and be_verbose?
    e @string_to_save_into_file # Display the main string.
    save_how_many_questions_we_have_registered_so_far
    save_dataset_into_file
  end
end

#generate_webpageObject

#

generate_webpage

This method will generate a webpage.

Invocation example:

examstatistics --generate-webpage
#


397
398
399
400
401
402
403
404
405
406
407
408
409
410
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 397

def generate_webpage
  set_runmode(:www)
  disable_colours
  initialize_main_dataset
  use_this_regex = /\(That is (\d*.\d+) %\)/ # See: http://rubular.com/r/I3r4ryPFfw
  use_this_css_style = 'background-color: black; padding: 0.5em; color: white; font-size:1.2em;'
  _ = dataset?.gsub(/\n/, "\n<br>")
  _ =~ use_this_regex
  _.gsub!(use_this_regex, '(That is <span style="color: red">\1</span> %)')
  what = '<html><title>Statistics</title><body style="'+use_this_css_style+'">'+_+'</body></html>'
  into = "#{html_log_directory?}statistics.html"
  write_what_into(what, into)
  opne "Storing into file `#{sfile(into)}`."
end

#hash?Boolean Also known as: internal_dataset

#

hash?

#

Returns:

  • (Boolean)


123
124
125
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 123

def hash?
  @hash
end

#initialize_main_datasetObject

#

initialize_main_dataset

This will populate @hash with the proper entries.

#


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
243
244
245
246
247
248
249
250
251
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 209

def initialize_main_dataset
  all_topics = ::Studium::Exams.all_topics_as_short_name
  directory_to_the_exam_topics = directory_to_the_exam_topics?
  @hash.clear
  # ======================================================================= #
  # Iterate over the full dataset next.
  # ======================================================================= #
  all_topics.each {|filename|
    # ===================================================================== #
    # We will obtain the path to the filename. In the past we also
    # applied .downcase on this, but some files may contain upcased
    # characters, such as the file 'RNAi_siRNA_and_miRNA'.
    # ===================================================================== #
    path = "#{directory_to_the_exam_topics}#{filename}"
    if File.file? path
      dataset = default_readlines(path)
      dataset = ::Studium.filter_away_invalid_questions(dataset, path)
      n_total_questions = dataset.size
      n_questions_answered = dataset.select {|entry| entry.include? ' []' }.size
      # ===================================================================== #
      # We must be careful when we calculate the percentage. We
      # should not divide by 0.
      # ===================================================================== #
      if n_total_questions == 0
        percentage_of_questions_answered = 0
      else
        percentage_of_questions_answered = (
          (n_questions_answered * 100.0) / n_total_questions
        ).round(2)
      end
      @hash[filename.to_sym] = {
        n_total_questions:                n_total_questions,
        n_questions_answered:             n_questions_answered,
        percentage_of_questions_answered: percentage_of_questions_answered
      }
    else
      opne no_file_at(path)
    end
  } # At this point, we have initialized our dataset properly.
  sort_main_hash_by_percentages
  populate_main_string
  add_statistical_information_to_the_main_string
end
#

menu

#


80
81
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
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 80

def menu(i)
  if i.is_a? Array
    i.flatten.each {|entry| menu(entry) }
  else
    case i.to_s.delete('-') # case tag
    # ===================================================================== #
    # === examstatistics --generate-webpage
    # ===================================================================== #
    when /^-?-?generate(_|-)?homepage$/,
         'www',
         /webpage/ # The last variant also includes --generate-webpage
       generate_webpage
    # ===================================================================== #
    # === be_quiet_and_no_colours
    # ===================================================================== #
    when 'be_quiet_and_no_colours'
      be_quiet
      no_colours
    # ===================================================================== #
    # === be_quiet
    # ===================================================================== #
    when /^-?-?be_?quiet/,
         /^-?-?be_?silent/
      be_quiet
    # ===================================================================== #
    # === shorten
    # ===================================================================== #
    when /^-?-?shorten$/,'short','shor','sho','sh','s'
      @shorten_result = true
    # ===================================================================== #
    # === 5
    # ===================================================================== #
    when /\d+/ # Else if input is a number. We will display only x categories.
      @keep_only_n_results = i.to_i - 1
    # else
      # pp _ # Be silent for now.
    end
  end
end

#n_answers?Boolean Also known as: n_questions_answered

#

n_answers?

#

Returns:

  • (Boolean)


161
162
163
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 161

def n_answers?
  @n_total_answers
end

#n_questions?Boolean

#

n_questions?

#

Returns:

  • (Boolean)


154
155
156
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 154

def n_questions?
  @n_total_questions
end

#output_result?Boolean

#

output_result?

#

Returns:

  • (Boolean)


138
139
140
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 138

def output_result?
  @output_result
end

#populate_main_stringObject

#

populate_main_string

This is the method that will fill up the main String that is to be displayed to the user.

#


259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 259

def populate_main_string
  index = 0
  # ======================================================================= #
  # We can now display the relevant entries from our main Hash. We will
  # sort the entries by n total questions. If this is unwanted, we can
  # remove it again at a later time.
  # We have to sort on two criteria at the same time - first, how
  # many questions; and then, how many answers to these questions.
  # ======================================================================= #
  sorted = @hash.sort_by {|key, value|
    [
      value[:n_total_questions],
      value[:n_questions_answered]
    ]
  }.reverse
  if use_unicode_symbols? and !www_mode?
    @string_to_save_into_file << N
    @string_to_save_into_file << return_unicode_line
    @string_to_save_into_file << N
  end
  sorted.each {|key, value| # value is a hash as well
    index += 1
    name_of_the_topic_at_hand = ::Studium.find_corresponding_exam_title(key.to_s)
    if name_of_the_topic_at_hand.nil?
      opne 'No topic was found for '+orange(key.to_s)
      opne 'Considering adding this topic into '+
            orange('Studium.find_corresponding_exam_title()')
    else
      n_total_questions    = value.fetch(:n_total_questions)
      @n_total_questions  += n_total_questions
      n_questions_answered = value.fetch(:n_questions_answered)
      @n_total_answers    += n_questions_answered
      _  = ''.dup
      inner_index = index.to_s.rjust(3)
      if is_on_www? # Handle www-situation.
        _ << '<span style="color: sandybrown">'+inner_index+'</span>) '
      else
        _ << sandybrown(inner_index)+paleturquoise(') ')
      end
      # =================================================================== #
      # Next add the name of the exam-topic at hand. This used to
      # be colourized in slateblue, but is now handled via royalblue.
      # =================================================================== #
      _ << royalblue(name_of_the_topic_at_hand.ljust(52))
      # =================================================================== #
      # Next, add how many questions exist for this particular topic.
      # The .rjust() value must be at the least 4, because right now the
      # maximum amount of questions allowed for a given topic is '1000'.
      # =================================================================== #
      if n_total_questions.to_i == 1000 # When this topic has 1000 questions, another colour is used.
        _ << "#{lawngreen(n_total_questions.to_s.rjust(4))} questions in total."
      else 
        # ================================================================= #
        # Colourize in lightslategray by default.
        # ================================================================= #
        _ << "#{lightslategray(n_total_questions.to_s.rjust(4))} questions in total."
      end
      _ << sfancy(n_questions_answered.to_s.rjust(4))+' answered yet.'
      # =================================================================== #
      # Next, add the percentage value here.
      # =================================================================== #
      the_percentage = '0.0'
      unless n_total_questions.to_i == 0
        the_percentage = (n_questions_answered * 100 / n_total_questions).round(2).to_s
      end
      _ << ' (That is '+colourize_percentage(
        the_percentage.to_i.to_s.rjust(3)+'%'
      )+')'+N
      @string_to_save_into_file << _
    end
  }
end

#resetObject

#

reset

#


52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 52

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @hash
  # ======================================================================= #
  @hash = {} # This is the main hash - it stores the dataset for every topic at hand.
  # ======================================================================= #
  # === @string_to_save_into_file
  # ======================================================================= #
  @string_to_save_into_file = ''.dup
  # ======================================================================= #
  # === @n_total_questions
  # ======================================================================= #
  @n_total_questions = 0
  # ======================================================================= #
  # === @n_total_answers
  # ======================================================================= #
  @n_total_answers   = 0
  # ======================================================================= #
  # === @output_result
  # ======================================================================= #
  @output_result     = true
end

#return_unicode_lineObject

#

return_unicode_line

#


354
355
356
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 354

def return_unicode_line
  ' '+unicode_blocks_line(:steelblue, 115)+' '
end

#runObject

#

run

#


381
382
383
384
385
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 381

def run
  considering_renaming_kde_konsole_tab
  initialize_main_dataset
  display_dataset
end

#save_dataset_into_file(into = "#{::Studium.log_dir?}exam_statistics") ⇒ Object

#

save_dataset_into_file

#


145
146
147
148
149
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 145

def save_dataset_into_file(
    into = "#{::Studium.log_dir?}exam_statistics"
  )
  write_what_into(@string_to_save_into_file, into)
end

#save_how_many_questions_we_have_registered_so_farObject

#

save_how_many_questions_we_have_registered_so_far

This method saves how many total questions we have already registered so far.

#


364
365
366
367
368
369
370
371
372
373
374
375
376
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 364

def save_how_many_questions_we_have_registered_so_far
  what = @n_total_questions
  into = FILE_N_TOTAL_QUESTIONS
  write_what_into(what, into)
  into = base_dir?+File.basename(FILE_N_TOTAL_QUESTIONS)
  write_what_into(what, into)
  if is_on_roebe?
    into = RUBY_SRC_DIR+'studium/lib/studium/yaml/'+
           File.basename(FILE_N_TOTAL_QUESTIONS)
    e "Also storing in #{sfile(into)} as we are on roebe."
    write_what_into(what, into)
  end
end

#sort_main_hash_by_percentagesObject

#

sort_main_hash_by_percentages

#


168
169
170
171
172
173
174
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 168

def sort_main_hash_by_percentages
  _ = @hash.sort_by {|key, value|
    value[:percentage_of_questions_answered].to_f # Need to work on Floats. 
  }
  new_hash = Hash[_.reverse]
  @hash = new_hash # Now the Hash is sorted.
end

#string_to_save_into_file?Boolean Also known as: text?, dataset?

#

string_to_save_into_file?

#

Returns:

  • (Boolean)


130
131
132
# File 'lib/studium/statistics/report_how_many_exam_questions_were_answered.rb', line 130

def string_to_save_into_file?
  @string_to_save_into_file
end