class RBT::ApplySedOperations
Public Class Methods
[](i = '')
click to toggle source
new( apply_sed_operation_to_these_programs = ARGV, run_already = true )
click to toggle source
#¶ ↑
initialize¶ ↑
The first argument to this method will be the sed-operations that this class will perform. It should be an Array, but if a String is given then it will be converted into an Array anyway.
#¶ ↑
# File lib/rbt/utility_scripts/apply_sed_operations.rb, line 30 def initialize( apply_sed_operation_to_these_programs = ARGV, run_already = true ) reset set_apply_sed_operation_to_these_programs( apply_sed_operation_to_these_programs ) case run_already when :do_not_run_yet run_already = false end run if run_already end
Public Instance Methods
apply_sed_operation_to_these_programs?()
click to toggle source
#¶ ↑
apply_sed_operation_to_these_programs?¶ ↑
#¶ ↑
# File lib/rbt/utility_scripts/apply_sed_operations.rb, line 73 def apply_sed_operation_to_these_programs? @apply_sed_operation_to_these_programs end
Also aliased as: use_which_sed_operations?
notify_the_user_what_will_happen_next()
click to toggle source
obtain_sed_entries_for_this_program(i)
click to toggle source
#¶ ↑
obtain_sed_entries_for_this_program
¶ ↑
This method will obtain the particular sed-entries for the given program at hand.
#¶ ↑
# File lib/rbt/utility_scripts/apply_sed_operations.rb, line 83 def obtain_sed_entries_for_this_program(i) if i.start_with? ':' i = i.dup if i.frozen? i[0,1] = '' end require 'rbt/requires/require_the_cookbook_class.rb' dataset = RBT::Cookbooks::SanitizeCookbook.new(i) { :fast } dataset.sed? end
reset()
click to toggle source
#¶ ↑
reset (reset tag)¶ ↑
#¶ ↑
Calls superclass method
RBT::Base#reset
# File lib/rbt/utility_scripts/apply_sed_operations.rb, line 48 def reset super() infer_the_namespace # ======================================================================= # # === @apply_sed_operation_to_these_programs # ======================================================================= # @apply_sed_operation_to_these_programs = nil end
run()
click to toggle source
run_this_individual_sed_operation(run_this_sed_operation)
click to toggle source
#¶ ↑
run_this_individual_sed_operation
¶ ↑
#¶ ↑
# File lib/rbt/utility_scripts/apply_sed_operations.rb, line 137 def run_this_individual_sed_operation(run_this_sed_operation) # ======================================================================= # # Since as of December 2019, if we are on roebe, we will also # check whether we are working on an existing file. If so then we # will check whether we have done any change. # ======================================================================= # if is_on_roebe? and run_this_sed_operation.include? ' ' possible_filename = run_this_sed_operation.split(' ').last if File.exist? possible_filename possible_dataset_from_that_file_before = File.read(possible_filename) end end e e skyblue(" #{run_this_sed_operation}") e system(run_this_sed_operation) if is_on_roebe? and run_this_sed_operation.include?(' ') and File.exist?(possible_filename) possible_dataset_from_that_file_after = File.read(possible_filename) if (possible_dataset_from_that_file_after == possible_dataset_from_that_file_before) opne 'No change has been made to the assumed filename '+sfile(possible_filename)+'.' else opne 'The file content of '+sfile(possible_filename)+' was modified.' end end end
sanitize_sed_operations()
click to toggle source
#¶ ↑
sanitize_sed_operations
¶ ↑
This method may modify the sed-commands residing in the individual .yml cookbook file.
#¶ ↑
# File lib/rbt/utility_scripts/apply_sed_operations.rb, line 99 def sanitize_sed_operations @apply_sed_operation_to_these_programs.map! {|entry| if entry.is_a? String if entry.start_with? ':' # ← Assume a Symbol in this case. # ================================================================= # # Specific usage example for this entry point: # # applysed :libtheora # # ================================================================= # entry = obtain_sed_entries_for_this_program(entry) else # ================================================================= # # We assume that in this entry point no modifications will have # to be made. # ================================================================= # if entry.start_with? 'sed ' # ================================================================= # # Else it could be a directory, or a String. # ================================================================= # elsif entry.include? '/' # =============================================================== # # Assume a directory in this case. # =============================================================== # entry = File.basename(entry) else entry = obtain_sed_entries_for_this_program(entry) end end end entry } @apply_sed_operation_to_these_programs.flatten! # ← Must invoke this again due to the ^^^ above code. end
set_apply_sed_operation_to_these_programs( i = get_pwd )
click to toggle source
#¶ ↑
set_apply_sed_operation_to_these_programs
¶ ↑
Use the sed operations for these programs.
#¶ ↑
# File lib/rbt/utility_scripts/apply_sed_operations.rb, line 62 def set_apply_sed_operation_to_these_programs( i = get_pwd ) i = [i].flatten.compact # ← Must be an Array. @apply_sed_operation_to_these_programs = i sanitize_sed_operations # Sanitize the input a bit. end