extracter 1.1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of extracter might be problematic. Click here for more details.

@@ -0,0 +1,45 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ class Extracter
6
+
7
+ begin
8
+ require 'opn'
9
+ rescue LoadError; end
10
+
11
+ # ========================================================================= #
12
+ # === custom_opn
13
+ #
14
+ # This is like opn(), except that we also check whether
15
+ # we should show the name or not.
16
+ # ========================================================================= #
17
+ def custom_opn
18
+ opnn unless @do_not_show_name
19
+ end; alias copn custom_opn # === copn
20
+
21
+ # ========================================================================= #
22
+ # === opnn
23
+ # ========================================================================= #
24
+ def opnn
25
+ if @use_opn and Object.const_defined?(:Opn)
26
+ Opn.opn(@use_this_opn_hash)
27
+ end
28
+ end
29
+
30
+ # ========================================================================= #
31
+ # === set_use_opn
32
+ # ========================================================================= #
33
+ def set_use_opn(i = true)
34
+ @use_opn = i
35
+ end
36
+
37
+ # ========================================================================= #
38
+ # === pad_opn_with_n_tokens
39
+ # ========================================================================= #
40
+ def pad_opn_with_n_tokens(n_tokens)
41
+ determine_default_opn_hash # Update this, just in case.
42
+ @use_this_opn_hash.update(padding: n_tokens)
43
+ end; alias set_pad_opn_with_n_tokens pad_opn_with_n_tokens # === set_pad_opn_with_n_tokens
44
+
45
+ end
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ class Extracter
6
+
7
+ # ========================================================================= #
8
+ # === reset (reset tag)
9
+ #
10
+ # Reset our main instance variables here.
11
+ # ========================================================================= #
12
+ def reset
13
+ # ======================================================================= #
14
+ # === @namespace
15
+ #
16
+ # Specify the main namespace to be used. This setting can be modified
17
+ # at "runtime".
18
+ # ======================================================================= #
19
+ @namespace = NAMESPACE
20
+ # ======================================================================= #
21
+ # === @debug
22
+ # ======================================================================= #
23
+ @debug = false
24
+ # ======================================================================= #
25
+ # === Extract to this location
26
+ #
27
+ # Next specify where to extract the archive in question, defaulting to
28
+ # the TEMP_DIR constant.
29
+ # ======================================================================= #
30
+ @extract_to_this_location = TEMP_DIR
31
+ # ======================================================================= #
32
+ # === @did_we_extract_already
33
+ #
34
+ # We will keep track of whether we already extracted or not.
35
+ # ======================================================================= #
36
+ @did_we_extract_already = false
37
+ # ======================================================================= #
38
+ # === @do_not_show_name
39
+ # ======================================================================= #
40
+ @do_not_show_name = false
41
+ # ======================================================================= #
42
+ # === @use_opn
43
+ # ======================================================================= #
44
+ @use_opn = true # ← Whether to use Opn by default or not.
45
+ # ======================================================================= #
46
+ # === @show_only_the_short_name_of_the_archive
47
+ # ======================================================================= #
48
+ @show_only_the_short_name_of_the_archive = SHOW_ONLY_THE_SHORT_NAME_OF_THE_ARCHIVE
49
+ # ======================================================================= #
50
+ # === @skip_extracting
51
+ # ======================================================================= #
52
+ @skip_extracting = false
53
+ # ======================================================================= #
54
+ # === @run_simulation
55
+ # ======================================================================= #
56
+ @run_simulation = false # ← Whether to run in simulation, or for "real".
57
+ set_extract_to_this_location
58
+ do_show_name # We will show the name usually.
59
+ enable_colours
60
+ determine_default_opn_hash
61
+ set_be_verbose(false)
62
+ end
63
+
64
+ end
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'extracter/version/version.rb'
6
+ # =========================================================================== #
7
+ class Extracter
8
+
9
+ # ========================================================================= #
10
+ # === Extracter::VERSION
11
+ #
12
+ # Which specific version to use for class Extracter.
13
+ # ========================================================================= #
14
+ VERSION = '1.1.0'
15
+
16
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ if __FILE__ == $PROGRAM_NAME
6
+ require 'fileutils'
7
+ require 'extracter'
8
+ require 'colours/colours_e_autoinclude.rb'
9
+ extract_to = '/Depot/Temp/'
10
+ e 'Now testing class Extracter - some will fail, do not worry:'
11
+ e
12
+ e Colours.orange('1) Testing Extracter.is_this_a_valid_archive? functionality:')
13
+ e
14
+ e Extracter.is_this_a_valid_archive? 'foo.php'
15
+ # Extracter.new(ARGV)
16
+ FileUtils.cp('/Users/x/SRC/recode/recode-3.7.tar.xz','/Depot/j')
17
+ Extracter.what_to '/Depot/j/recode-3.7.tar.xzg', '/Depot/jj' # This line is deliberately wrong.
18
+ Extracter.what_to '/Depot/j/recode-3.7.tar.xz', '/Depot/jj'
19
+ Extracter.what_to '/Depot/j/recode-3.7.gzip', '/Depot/jj'
20
+ e Colours.orange("2) Next testing "+sfancy("Extracter['/Users/x/SRC/htop/']"))
21
+ Extracter['/Users/x/SRC/htop/']
22
+ e Colours.orange("3) Next testing "+sfancy("Extracter['/Users/x/SRC/libzip/']"))
23
+ Extracter['/Users/x/SRC/libzip/', to: extract_to]
24
+ end # testextracter
metadata ADDED
@@ -0,0 +1,163 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: extracter
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Robert A. Heiler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-06-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colours
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: opn
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: remove_file_suffix
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: |2+
56
+
57
+ This fairly small class/library can be used to extract different archive
58
+ formats such as .tar.bz2 or .tbz - archives such as .gem and .lzma
59
+ will also work.
60
+
61
+ You can also extract audio, by making use of class ExtractAudio. The
62
+ latter is - and should be - optional though.
63
+
64
+ Usage example:
65
+
66
+ require 'extracter'
67
+
68
+ Extracter.new('/foo/bla-1.0.tar.bz2')
69
+
70
+ The second argument that can be passed to the method new()
71
+ specifies where we should extract to, example:
72
+
73
+ Extracter.new('/foo/bla-1.0.tar.bz2', '/opt')
74
+
75
+ This would extract to the /opt directory.
76
+
77
+ You can query whether input is an archive or not via:
78
+
79
+ Extracter.is_archive? 'foo.tar.xz'
80
+
81
+ As of April 2014 we also provide a bin/extract file, so that
82
+ you can simply extract something from the commandline.
83
+
84
+ Since as of November 2018, class Extracter can also "extract"
85
+ .iso files. (The .iso will be mounted to a directory that
86
+ will be created, actually.)
87
+
88
+ If you have a specific suggestion to make this gem more useful
89
+ for others, please drop me an email at:
90
+
91
+ shevegen@gmail.com
92
+
93
+ Thank you.
94
+
95
+ email: shevegen@gmail.com
96
+ executables: []
97
+ extensions: []
98
+ extra_rdoc_files: []
99
+ files:
100
+ - README.md
101
+ - USAGE.md
102
+ - bin/extract
103
+ - doc/README.gen
104
+ - extracter.gemspec
105
+ - lib/extracter.rb
106
+ - lib/extracter/class_methods.rb
107
+ - lib/extracter/colours.rb
108
+ - lib/extracter/constants/constants.rb
109
+ - lib/extracter/do_extract_what_to.rb
110
+ - lib/extracter/extracter.rb
111
+ - lib/extracter/help.rb
112
+ - lib/extracter/initialize.rb
113
+ - lib/extracter/misc.rb
114
+ - lib/extracter/opn.rb
115
+ - lib/extracter/reset.rb
116
+ - lib/extracter/version/version.rb
117
+ - test/testing_class_extracter.rb
118
+ homepage: http://rubygems.org/gems/extracter
119
+ licenses:
120
+ - GPL-2.0
121
+ metadata: {}
122
+ post_install_message: "\n class Extracter can be used to extract archives, such as
123
+ .tar.gz or\n .zip.\n\n If you need some help, you can invoke bin/extract via:\n\n
124
+ \ extract --help\n\n In general, the syntax for extract is kept simple. Just
125
+ pass in the\n archive that has to be extracted as the first argument to \n extract
126
+ ( bin/extract) , and class Extracter will try to extract\n it, if it is a registered
127
+ archive format.\n\n In ruby code, you may be able to use class Extracter in this
128
+ manner:\n\n require 'extracter'\n Extracter[file_path_here]\n\n or\n\n
129
+ \ require 'extracter'\n Extracter.new(file_path_here)\n\n Specific example:\n\n
130
+ \ require 'extracter'\n Extracter.new('htop-2.2.0.tar.xz')\n\n See the
131
+ --help option.\n\n"
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: 2.7.1
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 3.1.4
145
+ requirements: []
146
+ rubygems_version: 3.1.4
147
+ signing_key:
148
+ specification_version: 4
149
+ summary: 'This fairly small class/library can be used to extract different archive
150
+ formats such as .tar.bz2 or .tbz - archives such as .gem and .lzma will also work. You
151
+ can also extract audio, by making use of class ExtractAudio. The latter is - and
152
+ should be - optional though. Usage example: require ''extracter'' Extracter.new(''/foo/bla-1.0.tar.bz2'') The
153
+ second argument that can be passed to the method new() specifies where we should
154
+ extract to, example: Extracter.new(''/foo/bla-1.0.tar.bz2'', ''/opt'') This would
155
+ extract to the /opt directory. You can query whether input is an archive or not
156
+ via: Extracter.is_archive? ''foo.tar.xz'' As of April 2014 we also provide a bin/extract
157
+ file, so that you can simply extract something from the commandline. Since as of
158
+ November 2018, class Extracter can also "extract" .iso files. (The .iso will be
159
+ mounted to a directory that will be created, actually.) If you have a specific
160
+ suggestion to make this gem more useful for others, please drop me an email at: shevegen@gmail.com Thank
161
+ you.'
162
+ test_files: []
163
+ ...