[DRE-commits] [SCM] gem2deb.git branch, master, updated. 0.2.14-8-g334b903

Antonio Terceiro terceiro at debian.org
Tue Jun 5 18:40:41 UTC 2012


The following commit has been merged in the master branch:
commit 448f71ff16745e4d105bee5f84f1e21f3f43da70
Author: Antonio Terceiro <terceiro at debian.org>
Date:   Tue Jun 5 14:53:12 2012 -0300

    Do not crash on non-UTF8 files

diff --git a/lib/gem2deb/dh_ruby.rb b/lib/gem2deb/dh_ruby.rb
index 8e3fcfd..c252d72 100644
--- a/lib/gem2deb/dh_ruby.rb
+++ b/lib/gem2deb/dh_ruby.rb
@@ -198,7 +198,7 @@ module Gem2Deb
       packages.each do |pkg|
         pkg.chomp!
         ruby_source_files_in_package(pkg).each do |f|
-          lines = IO::readlines(f)
+          lines = readlines(f)
           rglines = lines.select { |l| l =~ /require.*rubygems/  && l !~ /^\s*#/ }
           rglines.each do |l|
             if not overrides.include?(f)
@@ -214,6 +214,14 @@ module Gem2Deb
       end
     end
 
+    def readlines(filename)
+      if String.instance_methods.include?(:valid_encoding?)
+        File.readlines(filename).select { |l| l.valid_encoding? }
+      else
+        File.readlines(filename)
+      end
+    end
+
     def ruby_source_files_in_package(pkg)
       Dir["debian/#{pkg}/usr/lib/ruby/vendor_ruby/**/*.rb"]
     end
diff --git a/test/encondings/latin1.rb b/test/encondings/latin1.rb
new file mode 100644
index 0000000..6bdb008
--- /dev/null
+++ b/test/encondings/latin1.rb
@@ -0,0 +1 @@
+# áéíóú
diff --git a/test/encondings/utf8.rb b/test/encondings/utf8.rb
new file mode 100644
index 0000000..2449b96
--- /dev/null
+++ b/test/encondings/utf8.rb
@@ -0,0 +1 @@
+# áéíóú
diff --git a/test/unit/dh_ruby_test.rb b/test/unit/dh_ruby_test.rb
index 5ceb8de..ac0c34b 100644
--- a/test/unit/dh_ruby_test.rb
+++ b/test/unit/dh_ruby_test.rb
@@ -177,6 +177,17 @@ class DhRubyTest < Gem2DebTestCase
       @dh_ruby.expects(:handle_test_failure).never
       @dh_ruby.send(:check_rubygems)
     end
+
+    %w[
+      utf8
+      latin1
+    ].each do |encoding|
+      should "handle #{encoding}" do
+        @dh_ruby.stubs(:ruby_source_files_in_package).returns(["test/encondings/#{encoding}.rb"])
+        @dh_ruby.send(:check_rubygems)
+      end
+    end
+
   end
 
   context 'libraries with name clash (between foo.rb and foo.so)' do

-- 
gem2deb.git



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