Module: Extracter
- Defined in:
- lib/extracter/base/base.rb,
lib/extracter/class/extracter.rb,
lib/extracter/version/version.rb,
lib/extracter/constants/constants.rb,
lib/extracter/toplevel_methods/toplevel_methods.rb
Overview
#
require ‘extracter/toplevel_methods/is_this_a_valid_archive.rb’ Extracter.is_this_a_valid_archive?
#
Defined Under Namespace
Constant Summary collapse
- VERSION =
#
VERSION
Which specific version to use for class Extracter.
#
'1.3.6'
- LAST_UPATE =
#
LAST_UPDATE
#
'26.03.2024'
- N =
#
N
#
"\n"
- ARRAY_REGISTERED_ARCHIVES =
#
Extracter::ARRAY_REGISTERED_ARCHIVES
Archives that can be extracted, have to be registered in this Array.
This Array has to be sorted alphabetically.
The libreoffice format .odt is just like .zip.
#
%w( 7z apk apkg bin bz2 deb gem gz img iso jar lz lzma odt mp4 pdf rar rpm squashfs sxz tar taz tbz tgz txz xpi xz zip Z zst )
- TEMP_DIR =
#
If this environment variable is unavailable then use a conservative default value.
#
'/tmp/'
- UNPACK_COMMAND_TO_USE_ON_WINDOWS =
#
UNPACK_COMMAND_TO_USE_ON_WINDOWS
The full commandline when on windows will look like this:
7z x -so C:\home\x\src\htop\htop-3.0.5.tar.xz | 7z x -si -ttar
This was used in the RBT project, in the past, e. g. via code such as:
cmd = '7z x "'.dup cmd << i cmd << '" -so | 7z x -aoa -si -ttar -o"'+program_name_and_program_version?.to_s+'"'
#
'7z x -so '
- SECOND_UNPACK_COMMAND_TO_USE_ON_WINDOWS =
#
SECOND_UNPACK_COMMAND_TO_USE_ON_WINDOWS
#
'7z x -si -ttar'
- COMMAND_TO_EXTRACT_TGZ_FILES =
#
COMMAND_TO_EXTRACT_TGZ_FILES
This is specifically for .tgz files.
#
'tar zxvf'
- COMMAND_TO_EXTRACT_LZ_FILES =
#
COMMAND_TO_EXTRACT_LZ_FILES
#
'tar --lzip -xvf'
- COMMAND_TO_EXTRACT_TAR_XZ_FILES =
#
COMMAND_TO_EXTRACT_TAR_XZ_FILES
#
'tar -xvf'
- COMMAND_TO_EXTRACT_LZMA_FILES =
#
COMMAND_TO_EXTRACT_LZMA_FILES
#
'unlzma'
- COMMAND_TO_EXTRACT_DEB_FILES =
#
COMMAND_TO_EXTRACT_DEB_FILES
#
'ar -x'
- COMMAND_TO_EXTRACT_ZST_ARCHIVES =
#
COMMAND_TO_EXTRACT_ZST_ARCHIVES
#
'tar -I zstd -xvf'
- COMMAND_TO_EXTRACT_TAR_FILES =
#
COMMAND_TO_EXTRACT_TAR_FILES
#
'tar -xvf'
- 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.
#
'gem unpack'
- COMMAND_TO_EXTRACT_BSDTAR_ARCHIVES =
#
COMMAND_TO_EXTRACT_BSDTAR_ARCHIVES
This command is to specifically extract rpm-archives.
#
'bsdtar xfv'
- COMMAND_TO_EXTRACT_TAR_BZ2_FILES =
#
COMMAND_TO_EXTRACT_TAR_BZ2_FILES
#
'tar -xjvf'
- COMMAND_TO_EXTRACT_JAR_ARCHIVES =
#
COMMAND_TO_EXTRACT_JAR_ARCHIVES
#
'jar xvf'
Class Method Summary collapse
-
.are_we_on_windows? ⇒ Boolean
# === Extracter.are_we_on_windows?.
-
.esystem(i) ⇒ Object
# === Extracter.esystem ========================================================================= #.
-
.extract_what_to(what = ARGV, extract_to = :default, run_already = true, &block) ⇒ Object
# === Extracter.extract_what_to.
-
.is_this_a_valid_archive?(i, array_registered_archives = ARRAY_REGISTERED_ARCHIVES) ⇒ Boolean
# === Extracter.is_this_a_valid_archive?.
-
.remove_archive_type(i) ⇒ Object
# === Extracter.remove_archive_type.
-
.return_pwd ⇒ Object
# === Extracter.return_pwd ========================================================================= #.
-
.this_on_windows(i) ⇒ Object
# === Extracter.are_we_on_windows? ========================================================================= #.
Class Method Details
.are_we_on_windows? ⇒ Boolean
#
Extracter.are_we_on_windows?
This method can be used to determine whether we are on windows (as our primary platform) or whether we are not.
#
25 26 27 28 |
# File 'lib/extracter/toplevel_methods/toplevel_methods.rb', line 25 def self.are_we_on_windows? RUBY_PLATFORM.include?('win') or RUBY_PLATFORM.include?('mingw') end |
.esystem(i) ⇒ Object
#
Extracter.esystem
#
44 45 46 47 |
# File 'lib/extracter/toplevel_methods/toplevel_methods.rb', line 44 def self.esystem(i) puts i system(i) end |
.extract_what_to(what = ARGV, extract_to = :default, run_already = true, &block) ⇒ Object
1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 |
# File 'lib/extracter/class/extracter.rb', line 1193 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) ⇒ Boolean
#
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.
#
75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/extracter/toplevel_methods/toplevel_methods.rb', line 75 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) ⇒ Object
#
Extracter.remove_archive_type
This method will remove suffix-types from a given input String.
#
54 55 56 57 58 59 60 61 62 |
# File 'lib/extracter/toplevel_methods/toplevel_methods.rb', line 54 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 |
.return_pwd ⇒ Object
#
Extracter.return_pwd
#
15 16 17 |
# File 'lib/extracter/toplevel_methods/toplevel_methods.rb', line 15 def self.return_pwd "#{Dir.pwd}/".squeeze('/') end |
.this_on_windows(i) ⇒ Object
#
Extracter.are_we_on_windows?
#
33 34 35 36 37 38 39 |
# File 'lib/extracter/toplevel_methods/toplevel_methods.rb', line 33 def self.this_on_windows(i) _ = UNPACK_COMMAND_TO_USE_ON_WINDOWS+' '+ File.absolute_path(i)+ ' | '+ SECOND_UNPACK_COMMAND_TO_USE_ON_WINDOWS esystem _ end |