diff --git a/lib/puppet_forge/tar/mini.rb b/lib/puppet_forge/tar/mini.rb index 7045c07..18d995b 100644 --- a/lib/puppet_forge/tar/mini.rb +++ b/lib/puppet_forge/tar/mini.rb @@ -1,5 +1,5 @@ require 'zlib' -require 'archive/tar/minitar' +require 'minitar' module PuppetForge class Tar @@ -15,7 +15,7 @@ def unpack(sourcefile, destdir) file_lists = {} Zlib::GzipReader.open(sourcefile) do |reader| file_lists = validate_files(reader) - Archive::Tar::Minitar.unpack(reader, destdir, file_lists[:valid]) do |action, name, stats| + Minitar.unpack(reader, destdir, file_lists[:valid]) do |action, name, stats| case action when :file_done FileUtils.chmod('u+rw,g+r,a-st', "#{destdir}/#{name}") @@ -33,7 +33,7 @@ def unpack(sourcefile, destdir) def pack(sourcedir, destfile) Zlib::GzipWriter.open(destfile) do |writer| - Archive::Tar::Minitar.pack(sourcedir, writer) + Minitar.pack(sourcedir, writer) end end @@ -50,7 +50,7 @@ def pack(sourcedir, destfile) # @return [Hash{:symbol => Array}] a hash with file-category keys pointing to lists of filenames. def validate_files(tarfile) file_lists = {:valid => [], :invalid => [], :symlinks => []} - Archive::Tar::Minitar.open(tarfile).each do |entry| + Minitar.open(tarfile).each do |entry| flag = entry.typeflag if flag.nil? || flag =~ /[[:digit:]]/ && SYMLINK_FLAGS.include?(flag.to_i) file_lists[:symlinks] << entry.full_name diff --git a/puppet_forge.gemspec b/puppet_forge.gemspec index 12fb176..505c34a 100644 --- a/puppet_forge.gemspec +++ b/puppet_forge.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "faraday", "~> 2.0" spec.add_runtime_dependency "faraday-follow_redirects", "~> 0.3.0" spec.add_dependency "semantic_puppet", "~> 1.0" - spec.add_dependency "minitar", "< 1.0.0 " + spec.add_dependency "minitar", '~> 1.0', '>= 1.0.2' spec.add_development_dependency "rake" spec.add_development_dependency "rspec", "~> 3.0" diff --git a/spec/unit/forge/tar/mini_spec.rb b/spec/unit/forge/tar/mini_spec.rb index bdfb9d0..d3f9e3d 100644 --- a/spec/unit/forge/tar/mini_spec.rb +++ b/spec/unit/forge/tar/mini_spec.rb @@ -57,7 +57,7 @@ def initialize(name, full_name, typeflag) writer = double('GzipWriter') expect(Zlib::GzipWriter).to receive(:open).with(destfile).and_yield(writer) - expect(Archive::Tar::Minitar).to receive(:pack).with(sourcedir, writer) + expect(Minitar).to receive(:pack).with(sourcedir, writer) minitar.pack(sourcedir, destfile) end @@ -66,8 +66,8 @@ def initialize(name, full_name, typeflag) reader = double('GzipReader') expect(Zlib::GzipReader).to receive(:open).with(sourcefile).and_yield(reader) - expect(Archive::Tar::Minitar).to receive(:open).with(reader).and_return(tarfile_contents) - expect(Archive::Tar::Minitar).to receive(:unpack).with(reader, destdir, ['full_file']).and_yield(:file_start, 'thefile', nil) + expect(Minitar).to receive(:open).with(reader).and_return(tarfile_contents) + expect(Minitar).to receive(:unpack).with(reader, destdir, ['full_file']).and_yield(:file_start, 'thefile', nil) file_lists = minitar.unpack(sourcefile, destdir) @@ -81,6 +81,6 @@ def unpacks_the_entry(type, name) expect(Zlib::GzipReader).to receive(:open).with(sourcefile).and_yield(reader) expect(minitar).to receive(:validate_files).with(reader).and_return({:valid => [name]}) - expect(Archive::Tar::Minitar).to receive(:unpack).with(reader, destdir, [name]).and_yield(type, name, nil) + expect(Minitar).to receive(:unpack).with(reader, destdir, [name]).and_yield(type, name, nil) end end