Class: RBT::Action::AggregateInformationFromTheExpandedCookbooks
- Inherits:
-
RBT::Action
show all
- Defined in:
- lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb
Overview
Constant Summary
collapse
- STORE_THE_NEW_YAML_FILE_HERE =
#
STORE_THE_NEW_YAML_FILE_HERE
Since as of August 2022 we use a dedicated, separate directory for storing the .yml file. Before tha twe stored into the expanded cookbook directory directly, and this caused subsequent scripts to struggle as old assumptions such as “one .yml file per expanded cookbook dataset” in the given directory was no longer correct.
#
"#{RBT.log_directory?}"\
"expanded_cookbook_dataset_from_all_programs/expanded_cookbook_dataset_from_all_programs.yml"
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
#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_arguments, #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_meson_installed?, #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_directory_was_found_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_the_first_commandline_argument, #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
51
52
53
54
55
56
57
58
59
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 51
def initialize(
i = ARGV,
run_already = true,
&block
)
reset
set_commandline_arguments(i)
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
161
162
163
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 161
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#hash? ⇒ Boolean
78
79
80
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 78
def hash?
@hash
end
|
#is_the_main_hash_empty? ⇒ Boolean
#
is_the_main_hash_empty?
#
118
119
120
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 118
def is_the_main_hash_empty?
@hash.empty?
end
|
#load_up_the_existing_dataset(from_here = STORE_THE_NEW_YAML_FILE_HERE) ⇒ Object
#
load_up_the_existing_dataset
This method can be used to load the existing dataset from a .yml file that has been generated before.
#
109
110
111
112
113
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 109
def load_up_the_existing_dataset(
from_here = STORE_THE_NEW_YAML_FILE_HERE
)
@hash = YAML.load_file(from_here)
end
|
#reset ⇒ Object
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 64
def reset
super()
infer_the_namespace
@hash = {}
end
|
#run ⇒ Object
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 143
def run
_ = directory_expanded_cookbooks?
if File.directory? _
work_through_the_cookbook_dataset_found_in_this_directory(_)
if is_the_main_hash_empty?
opne "Unfortunately no entries could be found."
opne "#{rev}Is the directory at #{sdir(_)} #{rev}empty?"
else
store_the_big_hash_into_a_new_yaml_file
end
else
opnn; no_file_exists_at(_)
end
end
|
#store_the_big_hash_into_a_new_yaml_file ⇒ Object
#
store_the_big_hash_into_a_new_yaml_file
#
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 125
def store_the_big_hash_into_a_new_yaml_file
e "#{rev}Next storing this big hash ("+
"#{@hash.keys.size.to_s}#{rev}) in a new .yml file."
what = YAML.dump(@hash)
into = STORE_THE_NEW_YAML_FILE_HERE
unless File.dirname(into)
mkdir(into) { :be_quiet }
end
e 'The specific file will stored here:'
e
e sfile(" #{into}")
e
write_what_into(what, into)
end
|
#work_through_the_cookbook_dataset_found_in_this_directory(i) ⇒ Object
#
work_through_the_cookbook_dataset_found_in_this_directory
#
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/rbt/actions/individual_actions/information/aggregate_information_from_the_expanded_cookbooks.rb', line 85
def work_through_the_cookbook_dataset_found_in_this_directory(i)
opnn { :no_trailing }
e
e
e "#{rev}Obtaining all entries from"
e "#{rev} #{sdir(i)}"
e "#{rev}next - this may take a while."
all_entries = Dir["#{i}*.yml"]
all_entries.each {|this_yaml_file|
name_of_the_program = File.basename(this_yaml_file).
sub(/#{File.extname(this_yaml_file)}$/,'')
dataset = YAML.load_file(this_yaml_file)
new_hash = {}
new_hash[name_of_the_program] = dataset
@hash.update(new_hash)
}
end
|