Class: RBT::Action::Statistics::ReturnCompileTimeStatistics

Inherits:
RBT::Action show all
Defined in:
lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb

Overview

RBT::Action::Statistics::ReturnCompileTimeStatistics

Constant Summary

Constants inherited from LeanPrototype

LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from LeanPrototype

#a_or_an?, #abbreviations?, #absolute_path, #action, #add_to_the_commandline_arguments, #all_binaries?, #all_files_from, #all_libraries?, #allowed_cookbook_entries?, #appdir_location_of?, #append_onto_the_internal_hash, #append_what_into, #archive_type_of?, #available_programs?, #be_quiet?, #be_verbose?, #begins_with_a_comment?, #capitalize_first_alphabetical_character, #cd_to_the_log_directory, #cd_to_the_temp_directory, #change_directory, #change_permission, #cheering_person?, #chmod, #chop_off_archive, #clear_commandline_options, #cliner, #coloured_and_padded_e, #coloured_and_padded_esystem, #coloured_esystem, #colourize_directory_for_system_results, #colourize_this_error, #colourize_this_file_path, #colourize_this_warning, #commandline_arguments?, #commandline_arguments_without_hyphens?, #comment, #convert_dd_mm_yyyy_to_its_long_variant, #convert_env_variable, #copy_directory, #copy_files, #cpr, #create_directory, #current_hour?, #dd_mmm_yyy, #debug, #debug?, #directory_expanded_cookbooks?, #disable_colours, #display_md5sum?, #do_not_debug, #does_the_cookbook_include_this_program?, #does_this_expanded_cookbook_file_exist_for_this_program?, #does_this_file_exist?, #does_this_file_exist_and_is_it_a_file?, #e, #eblue, #ecomment, #ecrimson, #edir, #editor?, #efancy, #eimp, #enable_colours, #enable_debug, #ensure_main_encoding_for, #eparse, #esystem, #esystem_gold, #etomato, #ewarn, #exit_program, #expanded_cookbooks_directory_exists?, #extract_this_archive, #extract_to?, #file_compiled_programs?, #file_dirname_retaining_trailing_slash, #file_predefined_installation_instructions?, #file_specification_of_registered_cookbook_entries, #find_cookbook_alias_for, #find_this_yaml_file, #first_argument?, #first_non_hyphen_argument?, #get_all_directories_from, #get_all_files_from, #get_all_programs, #get_date, #get_extended_date, #get_files_and_directories_from, #go_to_base_dir, #home_dir?, #host_system?, #infer_the_namespace, #internal_hash?, #internal_hash_set_commandline_arguments, #is_an_archive?, #is_directory?, #is_file?, #is_github_url?, #is_make_available?, #is_on_gobolinux?, #is_on_windows?, #is_roebe?, #is_superuser?, #is_symlink?, #is_this_a_header?, #is_this_a_library?, #is_this_program_included?, #iso_encoding?, #load_dataset_from_this_expanded_cookbook, #load_yaml, #load_yaml_file_from_the_cookbook_directory_for_this_program, #log_directory?, #main_encoding?, #meson_build_file_exists?, #months?, #move_file, #n_programs_are_available?, #n_programs_available?, #namespace?, #no_directory_exists_at, #no_opn, #no_such_file_exists, #open_in_browser, #open_in_editor, #opncomment, #opne, #opnef, #opnerev, #opnerror, #opnesystem, #opnewarn, #opnfancy, #opnn, #packages_directory?, #path_to_this_expanded_cookbooks_dataset, #pkgconfig_directory?, #populate_the_internal_hash_with_default_values, #predefined_installation_instructions?, #prepend_this_commandline_argument, #program_version_of?, #project_base_directory?, #project_yaml_directory?, #query_path?, #rarrow?, #read_file, #read_file_in_default_encoding, #read_file_with_default_encoding, #readlines, #readlines_with_proper_encoding, #register_sigint, #registered_cookbook_entries?, #remove, #remove_archive_from_the_end, #remove_comments_from_each_line, #remove_directory, #remove_double_slashes, #remove_file, #remove_newlines, #remove_parens, #remove_symlink, #remove_this_commandline_argument, #remove_this_entry_from_the_commandline_arguments, #remove_trailing_ANSII_escape_code, #remove_unnecessary_data_from_url, #rename, #report_pwd, #require_the_rbt_aliases, #reset_the_internal_hash, #return_all_archives_from_this_directory, #return_appdir_prefix, #return_commandline_arguments_with_leading_hyphens, #return_current_hour_minutes_second, #return_date, #return_day_of_the_month_based_on_utc, #return_full_time, #return_hours_minutes_seconds_based_on_utc, #return_location_to_this_programs_yaml_file, #return_month_based_on_this_number, #return_month_based_on_utc, #return_opnn, #return_program_information, #return_program_name_for_gobolinux_systems, #return_pwd, #return_unicode_warning_symbol_or_empty_string, #return_utc, #return_utc_time_in_a_format_similar_to_slackware, #return_weekday_based_on_utc, #return_year_based_on_utc, #rev, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_opn, #set_xorg_buffer, #sfancy, #sfile, #silent_redirection?, #silently_create_this_directory_if_it_does_not_yet_exist, #simp, #source_base_directory?, #ssym, #stderr, #store_into_this_directory?, #string_right_arrow?, #swarn, #symlink, #sysbin_directory?, #sysetc_directory?, #sysinclude_directory?, #syslib_directory?, #sysshare_directory?, #system_directory?, #temp_directory?, #to_bool, #to_camelcase, #to_iso_encoding, #to_unicode, #today?, #touch, #try_to_require_beautiful_url, #try_to_require_the_environment_information_gem, #try_to_require_the_extracter_gem, #try_to_require_the_open_gem, #try_to_require_the_xorg_buffer, #try_to_require_wget, #try_to_return_a_special_compile_component, #unicode_cliner, #unicode_middle_cliner, #use_colours=, #use_colours?, #use_opn=, #use_opn?, #utf_encoding?, #verbose_truth, #word_wrap, #write_what_into, #write_what_into_via_unicode, #yes_or_no

Constructor Details

#initialize(i = ARGV, run_already = true, &block) ⇒ ReturnCompileTimeStatistics

#

initialize

#


32
33
34
35
36
37
38
39
40
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 32

def initialize(
    i           = ARGV,
    run_already = true,
    &block
  )
  reset
  set_commandline_arguments(i)
  run if run_already
end

Class Method Details

.[](i = ARGV) ⇒ Object

#

RBT::Action::Statistics::ReturnCompileTimeStatistics[]

#


193
194
195
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 193

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

Instance Method Details

#body?Boolean

#

body?

#

Returns:

  • (Boolean)


126
127
128
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 126

def body?
  @body
end

#dataset?Boolean

#

dataset?

#

Returns:

  • (Boolean)


70
71
72
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 70

def dataset?
  @dataset
end

#does_the_main_file_exist?Boolean

#

does_the_main_file_exist?

#

Returns:

  • (Boolean)


109
110
111
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 109

def does_the_main_file_exist?
  File.file?(main_file?)
end

#empty?Boolean

#

empty?

#

Returns:

  • (Boolean)


84
85
86
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 84

def empty?
  dataset?.empty?
end

#keys?Boolean Also known as: keys

#

keys?

#

Returns:

  • (Boolean)


77
78
79
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 77

def keys?
  dataset?.keys
end

#main_file?Boolean

#

main_file?

#

Returns:

  • (Boolean)


102
103
104
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 102

def main_file?
  RBT.file_storing_the_time_it_took_to_compile_programs
end

#resetObject

#

reset (reset tag)

#


45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 45

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @dataset
  # ======================================================================= #
  @dataset = nil # Default value.
  # ======================================================================= #
  # === @body
  #
  # @body will contain the body of the compile-time statistics.
  # ======================================================================= #
  reset_the_body_variable
end

#reset_the_body_variableObject

#

reset_the_body_variable

#


63
64
65
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 63

def reset_the_body_variable
  @body = ''.dup
end

#return_the_headerObject

#

return_the_header

#


91
92
93
94
95
96
97
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 91

def return_the_header
  'Program name'.ljust(32)+ # header part1
  'Compile time [sec] '+    # header part2
  'Compile time [min]'+     # header part3
  ' Archive file size'+     # header part4
  ' #'                      # header part5
end

#runObject

#

run (run tag)

#


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
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 133

def run
  try_to_load_up_the_dataset
  if dataset?
    reset_the_body_variable
    # =================================================================== #
    # Need to sort this dataset by duration next. The programs that
    # took the longest to compile, will be on "top" of the Array.
    # =================================================================== #
    sorted_longest_compilation_comes_first = dataset?.sort_by {|name_of_the_program, n_seconds|
      n_seconds
    }.reverse
    index = 0
    sorted_longest_compilation_comes_first.each {|name_of_the_program, n_seconds| index += 1
      left_padded  = ("#{name_of_the_program.strip}:").ljust(26)
      right_padded_showing_n_seconds = (
        '%.2f' % n_seconds.to_s.strip.to_f
      ).rjust(12)
      right_padded_showing_n_seconds << "#{rev} seconds"
      n_minutes = (n_seconds.to_f / 60.0).round(2) # Rounding to 2 is better.
      n_minutes = n_minutes.to_s.ljust(4,'0')
      # =================================================================== #
      # Next count the amount of numbers before the '.' point. If there
      # are at the least two numbers, we will .ljust(5,'0') rather than
      # .ljust(4,'0').
      # =================================================================== #
      if n_minutes.include? '.'
        first_splitted = n_minutes.split('.').first
        if first_splitted.size > 1
          n_minutes = n_minutes.to_s.ljust(5,'0')
        end
      end
      # =================================================================== #
      # The program name may be upcased; since we store only downcased
      # variants for the name of the .yml file at hand, we will also
      # .downcase() on the program name in the following code.
      # =================================================================== #
      archive_size = action(
        :fast_return_file_size_of_this_program,
        name_of_the_program.downcase.delete('-') # Downcase it here.
      )
      colourized_file_size = mediumslateblue(
        "#{archive_size.to_s.rjust(10)} Kb"
      )
      result = '  '+
               sfancy(left_padded)+' '+
               simp(right_padded_showing_n_seconds)+' '+
               orange(
                 ( "(#{n_minutes}" ).rjust(6)+' minutes)'
               )
      result << " #{colourized_file_size}"
      result << mediumseagreen(" ##{index}")
      @body << "#{result}\n"
    }
    @body << "\n"
  end
end

#try_to_load_up_the_datasetObject

#

try_to_load_up_the_dataset

#


116
117
118
119
120
121
# File 'lib/rbt/actions/individual_actions/statistics/return_compile_time_statistics.rb', line 116

def try_to_load_up_the_dataset
  _ = main_file?
  if File.exist? _
    @dataset = YAML.load_file(_)
  end
end