module PowerStencil::Utils::DirectoryProcessor
Public Instance Methods
process_directory(source: nil, destination: nil, ignore_files_pattern: DirGlobIgnore::IgnoreFileLists::DEFAULT_FILE_NAME) { |original_file, destination_file(original_file, source, destination)| ... }
click to toggle source
# File lib/power_stencil/utils/directory_processor.rb, line 6 def process_directory(source: nil, destination: nil, ignore_files_pattern: DirGlobIgnore::IgnoreFileLists::DEFAULT_FILE_NAME) raise PowerStencil::Error, 'Source and destination have to be different' if source == destination source = check_source_dir source destination = check_destination_dir destination # Dir.glob_with_ignore_file ignore_file, base_dir, *glob_args, &block file_pattern = "#{source}/**/*" res = {} Dir.glob_with_ignore_file(ignore_files_pattern, source, file_pattern, File::FNM_DOTMATCH).sort.each do |original_file| logger.debug "Processing '#{original_file}'" res[original_file] = destination_file(original_file, source, destination) if block_given? yield original_file, destination_file(original_file, source, destination) end end res end
Private Instance Methods
check_destination_dir(destination)
click to toggle source
# File lib/power_stencil/utils/directory_processor.rb, line 38 def check_destination_dir(destination) raise PowerStencil::Error, 'Please specify a destination directory !' if destination.nil? destination = File.expand_path destination if File.exist? destination raise PowerStencil::Error, "Destination '#{destination}' is not a directory !" unless File.directory? destination end # raise PowerStencil::Error, "Destination '#{destination}' is not a directory !" unless File.directory? destination # raise PowerStencil::Error, "Destination directory '#{destination}' already exists !" if File.exist? destination destination end
check_source_dir(source)
click to toggle source
# File lib/power_stencil/utils/directory_processor.rb, line 31 def check_source_dir(source) raise PowerStencil::Error, 'Please specify a source directory !' if source.nil? source = File.expand_path source raise PowerStencil::Error, "Source directory '#{source}' does not exist !" unless File.exist? source source end
destination_file(original_file, source, destination)
click to toggle source
# File lib/power_stencil/utils/directory_processor.rb, line 27 def destination_file(original_file, source, destination) original_file.gsub /^#{source}/, destination end