module Extracter

#

Extracter::Base

Usage example:

Extracter::Base.new(ARGV)
#

require ‘extracter/base/base.rb’; < ::Extracter::Base

#
#

require ‘extracter/constants/constants.rb’

#
#

require ‘extracter/toplevel_methods/is_this_a_valid_archive.rb’ Extracter.is_this_a_valid_archive?

#
#

require ‘extracter/toplevel_methods/misc.rb’

#
#

require ‘extracter/version/version.rb’

#

Constants

ARRAY_REGISTERED_ARCHIVES
#

Extracter::ARRAY_REGISTERED_ARCHIVES

Archives that can be extracted, have to be registered in this Array.

Sort alphabetically.

The libreoffice format .odt is just like .zip.

#
COMMAND_TO_EXTRACT_BSDTAR_ARCHIVES
#

COMMAND_TO_EXTRACT_BSDTAR_ARCHIVES

This command is to specifically extract rpm-archives.

#
COMMAND_TO_EXTRACT_DEB_FILES
#

COMMAND_TO_EXTRACT_DEB_FILES

#
COMMAND_TO_EXTRACT_JAR_ARCHIVES
#

COMMAND_TO_EXTRACT_JAR_ARCHIVES

#
COMMAND_TO_EXTRACT_LZMA_FILES
#

COMMAND_TO_EXTRACT_LZMA_FILES

#
COMMAND_TO_EXTRACT_LZ_FILES
#

COMMAND_TO_EXTRACT_LZ_FILES

#
COMMAND_TO_EXTRACT_TAR_BZ2_FILES
#

COMMAND_TO_EXTRACT_TAR_BZ2_FILES

#
COMMAND_TO_EXTRACT_TAR_FILES
#

COMMAND_TO_EXTRACT_TAR_FILES

#
COMMAND_TO_EXTRACT_TAR_XZ_FILES
#

COMMAND_TO_EXTRACT_TAR_XZ_FILES

#
COMMAND_TO_EXTRACT_TGZ_FILES
#

COMMAND_TO_EXTRACT_TGZ_FILES

This is specifically for .tgz files.

#
COMMAND_TO_EXTRACT_ZST_ARCHIVES
#

COMMAND_TO_EXTRACT_ZST_ARCHIVES

#
GEM_UNPACK_COMMAND
#

GEM_UNPACK_COMMAND

The command to use to unpack ruby .gems. We can pass the —target=DIR syntax to extract to a specific location.

#
LAST_UPATE
#

LAST_UPDATE

#
LAST_UPDATED
#

LAST_UPDATED

When this class was last updated/releasted. This is not a hugely important constat, so do not worry too much if this may be heavily outdated eventually.

#
N
#

N

#
SECOND_UNPACK_COMMAND_TO_USE_ON_WINDOWS
#

SECOND_UNPACK_COMMAND_TO_USE_ON_WINDOWS

#
TEMP_DIR
#

If this environment variable is unavailable then use a conservative default value.

#
UNPACK_COMMAND_TO_USE_ON_WINDOWS
#

UNPACK_COMMAND_TO_USE_ON_WINDOWS

The full commandline will look like this:

7z x -so C:\home\x\src\htop\htop-3.0.5.tar.xz | 6z x -si -ttar
#
VERSION
#

VERSION

Which specific version to use for class Extracter.

#

Public Class Methods

are_we_on_windows?() click to toggle source
#

Extracter.are_we_on_windows?

#
# File lib/extracter/toplevel_methods/misc.rb, line 25
def self.are_we_on_windows?
  RUBY_PLATFORM.include?('win') or
  RUBY_PLATFORM.include?('mingw')
end
extract_it(i = ARGV, run_already = true) click to toggle source
#

Extracter.extract_it

#
# File lib/extracter/extract_it/extract_it.rb, line 232
def self.extract_it(i = ARGV, run_already = true)
  ::Extracter::ExtractIt.new(i, run_already)
end
extract_what_to( what = ARGV, extract_to = :default, run_already = true, &block ) click to toggle source
#

Extracter.extract_what_to

Useage example goes like this:

Extracter.extract_what_to('foo-1.0.tar.xz', '/tmp')
Extracter.extract_what_to('/Depot/jjjj/tesseract-5.1.0.tar.xz', Dir.pwd+'/')
#
# File lib/extracter/class/extracter.rb, line 1019
def self.extract_what_to(
    what        = ARGV,
    extract_to  = :default, # ← This can also be a Hash. It denotes where we want to extract to.
    run_already = true, # :do_not_run_yet,
    &block
  )
  _ = ::Extracter::Extracter.new(
        what,
        extract_to,
        run_already,
        &block
      )
  return _ # We must return the class, as other projects may depend on this.
end
is_this_a_valid_archive?( i, array_registered_archives = ARRAY_REGISTERED_ARCHIVES ) click to toggle source
#

Extracter.is_this_a_valid_archive?

Query whether the input given to this method is a valid archive. This allows us to determine whether the Extracter project can deal with the given archive at hand or whether it can not.

The registered formats are stored in the constant ARRAY_REGISTERED_ARCHIVES.

#
# File lib/extracter/toplevel_methods/is_this_a_valid_archive.rb, line 22
def self.is_this_a_valid_archive?(
    i, # The given input, such as "foobar.zip".
    array_registered_archives = ARRAY_REGISTERED_ARCHIVES
  )
  if i.is_a? Array
    i = i.first
  end
  return_value = false
  array_registered_archives.each {|entry|
    return_value = true if i =~ /#{entry}$/i
  }
  return return_value
end
remove_archive_type(i) click to toggle source
#

Extracter.remove_archive_type

#
# File lib/extracter/toplevel_methods/misc.rb, line 12
def self.remove_archive_type(i)
  return i.delete_suffix('.xz').
           delete_suffix('.tgz').
           delete_suffix('.bz2').
           delete_suffix('.gz').
           delete_suffix('.tar').
           delete_suffix('.zip').
           delete_suffix('.gem')
end