[DRE-commits] [gem2deb] 01/01: gem2tgz: replace metadata.yml with ${package}.gemspec

Antonio Terceiro terceiro at moszumanska.debian.org
Fri Mar 4 20:31:05 UTC 2016


This is an automated email from the git hooks/post-receive script.

terceiro pushed a commit to branch master
in repository gem2deb.

commit 3eccea1b9b31eac4de8f77aa799982bfc0b7028a
Author: Antonio Terceiro <terceiro at debian.org>
Date:   Fri Mar 4 17:30:55 2016 -0300

    gem2tgz: replace metadata.yml with ${package}.gemspec
---
 debian/changelog          |  8 ++++++++
 lib/gem2deb/gem2tgz.rb    | 19 ++++++++++++++++++-
 test/unit/gem2tgz_test.rb | 13 ++++++++-----
 3 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index c742b02..ac420d0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+gem2deb (0.29) UNRELEASED; urgency=medium
+
+  * gem2tgz:
+    - Stop generating metadata.yml, and generate a .gemspec if there is no
+      gemspec yet.
+
+ -- Antonio Terceiro <terceiro at debian.org>  Fri, 04 Mar 2016 17:29:16 -0300
+
 gem2deb (0.28) unstable; urgency=medium
 
   * dh_ruby:
diff --git a/lib/gem2deb/gem2tgz.rb b/lib/gem2deb/gem2tgz.rb
index 1d2800f..456315e 100644
--- a/lib/gem2deb/gem2tgz.rb
+++ b/lib/gem2deb/gem2tgz.rb
@@ -85,7 +85,24 @@ module Gem2Deb
         verify_and_strip_checksums if File.exist?('checksums.yaml.gz')
         run 'tar xzfm data.tar.gz'
         FileUtils.rm_f('data.tar.gz')
-        run "zcat metadata.gz > metadata.yml"
+        if Dir['*.gemspec'].empty?
+          run "zcat metadata.gz > metadata.yml"
+          gemspec = YAML.load_file('metadata.yml')
+          gemspec.executables.sort!
+          gemspec.extensions.sort!
+          gemspec.extra_rdoc_files.sort!
+          gemspec.files.sort!
+          gemspec.require_paths.sort!
+          gemspec.test_files.sort!
+          gemspec.dependencies.sort!
+          File.open("#{gemspec.name}.gemspec", 'w') do |f|
+            f.puts "#########################################################"
+            f.puts "# This file has been automatically generated by gem2tgz #"
+            f.puts "#########################################################"
+            f.puts(gemspec.to_ruby)
+          end
+          FileUtils.rm_f('metadata.yml')
+        end
         FileUtils.rm_f('metadata.gz')
       end
     end
diff --git a/test/unit/gem2tgz_test.rb b/test/unit/gem2tgz_test.rb
index 3319e8e..8b36328 100644
--- a/test/unit/gem2tgz_test.rb
+++ b/test/unit/gem2tgz_test.rb
@@ -45,21 +45,24 @@ class Gem2TgzTest < Gem2DebTestCase
     should 'not leave temporary directory after creating tarball' do
       assert_no_file_exists instance.target_dir
     end
-    should 'create metadata.yml' do
+    should 'not leave metadata.yml in the tarball' do
+      assert_not_contained_in_tarball SIMPLE_GEM_TARBALL, 'simplegem-0.0.1/metadata.yml'
+    end
+    should 'create gemspec' do
       unpack(SIMPLE_GEM_TARBALL) do
-        assert_file_exists 'simplegem-0.0.1/metadata.yml'
+        assert_file_exists 'simplegem-0.0.1/simplegem.gemspec'
       end
     end
     should 'not include checksums.yaml.gz' do
       assert_not_contained_in_tarball SIMPLE_GEM_TARBALL, 'simplegem-0.0.1/checksums.yaml.gz'
     end
-    context 'looking inside metadata.yml' do
+    context 'looking inside generated gemspec' do
       setup do
         @gemspec = unpack(SIMPLE_GEM_TARBALL) do
-          YAML.load_file('simplegem-0.0.1/metadata.yml')
+          Gem::Specification.load('simplegem-0.0.1/simplegem.gemspec')
         end
       end
-      should 'be valid gemspec' do
+      should 'be a valid gemspec' do
         assert_kind_of Gem::Specification, @gemspec
       end
       should "be simplegem's spec" do

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/gem2deb.git



More information about the Pkg-ruby-extras-commits mailing list