class Extracter::ExtractIt
Constants
- ARRAY_ARCHIVE_TYPES
#¶ ↑
ExtractIt::ARRAY_ARCHIVE_TYPES¶ ↑
Register the available (and handled) archive types here.
#¶ ↑
- NAMESPACE
#¶ ↑
ExtractIt::NAMESPACE¶ ↑
#¶ ↑
Public Class Methods
[](i = '')
click to toggle source
Public Instance Methods
be_silent()
click to toggle source
be_verbose()
click to toggle source
#¶ ↑
be_verbose
¶ ↑
#¶ ↑
# File lib/extracter/extract_it/extract_it.rb, line 121 def be_verbose @be_silent = false end
Also aliased as: show_commands_used
extract_input()
click to toggle source
#¶ ↑
extract_input
¶ ↑
#¶ ↑
# File lib/extracter/extract_it/extract_it.rb, line 162 def extract_input pp @input if @debug @input.each {|entry| to_this_dir = Dir.pwd to_this_dir << '/' unless to_this_dir.end_with? '/' unless File.exist? entry entry = try_to_glob_on(entry) end # ===================================================================== # # Delegate to class Extracter next. # ===================================================================== # Extracter.extract_what_to( entry, to_this_dir ) {{ be_verbose: @be_silent }} _ = ::Extracter.remove_file_suffix(entry) if File.exist? entry # =================================================================== # # Must also check whether the extracted directory exists. # =================================================================== # name_of_the_extracted_archive = to_this_dir+_ ARRAY_ARCHIVE_TYPES.each {|extension_name| if name_of_the_extracted_archive.include? extension_name quoted = Regexp.quote(extension_name) name_of_the_extracted_archive.sub!(/#{quoted}$/,'') end } if File.exist?(name_of_the_extracted_archive) and # ================================================================= # # The following check ensures that we really have another name # for the extracted directory. # ================================================================= # !(entry == name_of_the_extracted_archive) opn; e "Finished extracting #{sfile(_)} to `#{sdir(to_this_dir)}`." else opn; e "No file called `#{sfile(name_of_the_extracted_archive)}"\ "` appears to exist." end end } end
is_archive?(i)
click to toggle source
notify_the_user_that_no_input_was_given_but_this_file_was_found( this_file )
click to toggle source
#¶ ↑
notify_the_user_that_no_input_was_given_but_this_file_was_found
¶ ↑
#¶ ↑
# File lib/extracter/extract_it/extract_it.rb, line 128 def notify_the_user_that_no_input_was_given_but_this_file_was_found( this_file ) opn; e "No input was given to #{sfancy(NAMESPACE)} but a "\ ".zip file was" opn; e 'found in this directory ('+sdir(Dir.pwd)+'): '+ sfancy(this_file) opn; e 'We will use this zip file.' end
reset()
click to toggle source
#¶ ↑
reset (reset tag)¶ ↑
#¶ ↑
Calls superclass method
Extracter::Base#reset
# File lib/extracter/extract_it/extract_it.rb, line 54 def reset super() # ======================================================================= # # === @debug # ======================================================================= # @debug = false end
run()
click to toggle source
set_input(i = N)
click to toggle source
#¶ ↑
set_input
¶ ↑
We will work on an Array as value to @input, at the end of this method.
#¶ ↑
# File lib/extracter/extract_it/extract_it.rb, line 79 def set_input(i = N) case i # ======================================================================= # # === extract_it --help # ======================================================================= # when /-?-?help$/i # Show some help stuff here. show_help exit end i = [i] if i.is_a? String # Need an Array. if @debug opn; e 'The input given to us is: `'+sfile(i)+'`' end if i.is_a?(Array) and i.empty? # ===================================================================== # # In this case, try to see if the current directory has a .zip # file. We will use this in that case. # ===================================================================== # is_there_a_zip_file = Dir['*.zip'] unless is_there_a_zip_file.empty? use_this_zip_file = is_there_a_zip_file.first notify_the_user_that_no_input_was_given_but_this_file_was_found(use_this_zip_file) i << use_this_zip_file end is_there_at_the_least_one_tar_xz_file = Dir['*.tar.xz'] unless is_there_at_the_least_one_tar_xz_file.empty? i << is_there_at_the_least_one_tar_xz_file.first end end @input = i # Should be an array, always. end
show_help()
click to toggle source
try_to_glob_on(i)
click to toggle source
#¶ ↑
try_to_glob_on
¶ ↑
#¶ ↑
# File lib/extracter/extract_it/extract_it.rb, line 141 def try_to_glob_on(i) result = Dir["#{i}*"] # ======================================================================= # # Next, sort this result to put archives on the beginning of the Array. # ======================================================================= # result = result.partition {|entry| is_archive?(entry) } result.flatten! unless result.empty? # ===================================================================== # # Ok, we grab the first entry next. # ===================================================================== # i = result.first opn; e "No result could be found for the given input, thus "\ "using #{sfancy(i)} instead." end i end