Class: RBT::Action::Cookbooks::CheckForInvalidEntriesInThisCookbook
- Inherits:
-
RBT::Action
show all
- Defined in:
- lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb
Overview
RBT::Action::Cookbooks::CheckForInvalidEntriesInThisCookbook
Constant Summary
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::RawCookbook[] ========================================================================= #.
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 42
def initialize(
check_these_entries = ARGV,
run_already = true,
&block
)
reset
set_commandline_arguments(
check_these_entries
)
set_check_these_entries(
check_these_entries
)
if block_given?
yielded = yield
case yielded
when :do_not_run_yet
run_already = false
end
end
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
#
RBT::Action::Cookbooks::RawCookbook[]
#
394
395
396
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 394
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#all_fine ⇒ Object
120
121
122
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 120
def all_fine
mediumslateblue(' All fine. ')
end
|
#array_registered_and_valid_cookbook_entries?(i = file_specification_of_registered_cookbook_entries) ⇒ Boolean
#
array_registered_and_valid_cookbook_entries?
#
262
263
264
265
266
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 262
def array_registered_and_valid_cookbook_entries?(
i = file_specification_of_registered_cookbook_entries
)
YAML.load_file(i)
end
|
#batch_process_the_entries ⇒ Object
#
batch_process_the_entries
#
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 330
def batch_process_the_entries
check_these_entries?.each {|this_cookbook_entry|
if this_cookbook_entry.frozen?
this_cookbook_entry = this_cookbook_entry.dup
end
unless this_cookbook_entry.end_with? '.yml'
this_cookbook_entry << '.yml'
end
unless File.exist? this_cookbook_entry
this_cookbook_entry = cookbooks_dir?+this_cookbook_entry
end
@internal_hash[:work_on_this_file] = this_cookbook_entry
@internal_hash[:dataset] = readlines_with_proper_encoding(this_cookbook_entry).reject {|line|
line.start_with? '#'
}.join(N)
@internal_hash[:first_line] = @internal_hash[:dataset].split(N).first.strip.delete(':')
if @internal_hash[:first_line].include? ' #'
@internal_hash[:first_line] = @internal_hash[:first_line].split(' #').first.strip
end
e "#{rev}Working on the file #{sfile(this_cookbook_entry)} #{rev}next."
e
e return_the_main_counter_then_increment_it+
rev+' Checking whether '+
steelblue('the first entry is the name of the file')+':'
result = check_if_the_first_entry_is_the_name_of_the_file(this_cookbook_entry)
consider_to_exit_now(result)
e all_fine+steelblue(cheering_person)
e return_the_main_counter_then_increment_it+
rev+' Checking whether the yaml file has two url1 entries:'
result = check_whether_this_yaml_file_has_two_url1_entries(dataset?, this_cookbook_entry)
consider_to_exit_now(result)
e " #{mediumslateblue('All fine here. There are no two url1 entries in that file.')} "\
"#{steelblue(cheering_person)}"
e return_the_main_counter_then_increment_it+
rev+' Checking whether all left entries are valid:'
result = check_whether_all_left_entries_are_valid
consider_to_exit_now(result)
e all_fine+steelblue(cheering_person)
e "#{return_the_main_counter_then_increment_it}"\
"#{rev} Checking whether there is more than one "\
"program_name_and_program_version entry:"
result = check_whether_there_is_more_than_one_program_name_and_program_version_entry
consider_to_exit_now(result)
e "#{all_fine}#{steelblue(cheering_person)}"
e
}
end
|
#check_if_the_first_entry_is_the_name_of_the_file(i) ⇒ Object
#
check_if_the_first_entry_is_the_name_of_the_file
#
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 271
def check_if_the_first_entry_is_the_name_of_the_file(i)
i = File.basename(i)
name_of_the_file_without_extension = i.sub(/#{File.extname(i)}$/,'')
if first_line? == name_of_the_file_without_extension
else
opnn { :no_colon}
e
e crimson('The name of the file is not the same as the filename.')
e crimson('This should be corrected.')
e
e slateblue(first_line?)+
lightgreen(' != ')+
royalblue(name_of_the_file_without_extension)
e
return :error
end
end
|
#check_these_entries? ⇒ Boolean
188
189
190
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 188
def check_these_entries?
@internal_hash[:check_these_entries]
end
|
#check_whether_all_left_entries_are_valid ⇒ Object
#
check_whether_all_left_entries_are_valid
This method will check whether the left entries of the file are all valid.
#
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 226
def check_whether_all_left_entries_are_valid
valid_entries = array_registered_and_valid_cookbook_entries?
splitted = dataset?.split(N)
these_entries_were_found = splitted.select {|entry|
entry.start_with?(' ') and
!entry.start_with?(' #') and
!entry.start_with?(' - ') and
!entry.start_with?(' ')
}.map {|line|
line.strip!
if line.include? ':'
line = line.split(':').first
end
line.strip!
line
}
these_entries_were_found.each {|check_this_entry|
if valid_entries.include? check_this_entry
else
opne crimson('Not registered entry called `')+
sfancy(check_this_entry)+
crimson('`.')
end
}
end
|
#check_whether_there_is_more_than_one_program_name_and_program_version_entry(i = dataset?
) ⇒ Object
#
check_whether_there_is_more_than_one_program_name_and_program_version_entry
#
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 196
def check_whether_there_is_more_than_one_program_name_and_program_version_entry(
i = dataset?
)
this_file = @internal_hash[:work_on_this_file]
scanned = i.scan(/ program_name_and_program_version: /)
if scanned.size > 1
opne swarn('There are too many')+
steelblue(' program_name_and_program_version: ')+
swarn('entries in that file.')
opne swarn('Please fix this issue, in the following file:')
e
e sfile(" #{this_file}")
e
return :error
end
end
|
#check_whether_this_yaml_file_has_two_url1_entries(i = dataset?,
, this_file = nil) ⇒ Object
#
check_whether_this_yaml_file_has_two_url1_entries
This method will return a boolean value - true if the .yml file has two url1 entries, and false otherwise.
#
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
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 146
def check_whether_this_yaml_file_has_two_url1_entries(
i = dataset?,
this_file = nil
)
this_file = this_file.first if this_file.is_a? Array
if this_file
unless this_file.include? '/'
this_file = File.absolute_path(this_file)
end
end
case i
when :default,
nil
if File.exist? this_file
i = @internal_hash[:dataset] = read_file_with_default_encoding(this_file)
end
end
begin
n_url1_entries = i.scan(/^ url1: /).size
rescue ArgumentError => error
e "#{rev}Error for: #{sfile(this_file)}"
pp error
end
if n_url1_entries > 1
opne swarn('There are too many')+
steelblue(' url1: ')+
swarn('entries in that file.')
opne swarn('Please fix this issue, in the following file:')
e
e sfile(" #{this_file}")
e
return :error
end
return false
end
|
#consider_to_exit_now(i) ⇒ Object
316
317
318
319
320
321
322
323
324
325
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 316
def consider_to_exit_now(i)
case i
when :error
opne 'Please fix this error before we can continue.'
exit
end
end
|
#dataset? ⇒ Boolean
105
106
107
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 105
def dataset?
@internal_hash[:dataset]
end
|
#first_line? ⇒ Boolean
98
99
100
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 98
def first_line?
@internal_hash[:first_line]
end
|
#main_counter? ⇒ Boolean
127
128
129
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 127
def main_counter?
@internal_hash[:main_counter]
end
|
#reset ⇒ Object
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 70
def reset
super()
infer_the_namespace
@internal_hash[:main_counter] = 1
@internal_hash[:work_on_this_file] = nil
@internal_hash[:dataset] = nil
@internal_hash[:first_line] = nil
end
|
#return_the_main_counter_then_increment_it ⇒ Object
#
return_the_main_counter_then_increment_it
#
134
135
136
137
138
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 134
def return_the_main_counter_then_increment_it
result = " #{rev}(#{royalblue(main_counter?)}#{rev})"
@internal_hash[:main_counter] += 1
return result
end
|
#run ⇒ Object
387
388
389
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 387
def run
batch_process_the_entries
end
|
#sanitize_the_main_entries ⇒ Object
#
sanitize_the_main_entries
#
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 292
def sanitize_the_main_entries
case @internal_hash[:check_these_entries].first when /^-?-?everything$/i
@internal_hash[:check_these_entries] = available_programs?.map {|line| "#{line}.yml" }
end
@internal_hash[:check_these_entries].map! {|entry|
if entry.end_with? '.yml'
unless File.exist? entry
entry = return_location_to_this_programs_yaml_file(entry)
end
end
entry
}
end
|
#set_check_these_entries(i) ⇒ Object
#
set_check_these_entries
#
112
113
114
115
|
# File 'lib/rbt/actions/individual_actions/checks_and_validations/check_for_invalid_entries_in_this_cookbook.rb', line 112
def set_check_these_entries(i)
@internal_hash[:check_these_entries] = [i].flatten.compact
sanitize_the_main_entries
end
|