Class: Studium::Statistics::MaxStats

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

Overview

Studium::Statistics::MaxStats.new

Constant Summary collapse

NAMESPACE =
#

NAMESPACE

#
inspect

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

#

initialize

#


37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/studium/statistics/max_stats.rb', line 37

def initialize(
    i           = nil,
    run_already = true
  )
  reset
  set_input(i)
  if block_given?
    yielded = yield
    case yielded
    when :be_quiet
      be_quiet
    end
  end
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

Studium::Statistics::MaxStats[]

#


165
166
167
# File 'lib/studium/statistics/max_stats.rb', line 165

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

Instance Method Details

#input?Boolean

#

input?

#

Returns:

  • (Boolean)


76
77
78
# File 'lib/studium/statistics/max_stats.rb', line 76

def input?
  @input
end

#resetObject

#

reset (reset tag)

#


56
57
58
59
60
61
62
# File 'lib/studium/statistics/max_stats.rb', line 56

def reset
  super()
  # ======================================================================= #
  # === @namespace
  # ======================================================================= #
  @namespace = NAMESPACE
end

#runObject

#

run (run tag)

#


90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/studium/statistics/max_stats.rb', line 90

def run
  if be_verbose?
    opnn; e 'This class will generate a new '+sfile(main_file?)
    opnn; e 'entry which keeps track of the maximum amount of questions '\
            'answered'
    opnn; e 'for any given exam topic at hand.'
  end
  _ = available_topics? # This is an Array.
  # ======================================================================= #
  # Next, build up a Hash. This variant will be stored.
  # ======================================================================= #
  hash = {}
  _.each {|this_topic|
    hash[this_topic] = Studium::Exams.return_n_questions_were_answered_for_this_topic(
      this_topic
    )
  }
  store_this_hash(hash)
end

#set_input(i = '') ⇒ Object

#

set_input

#


67
68
69
70
71
# File 'lib/studium/statistics/max_stats.rb', line 67

def set_input(i = '')
  i = i.first if i.is_a? Array
  i = i.to_s.dup
  @input = i
end

#store_this_hash(hash) ⇒ Object

#

store_this_hash

#


113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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
# File 'lib/studium/statistics/max_stats.rb', line 113

def store_this_hash(hash)
  into = main_file?
  old_dataset = nil
  if File.exist? into
    # ===================================================================== #
    # Load up the old dataset.
    # ===================================================================== #
    old_dataset = YAML.load_file(into)
  end
  if old_dataset
    # ===================================================================== #
    # Merge in the old dataset in this case.
    # ===================================================================== #
    old_dataset.each_pair {|name_of_the_exam_topic, n_answers|
      if hash.has_key? name_of_the_exam_topic
        if n_answers.nil?
          # opnn; e 'Some error happened.'
          # pp name_of_the_exam_topic
          # e "n_answers was: #{n_answers}"
        end
        n_answers = 0 if n_answers.nil?
        if hash[name_of_the_exam_topic].nil?
          e 'nil value for '+sfancy(name_of_the_exam_topic.to_s)+'.'
        end
        if hash.has_key? name_of_the_exam_topic
          if n_answers > hash[name_of_the_exam_topic]
            hash[name_of_the_exam_topic] = n_answers
          end
        else
          e 'No key called '+name_of_the_exam_topic+' could be found.'
        end
      end
    }
  end
  what = YAML.dump(hash)
  if be_verbose?
    opnn; e "Now storing into `#{sfile(into)}`."
  end
  write_what_into(what, into)
  if is_on_roebe?
    into = RUBY_SRC_DIR+'studium/lib/studium/yaml/'+
           File.basename(into)
    if be_verbose?
      opnn; e 'Also storing into `'+sfile(into)+'`.'
    end
    write_what_into(what, into)
  end
end

#store_where?Boolean Also known as: main_file?

#

store_where?

#

Returns:

  • (Boolean)


83
84
85
# File 'lib/studium/statistics/max_stats.rb', line 83

def store_where?
  FILE_MAX_STATS
end