Class: Roebe::ShowTwentyAliases

Inherits:
Base show all
Defined in:
lib/roebe/classes/show_twenty_aliases.rb

Overview

Roebe::ShowTwentyAliases

Constant Summary collapse

ARRAY_SHOW_THESE_RELEVANT_ALIASES =
#

ARRAY_SHOW_THESE_RELEVANT_ALIASES

Denote in this array how many aliases to display.

#
%w(
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
)
DEFAULT_VALUE_FOR_IGNORE_EXISTING_AUTOGENERATED_YAML_FILE =
#

DEFAULT_VALUE_FOR_IGNORE_EXISTING_AUTOGENERATED_YAML_FILE

#
true

Constants inherited from Base

Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #mv, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow

Methods included from Base::CommandlineArguments

#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments

Constructor Details

#initialize(i = nil, run_already = true) ⇒ ShowTwentyAliases

#

initialize

#


48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 48

def initialize(
    i           = nil,
    run_already = true
  )
  reset
  if block_given?
    yielded = yield
    case yielded
    when :be_quiet
      @be_verbose = false
    when :be_quiet_and_ignore_existing_file
      @be_verbose = false
      @ignore_existing_autogenerated_yaml_file = true
    end
  end
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

Roebe::ShowTwentyAliases[]

#


235
236
237
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 235

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

Instance Method Details

#consider_saving_the_relevant_dataset_into_a_local_fileObject

#

consider_saving_the_relevant_dataset_into_a_local_file

This method will save our dataset into a local file.

#


209
210
211
212
213
214
215
216
217
218
219
220
221
222
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 209

def consider_saving_the_relevant_dataset_into_a_local_file
  if is_on_roebe? and
     @save_the_dataset_into_a_local_file and
     !@store_this_dataset.empty?
    what = YAML.dump(@store_this_dataset)
    into = @file_twenty_aliases
    if @be_verbose
      opne "#{rev}Storing this information in the file #{sfile(into)} as well."
    end 
    unless what.empty?
      write_what_into(what, into)
    end
  end
end

#dataset?Boolean

#

dataset?

#

Returns:

  • (Boolean)


113
114
115
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 113

def dataset?
  @dataset
end

#main_array?Boolean

#

main_array?

#

Returns:

  • (Boolean)


99
100
101
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 99

def main_array?
  ARRAY_SHOW_THESE_RELEVANT_ALIASES
end

#reportObject

#

report (report tag)

#


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
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
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 120

def report
  begin
    require 'studium/toplevel_methods/toplevel_methods.rb'
  rescue LoadError
    e 'The file '\
      'studium/toplevel_methods/return_n_percent_solved_from_this_topic.rb '\
      'is unavailable'
  end
  set_dataset(
    Roebe::ReturnTwentyAliases[]
  )
  main_array = main_array?
  @store_this_dataset = {}
  e
  mini_dataset = nil
  if @file_twenty_aliases and
     File.exist?(@file_twenty_aliases) and
    !File.empty?(@file_twenty_aliases) and
    !@ignore_existing_autogenerated_yaml_file
    if is_on_roebe?
      if @be_verbose
        e "Loading from the already existing "\
          "yaml-file `#{sfile(@file_twenty_aliases)}`."
        e
      end
    end
    mini_dataset = YAML.load_file(@file_twenty_aliases)
    # ===================================================================== #
    # In this case we will not save the dataset since it is old data,
    # not new data.
    # ===================================================================== #
    @save_the_dataset_into_a_local_file = false
  end
  right_arrow = right_arrow?
  # ======================================================================= #
  # Iterate over the 10 keys next:
  # ======================================================================= #
  dataset?.each_pair {|number, exam_topic|
    if main_array.include? number.to_s
      # =================================================================== #
      # Build up the resulting String for display to the user.
      # =================================================================== #
      result = "  #{lightblue(number.to_s.rjust(2))}"\
               " #{slategray(right_arrow)} "\
               "#{slateblue(exam_topic.ljust(@n_ljust_name_of_the_entry))} ".dup
      if @show_n_percent_of_the_exam_questions_that_were_already_solved
        this_topic = exam_topic.to_s.delete('?')
        if mini_dataset
          n_percent = mini_dataset[number][1]
        elsif Studium.is_this_exam_topic_registered?(this_topic)
          n_percent = Studium.return_n_percent_solved_from_this_topic(
            this_topic
          )
        else
          n_percent = nil
        end
        if n_percent
          n_percent = '%.2f' % n_percent.to_f
          # =============================================================== #
          # Modify the result variable as well, in order to display the
          # percentage value of solved questions. 
          # =============================================================== #
          result << "#{darkcyan(n_percent.to_s.rjust(5)+'%')}"
          if @try_to_show_the_number_of_questions_answered
            n_answered  = ::Studium.n_questions_already_solved_in_this_topic(exam_topic)
            n_questions = ::Studium.n_questions_available_in_this_topic(exam_topic)
            properly_padded_string = (
              "#{n_answered.to_s.rjust(4)} / #{n_questions.to_s.rjust(4)}"
            )
            result << steelblue(
              ' ('+properly_padded_string+')'
            )
          end
          unless mini_dataset
            @store_this_dataset[number] = [exam_topic, n_percent.to_f]
          end
        end
      end
      e result if @be_verbose
    end
  }
  e if @be_verbose
end

#resetObject

#

reset (reset tag)

#


69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 69

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @ignore_existing_autogenerated_yaml_file
  # ======================================================================= #
  @ignore_existing_autogenerated_yaml_file =
    DEFAULT_VALUE_FOR_IGNORE_EXISTING_AUTOGENERATED_YAML_FILE
  # ======================================================================= #
  # === @be_verbose
  # ======================================================================= #
  @be_verbose = true
  @show_n_percent_of_the_exam_questions_that_were_already_solved = true
  @n_ljust_name_of_the_entry = 24
  @file_twenty_aliases = nil
  @try_to_show_the_number_of_questions_answered = false
  if is_on_roebe?
    begin
      require 'studium/toplevel_methods/toplevel_methods.rb'
      require 'studium/constants/constants.rb'
      @file_twenty_aliases = ::Studium::FILE_TWENTY_ALIASES_YML
      @try_to_show_the_number_of_questions_answered = true
    rescue LoadError; end
  end
  @save_the_dataset_into_a_local_file = true
end

#runObject

#

run (run tag)

#


227
228
229
230
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 227

def run
  report
  consider_saving_the_relevant_dataset_into_a_local_file
end

#set_dataset(i = Roebe::ReturnTwentyAliases[]) ⇒ Object

#

set_dataset

#


106
107
108
# File 'lib/roebe/classes/show_twenty_aliases.rb', line 106

def set_dataset(i = Roebe::ReturnTwentyAliases[])
  @dataset = i
end