Class: RBT::Cookbooks::ToggleKeepExtractedValue
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/cookbooks/toggle_keep_extracted_value.rb
Overview
Constant Summary
collapse
/^ keep_extracted: (.+)$/
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 Base
#cat, #cd_back_to_the_current_working_directory, #consider_reporting_how_many_programs_are_registered, #cookbook_files?, #copy_recursively, #delete_code_of_conduct?, #determine_appdir_prefix_from_this_input, #directory_validation?, #do_not_show_names, #fast_return_file_size_of_this_program, #file_last_symlinked_program?, #file_programs_version_url, #gem_version, #is_a_64bit_system?, #is_ccache_available?, #is_porg_available?, #is_this_binary_registered?, #is_this_program_included?, #make_command?, #make_install_command?, #new_cookbook_instance_for, #program_exists?, #publish_list_of_all_programs_version, #rcp, registered_binaries?, #remove_symlink, #rename_kde_konsole_tab, #repackage, #report_n_programs, #report_working_directory, #return_compile_time_statistics, #return_n_random_characters, #return_version_of_this_program, #run_make_then_make_install, #sanitize_url1_entry, #set_source_directory, #show_overview_over_available_utility_scripts, #symlink_all_files_from_this_directory_to_that_directory, #system_tags?, #upload_list_of_all_programs_version, #use_yaml_database_for_tags?, #warn_and_exit, #wget
#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
#initialize(of_this_program = nil, run_already = true) ⇒ ToggleKeepExtractedValue
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 43
def initialize(
of_this_program = nil,
run_already = true
)
reset
set_modify_this_program(
of_this_program
)
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
252
253
254
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 252
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#backup_the_old_file ⇒ Object
#
backup_the_old_file (backup tag)
#
221
222
223
224
225
226
227
228
229
230
231
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 221
def backup_the_old_file
_ = path?
if File.exist? _
new_target = "#{rbt_log_dir?}CookbookDirectory/#{File.basename(_)}"
base_dir = File.dirname(new_target)
silently_create_this_directory_if_it_does_not_yet_exist(base_dir)
opne "#{rev}Now copying the #{orange('old')} #{rev}file "\
"`#{sfile(_)}#{rev}` to `#{sfile(new_target)}#{rev}`."
copy_file(_, new_target)
end
end
|
#determine_the_path_to_the_yaml_file(i = return_location_to_this_programs_yaml_file(which_program?.delete('_-'))) ⇒ Object
#
determine_the_path_to_the_yaml_file
This method will determine the path to the yaml file. Normally this will be at the individual cookbooks directory, but sometimes the user may want to use another path; thus explains why this method here exists.
#
#do_modify_this_program(this_program = which_program?
) ⇒ Object
#
do_modify_this_program
This is the do-action, the powerhorse method of this class.
It will combine the logic that is required in order to toggle the given value at hand.
#
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
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 133
def do_modify_this_program(
this_program = which_program?
)
location = @use_this_path_to_the_yaml_file
if File.exist? location
dataset = File.read(location)
if dataset =~ /^ keep_extracted: /
use_this_regex = use_which_regex?
dataset =~ use_this_regex
bool_value = $1.to_s.dup
complement_to_the_bool_value = find_the_boolean_complement_to(bool_value)
new_dataset = dataset.sub(
use_this_regex, ' keep_extracted: '+complement_to_the_bool_value
)
store_this_dataset(new_dataset, location)
if is_on_roebe?
_ = DIRECTORY_INDIVIDUAL_COOKBOOKS_AT_ROEBE_HOME.dup
location = _+File.basename(location)
store_this_dataset(new_dataset, location)
end
else
opne "#{rev}No entry for #{sfancy(' keep_extracted: ')} "\
"#{rev}could be found."
end
else
no_file_exists_at(location)
end
end
|
#find_the_boolean_complement_to(i) ⇒ Object
#
find_the_boolean_complement_to
We honour the length - “f” will complement to “t”, and vice versa, and “false” will complement to “true”, and vice versa.
#
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 178
def find_the_boolean_complement_to(i)
case i
when 'f'
't'
when 't'
'f'
when 'false'
'true'
when 'true'
'false'
when 'yes'
'no'
when 'no'
'yes'
else
e "Unhandled cased: #{steelblue(i.to_s)}"
end
end
|
#modify_this_program? ⇒ Boolean
Also known as:
modify_which_program?, which_program?
103
104
105
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 103
def modify_this_program?
@modify_this_program
end
|
#reset ⇒ Object
57
58
59
60
61
62
63
64
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 57
def reset
super()
infer_the_namespace
@use_this_path_to_the_yaml_file = nil
end
|
#run ⇒ Object
236
237
238
239
240
241
242
243
244
245
246
247
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 236
def run
if modify_this_program?
determine_the_path_to_the_yaml_file(@use_this_path_to_the_yaml_file)
opne 'We will next attempt to toggle the '+
orange('keep_extracted:')+' value'
opne "#{rev}for the program #{sfancy(which_program?)}#{rev}."
do_modify_this_program
end
end
|
#set_modify_this_program(i = nil) ⇒ Object
#
set_modify_this_program
#
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 83
def set_modify_this_program(i = nil)
i = i.first if i.is_a? Array
if i.nil?
opne "#{rev}Please provide the #{simp('name of a program')} "\
"#{rev}to this method."
end
i = i.to_s.dup unless i.nil?
@modify_this_program = i
if i and File.exist?(i)
determine_the_path_to_the_yaml_file(@modify_this_program)
end
end
|
#store_this_dataset(what, into = which_program?
) ⇒ Object
#
store_this_dataset
This method can be used to store the dataset into a file.
We will, however had, keep a backup file too.
#
204
205
206
207
208
209
210
211
212
213
214
215
216
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 204
def store_this_dataset(
what,
into = which_program?
)
unless into.end_with? '.yml'
into = into.dup if into.frozen?
into << '.yml'
end
backup_the_old_file
opne "#{steelblue('Storing the new dataset')} #{rev}into "\
"the file `#{sfile(into)}#{rev}`."
write_what_into(what, into)
end
|
#use_this_path_to_the_yaml_file? ⇒ Boolean
Also known as:
path?
#
use_this_path_to_the_yaml_file?
#
69
70
71
|
# File 'lib/rbt/cookbooks/toggle_keep_extracted_value.rb', line 69
def use_this_path_to_the_yaml_file?
@use_this_path_to_the_yaml_file
end
|
#use_which_regex? ⇒ Boolean