diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/rubygems/package.rb | 2 | ||||
-rw-r--r-- | test/rubygems/test_gem_package.rb | 5 |
3 files changed, 11 insertions, 2 deletions
@@ -1,3 +1,9 @@ +Mon Dec 10 09:13:08 2012 Eric Hodel <drbrain@segment7.net> + + * lib/rubygems/package.rb: Omit directories when packaging gems like + RubyGems 1.8.x + * test/rubygems/test_gem_package.rb: Test for above. + Sun Dec 9 17:36:59 2012 Shugo Maeda <shugo@ruby-lang.org> * vm_insnhelper.c (vm_call_opt_send): Kernel#send should not use diff --git a/lib/rubygems/package.rb b/lib/rubygems/package.rb index 910f835602..e33dea06e9 100644 --- a/lib/rubygems/package.rb +++ b/lib/rubygems/package.rb @@ -192,6 +192,8 @@ class Gem::Package @spec.files.each do |file| stat = File.stat file + next unless stat.file? + tar.add_file_simple file, stat.mode, stat.size do |dst_io| open file, 'rb' do |src_io| dst_io.write src_io.read 16384 until src_io.eof? diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb index 9a60d97af9..afca143ea3 100644 --- a/test/rubygems/test_gem_package.rb +++ b/test/rubygems/test_gem_package.rb @@ -102,9 +102,10 @@ class TestGemPackage < Gem::Package::TarTestCase def test_add_files spec = Gem::Specification.new - spec.files = 'lib/code.rb' + spec.files = %w[lib/code.rb lib/empty] + + FileUtils.mkdir_p 'lib/empty' - FileUtils.mkdir 'lib' open 'lib/code.rb', 'w' do |io| io.write '# lib/code.rb' end open 'lib/extra.rb', 'w' do |io| io.write '# lib/extra.rb' end |