Class: RBT::Action::Cookbooks::Highest
- Inherits:
-
RBT::Action
show all
- Defined in:
- lib/rbt/actions/individual_actions/information/highest.rb
Overview
RBT::Action::Cookbooks::Highest
Constant Summary
collapse
- EXIT_ON_MISSING_ENTRY =
#
EXIT_ON_MISSING_ENTRY
#
false
- DISPLAY_N_PROGRAMS_BY_DEFAULT =
#
DISPLAY_N_PROGRAMS_BY_DEFAULT
How many programs to display by default.
#
80
LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION
Class Method Summary
collapse
-
.[](i = ARGV) ⇒ Object
# === RBT::Action::Cookbooks::Highest[] ========================================================================= #.
Instance Method Summary
collapse
#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(display_n = DISPLAY_N_PROGRAMS_BY_DEFAULT, run_already = true) ⇒ Highest
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 53
def initialize(
display_n = DISPLAY_N_PROGRAMS_BY_DEFAULT,
run_already = true
)
reset
startup
set_display_top_n(
display_n
) run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
#
RBT::Action::Cookbooks::Highest[]
#
369
370
371
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 369
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#beautify_file_size(i) ⇒ Object
#
beautify_file_size
This will attempt to beautify the given input.
We require 3 trailing positions after the , position.
#
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 211
def beautify_file_size(i)
i = i.to_s.strip
x = i.to_f
kb = 1024
mb = (1024 ** 2)
gb = (1024 ** 3)
if x < 1024
return "#{round(x.to_f)} bytes"
elsif x > 1024 && x < mb
return "#{round(x.to_f/kb)} kb"
elsif x > mb && x < gb
result = round(x.to_f/mb)
result = '%.3f' % result
return "#{result} MB"
elsif x > gb
return "#{round(x.to_f/gb)} GB"
end
end
|
#display_n? ⇒ Boolean
241
242
243
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 241
def display_n?
@display_top_n
end
|
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 102
def inform_the_user_what_we_will_do
opnn { :no_trailing }
e rev+' Now fetching the top `'+salmon(@display_top_n.to_s)+
rev+'` largest local programs from the directory'
e rev+" `#{sdir(source_directory?)}#{rev}`."
e "#{rev}This may take a while. Please be patient."
end
|
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 332
def (
i = commandline_arguments_with_leading_hyphens?
)
if i.is_a? Array
i.each {|entry| (entry) }
else
case i when /^-?-?use(_|-| )?the(_|-| )?expanded(_|-| )?dataset$/i,
/^-?-?fast$/i
@use_this_dataset = :use_the_expanded_dataset
when /^-?-?use(_|-| )?a(_|-| )?local(_|-| )?check$/i,
/^-?-?calculate(_|-| )?as(_|-| )?is$/i
@use_this_dataset = :use_a_local_check
end
end
end
|
#notify_the_user_that_we_have_finished_fetching_the_local_urls ⇒ Object
#
notify_the_user_that_we_have_finished_fetching_the_local_urls
#
116
117
118
119
120
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 116
def notify_the_user_that_we_have_finished_fetching_the_local_urls
e e "#{rev}Finished fetching the local URLs. We will display them now.#{N}"
e
end
|
#report_results ⇒ Object
Also known as:
report
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 309
def report_results
sort_results
n_rjust = display_n?.to_s.size
@results.each_with_index { |entry, index|
index += 1
index = index.to_s.rjust(n_rjust)
local_url = remove_file_suffix(
File.basename(entry.first).strip
).strip
local_url = '%-36s' % local_url _ = '%.3f' % entry[1].to_s
filesize = '%12s' % beautify_file_size(_)
e rev+' ('+sfancy(index)+rev+') '+
steelblue(local_url)+"#{rev} #{swarn(filesize)}"
}
end
|
#reset ⇒ Object
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 68
def reset
super()
infer_the_namespace
@use_this_dataset = :use_the_expanded_dataset @dataset = nil
end
|
#round(number, n_positions = 3) ⇒ Object
234
235
236
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 234
def round(number, n_positions = 3)
( number * 10 ** n_positions ).floor.to_f / (10 ** n_positions)
end
|
#run ⇒ Object
358
359
360
361
362
363
364
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 358
def run
inform_the_user_what_we_will_do
sanitize_available_programs
notify_the_user_that_we_have_finished_fetching_the_local_urls
report_results end
|
#sanitize_available_programs ⇒ Object
#
sanitize_available_programs
#
255
256
257
258
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
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 255
def sanitize_available_programs
use_the_expanded_dataset = use_the_expanded_dataset?
array = [] _ = @available_programs
_.each {|i|
if use_the_expanded_dataset
this_file = "#{directory_expanded_cookbooks?}#{i}.yml"
if File.exist? this_file
dataset = YAML.load_file(this_file)
url = dataset[:url1]
size = dataset[:archive_size]
else
no_file_exists_at(this_file)
end
else
@dataset = action(:SanitizeCookbook, i) { :be_fast_and_be_quiet }
url = @dataset.program_path? if url.nil?
e rev+'`'+simp(i.to_s)+rev+'` is nil, probably because it does not '\
'exist locally.'
e rev+'Please consider fixing this problem.'
if EXIT_ON_MISSING_ENTRY
e rev+'We will exit now as the constant EXIT_ON_MISSING_ENTRY '\
'was set to true.'
exit
end
end
size = @dataset.size? if (size == 0) and (url and File.file?(url))
size = File.size(url)
end
end
if @debug
e crimson('DEBUG:')+rev+' Filesize of '+slateblue(i.to_s)+
rev+' is '+orange(size)+rev+'.'
end
if url
array << [ url, size ] end
}
@available_programs = array end
|
#set_display_top_n(i = DISPLAY_N_PROGRAMS_BY_DEFAULT) ⇒ Object
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
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 134
def set_display_top_n(
i = DISPLAY_N_PROGRAMS_BY_DEFAULT
)
if i.is_a?(String) and i.empty?
i = :default
end
if i.is_a? Array if i.empty?
i = DISPLAY_N_PROGRAMS_BY_DEFAULT else
i = i.first
end
elsif i.is_a? Symbol
case i when :display_ten_programs
i = 10
when :display_twenty_programs
i = 20
when :display_fifty_programs,
:default
i = 50
end
end
case i when /-?-?help$/i
show_help; exit
end
i = i.to_i unless i.is_a? Integer
if i > available_programs?.size.to_i
i = available_programs?.size.to_i
end
@display_top_n = i
end
|
#show_help ⇒ Object
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 186
def show_help
unless Object.const_defined? :ClassDocuShower
begin
require 'class_docu_shower'
rescue LoadError; end
end
if Object.const_defined? :ClassDocuShower
ClassDocuShower[__FILE__]
end
e 'This class does not have many special commands.'
e
e 'You can pass in a number, which simply means how many'
e 'programs will be displayed, e. g. as in:'
e
e ' highest 250'
e
end
|
#sort_results ⇒ Object
125
126
127
128
129
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 125
def sort_results
@results = @available_programs.sort_by {|name, size|
size.to_i }.reverse[0...@display_top_n]
end
|
#startup ⇒ Object
95
96
97
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 95
def startup
@available_programs = available_programs?
end
|
#use_the_expanded_dataset? ⇒ Boolean
#
use_the_expanded_dataset?
#
248
249
250
|
# File 'lib/rbt/actions/individual_actions/information/highest.rb', line 248
def use_the_expanded_dataset?
@use_this_dataset == :use_the_expanded_dataset
end
|