archive-tar-external 1.3.1 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,231 @@
1
+ ###############################################################################
2
+ # archive_tar_external_spec.rb
3
+ #
4
+ # Tests for the archive-tar-external library. This test case should be
5
+ # run via the 'rake spec' Rake task.
6
+ ###############################################################################
7
+ require 'archive/tar/external'
8
+ require 'spec_helper'
9
+
10
+ RSpec.describe Archive::Tar::External do
11
+ let(:tmp_file1) { 'temp1.txt' }
12
+ let(:tmp_file2) { 'temp2.txt' }
13
+ let(:tmp_file3) { 'temp3.txt' }
14
+
15
+ let(:tar_name) { 'test.tar' }
16
+ let(:tar_obj) { Archive::Tar::External.new(tar_name) }
17
+ let(:pattern) { '*.txt' }
18
+ let(:gtar) { File.basename(File.which('gtar')) }
19
+
20
+ let(:archive_name) { 'test.tar.gz' }
21
+ let(:tar_program) { gtar || 'tar' }
22
+
23
+ before do
24
+ tar_obj.tar_program = 'gtar' if File.which('gtar')
25
+ File.open(tmp_file1, 'w'){ |f| f.puts 'This is a temporary text file' }
26
+ File.open(tmp_file2, 'w'){ |f| f.puts 'This is a temporary text file' }
27
+ File.open(tmp_file3, 'w'){ |f| f.puts 'This is a temporary text file' }
28
+ end
29
+
30
+ example "version" do
31
+ expect(Archive::Tar::External::VERSION).to eq('1.4.2')
32
+ expect(Archive::Tar::External::VERSION).to be_frozen
33
+ end
34
+
35
+ context "constructor" do
36
+ example "with name" do
37
+ expect{ Archive::Tar::External.new(tar_name) }.not_to raise_error
38
+ end
39
+
40
+ example "with name and extension" do
41
+ expect{ Archive::Tar::External.new(tar_name, pattern) }.not_to raise_error
42
+ end
43
+
44
+ example "with compression program", :gzip => true do
45
+ expect{ Archive::Tar::External.new(tar_name, pattern, 'gzip') }.not_to raise_error
46
+ end
47
+
48
+ example "raises an error if name is not provided" do
49
+ expect{ Archive::Tar::External.new }.to raise_error(ArgumentError)
50
+ end
51
+ end
52
+
53
+ context "instance methods" do
54
+ example "tar_program getter" do
55
+ expect(tar_obj).to respond_to(:tar_program)
56
+ expect(tar_obj.tar_program).to eq(tar_program)
57
+ end
58
+
59
+ example "archive_name getter" do
60
+ expect(tar_obj).to respond_to(:archive_name)
61
+ expect(tar_obj.archive_name).to eq(tar_name)
62
+ end
63
+
64
+ example "archive_name setter" do
65
+ expect(tar_obj).to respond_to(:archive_name=)
66
+ expect{ tar_obj.archive_name = 'foo' }.not_to raise_error
67
+ expect(tar_obj.archive_name).to eq('foo')
68
+ end
69
+
70
+ example "compressed_archive_name getter" do
71
+ expect(tar_obj).to respond_to(:compressed_archive_name)
72
+ expect(tar_obj.compressed_archive_name).to be_nil
73
+ end
74
+
75
+ example "compressed_archive_name setter basic functionality" do
76
+ expect(tar_obj).to respond_to(:compressed_archive_name=)
77
+ expect{ tar_obj.compressed_archive_name = archive_name }.not_to raise_error
78
+ end
79
+
80
+ example "setting the compressed_archive_name also sets the archive name to the expected value" do
81
+ tar_obj.compressed_archive_name = archive_name
82
+ expect(tar_obj.compressed_archive_name).to eq(archive_name)
83
+ expect(tar_obj.archive_name).to eq(tar_name)
84
+
85
+ tar_obj.compressed_archive_name = 'test.tgz'
86
+ expect(tar_obj.compressed_archive_name).to eq('test.tgz')
87
+ expect(tar_obj.archive_name).to eq(tar_name)
88
+ end
89
+
90
+ example "create_archive basic functionality" do
91
+ expect(tar_obj).to respond_to(:create_archive)
92
+ expect{ tar_obj.create_archive(pattern) }.not_to raise_error
93
+ expect(File.exist?(tar_name)).to be true
94
+ end
95
+
96
+ example "create_archive requires at least on argument" do
97
+ expect{ tar_obj.create_archive }.to raise_error(ArgumentError)
98
+ end
99
+
100
+ example "create_archive raises an error if no files match the pattern" do
101
+ expect{ tar_obj.create_archive('*.blah') }.to raise_error(Archive::Tar::Error)
102
+ end
103
+
104
+ example "create_archive accepts optional parameters" do
105
+ expect{ tar_obj.create_archive(pattern, 'cfj') }.not_to raise_error
106
+ end
107
+
108
+ example "create is an alias for create_archive" do
109
+ expect(tar_obj).to respond_to(:create)
110
+ expect(tar_obj.method(:create)).to eq(tar_obj.method(:create_archive))
111
+ end
112
+ end
113
+
114
+ context "compression" do
115
+ example "compress_archive basic functionality" do
116
+ expect(tar_obj).to respond_to(:compress_archive)
117
+ end
118
+
119
+ example "compress is an alias for compress_archive" do
120
+ expect(tar_obj).to respond_to(:compress)
121
+ expect(tar_obj.method(:compress)).to eq(tar_obj.method(:compress_archive))
122
+ end
123
+
124
+ example "compress_archive defaults to gzip", :gzip => true do
125
+ tar_obj.create_archive(pattern)
126
+ tar_obj.compress_archive
127
+
128
+ expect(tar_obj.compressed_archive_name).to eq(archive_name)
129
+ expect(File.exist?(archive_name)).to be true
130
+ end
131
+
132
+ example "compress_archive works with bzip2", :bzip2 => true do
133
+ expect{ tar_obj.create_archive(pattern) }.not_to raise_error
134
+ expect{ tar_obj.compress_archive('bzip2') }.not_to raise_error
135
+ expect(File.exist?('test.tar.bz2')).to be true
136
+ end
137
+ end
138
+
139
+ context "uncompression" do
140
+ before do
141
+ tar_obj.create_archive(pattern).compress_archive
142
+ end
143
+
144
+ example "uncompress_archive basic functionality" do
145
+ expect(tar_obj).to respond_to(:uncompress_archive)
146
+ end
147
+
148
+ example "uncompress_archive behaves as expected" do
149
+ expect{ tar_obj.uncompress_archive }.not_to raise_error
150
+ expect(File.exist?(archive_name)).to be false
151
+ end
152
+
153
+ example "uncompress is an alias for uncompress_archive" do
154
+ expect(tar_obj).to respond_to(:uncompress)
155
+ expect(tar_obj.method(:uncompress)).to eq (tar_obj.method(:uncompress_archive))
156
+ end
157
+
158
+ example "uncompress_archive singleton method" do
159
+ expect(Archive::Tar::External).to respond_to(:uncompress_archive)
160
+ end
161
+ end
162
+
163
+ context "archive" do
164
+ example "archive_info basic functionality" do
165
+ expect(tar_obj).to respond_to(:archive_info)
166
+ end
167
+
168
+ example "archive_info returns the expected value" do
169
+ tar_obj.create_archive(pattern)
170
+ expect(tar_obj.archive_info).to eq([tmp_file1, tmp_file2, tmp_file3])
171
+ end
172
+
173
+ example "add_to_archive basic functionality" do
174
+ expect(tar_obj).to respond_to(:add_to_archive)
175
+ end
176
+
177
+ example "add_to_archive works as expected" do
178
+ tar_obj = described_class.new(tar_name)
179
+ expect{ tar_obj.add_to_archive(tmp_file2) }.not_to raise_error
180
+ expect{ tar_obj.add_to_archive(tmp_file2, tmp_file3) }.not_to raise_error
181
+ expect(tar_obj.archive_info).to eq([tmp_file2, tmp_file2, tmp_file3])
182
+ end
183
+
184
+ example "update_archive basic functionality" do
185
+ expect(tar_obj).to respond_to(:update_archive)
186
+ end
187
+
188
+ example "update_archive behaves as expected", :gtar => true do
189
+ tar_obj.create_archive(pattern)
190
+ expect(tar_obj.archive_info).to eq([tmp_file1, tmp_file2, tmp_file3])
191
+ tar_obj.update_archive(tmp_file2)
192
+ expect(tar_obj.archive_info).to eq([tmp_file1, tmp_file2, tmp_file3])
193
+ end
194
+
195
+ example "extract_archive_basic" do
196
+ expect(tar_obj).to respond_to(:extract_archive)
197
+ end
198
+
199
+ example "extract_archive raises an error if the file isn't in the archive" do
200
+ tar_obj.create(pattern)
201
+ expect{ tar_obj.expand('blah.txt') }.to raise_error(Archive::Tar::Error)
202
+ end
203
+
204
+ example "extract_archive with no arguments extracts all files" do
205
+ tar_obj.create(pattern)
206
+ expect{ tar_obj.extract_archive }.not_to raise_error
207
+ end
208
+
209
+ example "extract_archive with a valid file argument behaves as expected" do
210
+ tar_obj.create(pattern)
211
+ expect{ tar_obj.extract_archive(tmp_file2) }.not_to raise_error
212
+ end
213
+
214
+ example "expand_archive, expand and extract are aliases for extract_archive" do
215
+ expect(tar_obj.method(:expand_archive)).to eq(tar_obj.method(:extract_archive))
216
+ expect(tar_obj.method(:expand)).to eq(tar_obj.method(:extract_archive))
217
+ expect(tar_obj.method(:extract)).to eq(tar_obj.method(:extract_archive))
218
+ end
219
+ end
220
+
221
+ after do
222
+ File.delete(tmp_file1) if File.exist?(tmp_file1)
223
+ File.delete(tmp_file2) if File.exist?(tmp_file2)
224
+ File.delete(tmp_file3) if File.exist?(tmp_file3)
225
+
226
+ File.delete(tar_name) if File.exist?(tar_name)
227
+ File.delete("#{tar_name}.gz") if File.exist?("#{tar_name}.gz")
228
+ File.delete("#{tar_name}.bz2") if File.exist?("#{tar_name}.bz2")
229
+ File.delete("#{tar_name}.zip") if File.exist?("#{tar_name}.zip")
230
+ end
231
+ end
@@ -0,0 +1,7 @@
1
+ require 'rspec'
2
+ require 'ptools'
3
+
4
+ RSpec.configure do |config|
5
+ config.filter_run_excluding(:gzip) unless File.which('gzip')
6
+ config.filter_run_excluding(:gtar) unless File.which('gtar')
7
+ end
metadata CHANGED
@@ -1,102 +1,136 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: archive-tar-external
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 1
10
- version: 1.3.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.2
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Daniel Berger
14
- autorequire:
8
+ autorequire:
15
9
  bindir: bin
16
- cert_chain: []
17
-
18
- date: 2011-09-21 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: test-unit
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MREwDwYDVQQDDAhkamJl
14
+ cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
15
+ MB4XDTE4MDMxODE1MjIwN1oXDTI4MDMxNTE1MjIwN1owPzERMA8GA1UEAwwIZGpi
16
+ ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
17
+ bTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALgfaroVM6CI06cxr0/h
18
+ A+j+pc8fgpRgBVmHFaFunq28GPC3IvW7Nvc3Y8SnAW7pP1EQIbhlwRIaQzJ93/yj
19
+ u95KpkP7tA9erypnV7dpzBkzNlX14ACaFD/6pHoXoe2ltBxk3CCyyzx70mTqJpph
20
+ 75IB03ni9a8yqn8pmse+s83bFJOAqddSj009sGPcQO+QOWiNxqYv1n5EHcvj2ebO
21
+ 6hN7YTmhx7aSia4qL/quc4DlIaGMWoAhvML7u1fmo53CYxkKskfN8MOecq2vfEmL
22
+ iLu+SsVVEAufMDDFMXMJlvDsviolUSGMSNRTujkyCcJoXKYYxZSNtIiyd9etI0X3
23
+ ctu0uhrFyrMZXCedutvXNjUolD5r9KGBFSWH1R9u2I3n3SAyFF2yzv/7idQHLJJq
24
+ 74BMnx0FIq6fCpu5slAipvxZ3ZkZpEXZFr3cIBtO1gFvQWW7E/Y3ijliWJS1GQFq
25
+ 058qERadHGu1yu1dojmFRo6W2KZvY9al2yIlbkpDrD5MYQIDAQABo3cwdTAJBgNV
26
+ HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUFZsMapgzJimzsbaBG2Tm8j5e
27
+ AzgwHQYDVR0RBBYwFIESZGpiZXJnOTZAZ21haWwuY29tMB0GA1UdEgQWMBSBEmRq
28
+ YmVyZzk2QGdtYWlsLmNvbTANBgkqhkiG9w0BAQsFAAOCAYEAW2tnYixXQtKxgGXq
29
+ /3iSWG2bLwvxS4go3srO+aRXZHrFUMlJ5W0mCxl03aazxxKTsVVpZD8QZxvK91OQ
30
+ h9zr9JBYqCLcCVbr8SkmYCi/laxIZxsNE5YI8cC8vvlLI7AMgSfPSnn/Epq1GjGY
31
+ 6L1iRcEDtanGCIvjqlCXO9+BmsnCfEVehqZkQHeYczA03tpOWb6pon2wzvMKSsKH
32
+ ks0ApVdstSLz1kzzAqem/uHdG9FyXdbTAwH1G4ZPv69sQAFAOCgAqYmdnzedsQtE
33
+ 1LQfaQrx0twO+CZJPcRLEESjq8ScQxWRRkfuh2VeR7cEU7L7KqT10mtUwrvw7APf
34
+ DYoeCY9KyjIBjQXfbj2ke5u1hZj94Fsq9FfbEQg8ygCgwThnmkTrrKEiMSs3alYR
35
+ ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
36
+ WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
37
+ -----END CERTIFICATE-----
38
+ date: 2021-04-30 00:00:00.000000000 Z
39
+ dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: rake
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
26
44
  - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
32
47
  type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: ptools
36
48
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
40
51
  - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rspec
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.9'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.9'
68
+ - !ruby/object:Gem::Dependency
69
+ name: ptools
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.4'
46
75
  type: :development
47
- version_requirements: *id002
48
- description: " The archive-tar-external is a simple wrapper interface for creating\n tar files using your system's tar command. You can also easily compress\n your tar files with your system's compression programs such as zip, gzip,\n or bzip2.\n"
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.4'
82
+ description: |2
83
+ The archive-tar-external is a simple wrapper interface for creating
84
+ tar files using your system's tar command. You can also easily compress
85
+ your tar files with your system's compression programs such as zip, gzip,
86
+ or bzip2.
49
87
  email: djberg96@gmail.com
50
88
  executables: []
51
-
52
89
  extensions: []
53
-
54
- extra_rdoc_files:
55
- - README
56
- - CHANGES
57
- - MANIFEST
58
- - doc/tar_external.txt
59
- files:
90
+ extra_rdoc_files: []
91
+ files:
92
+ - CHANGES.md
93
+ - Gemfile
94
+ - LICENSE
95
+ - MANIFEST.md
96
+ - README.md
97
+ - Rakefile
60
98
  - archive-tar-external.gemspec
61
- - CHANGES
62
- - doc/tar_external.txt
99
+ - certs/djberg96_pub.pem
100
+ - doc/archive_tar_external.md
101
+ - lib/archive-tar-external.rb
63
102
  - lib/archive/tar/external.rb
64
- - MANIFEST
65
- - Rakefile
66
- - README
67
- - test/test_archive_tar_external.rb
68
- homepage: http://www.rubyforge.org/shards
69
- licenses:
70
- - Artistic 2.0
71
- post_install_message:
103
+ - spec/archive_tar_external_spec.rb
104
+ - spec/spec_helper.rb
105
+ homepage: http://github.com/djberg96/archive-tar-external
106
+ licenses:
107
+ - Apache-2.0
108
+ metadata:
109
+ homepage_uri: https://github.com/djberg96/archive-tar-external
110
+ bug_tracker_uri: https://github.com/djberg96/archive-tar-external/issues
111
+ changelog_uri: https://github.com/djberg96/archive-tar-external/blob/main/CHANGES
112
+ documentation_uri: https://github.com/djberg96/archive-tar-external/wiki
113
+ source_code_uri: https://github.com/djberg96/archive-tar-external
114
+ wiki_uri: https://github.com/djberg96/archive-tar-external/wiki
115
+ post_install_message:
72
116
  rdoc_options: []
73
-
74
- require_paths:
117
+ require_paths:
75
118
  - lib
76
- required_ruby_version: !ruby/object:Gem::Requirement
77
- none: false
78
- requirements:
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
79
121
  - - ">="
80
- - !ruby/object:Gem::Version
81
- hash: 3
82
- segments:
83
- - 0
84
- version: "0"
85
- required_rubygems_version: !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ requirements:
88
126
  - - ">="
89
- - !ruby/object:Gem::Version
90
- hash: 3
91
- segments:
92
- - 0
93
- version: "0"
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
94
129
  requirements: []
95
-
96
- rubyforge_project: shards
97
- rubygems_version: 1.8.10
98
- signing_key:
99
- specification_version: 3
130
+ rubygems_version: 3.2.15
131
+ signing_key:
132
+ specification_version: 4
100
133
  summary: A simple way to create tar archives using external calls
101
- test_files:
102
- - test/test_archive_tar_external.rb
134
+ test_files:
135
+ - spec/archive_tar_external_spec.rb
136
+ - spec/spec_helper.rb