dev-ruby/i18n: add ruby22
authorHans de Graaff <graaff@gentoo.org>
Fri, 25 Dec 2015 08:46:26 +0000 (09:46 +0100)
committerHans de Graaff <graaff@gentoo.org>
Fri, 25 Dec 2015 08:46:50 +0000 (09:46 +0100)
Add an unapplied upstream pull request to make sure ruby22
tests work and to avoid similar issues with frozen classes
when using it.

Package-Manager: portage-2.2.24

dev-ruby/i18n/files/i18n-0.7.0-frozen-classes.patch [new file with mode: 0644]
dev-ruby/i18n/i18n-0.7.0-r1.ebuild [new file with mode: 0644]

diff --git a/dev-ruby/i18n/files/i18n-0.7.0-frozen-classes.patch b/dev-ruby/i18n/files/i18n-0.7.0-frozen-classes.patch
new file mode 100644 (file)
index 0000000..ff60194
--- /dev/null
@@ -0,0 +1,31 @@
+From bbbdedc0c78ec941a84d161d5c610a358310cf99 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Tue, 20 Jan 2015 14:34:44 +0100
+Subject: [PATCH] Ignore metadata for frozen classes.
+
+---
+ lib/i18n/backend/metadata.rb | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/lib/i18n/backend/metadata.rb b/lib/i18n/backend/metadata.rb
+index 52c0a29..a8d922a 100644
+--- a/lib/i18n/backend/metadata.rb
++++ b/lib/i18n/backend/metadata.rb
+@@ -21,11 +21,15 @@ class << self
+         def included(base)
+           Object.class_eval do
+             def translation_metadata
+-              @translation_metadata ||= {}
++              unless self.frozen?
++                @translation_metadata ||= {}
++              else
++                {}
++              end
+             end
+ 
+             def translation_metadata=(translation_metadata)
+-              @translation_metadata = translation_metadata
++              @translation_metadata = translation_metadata unless self.frozen?
+             end
+           end unless Object.method_defined?(:translation_metadata)
+         end
diff --git a/dev-ruby/i18n/i18n-0.7.0-r1.ebuild b/dev-ruby/i18n/i18n-0.7.0-r1.ebuild
new file mode 100644 (file)
index 0000000..a25c199
--- /dev/null
@@ -0,0 +1,56 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+USE_RUBY="ruby20 ruby21 ruby22"
+
+RUBY_FAKEGEM_RECIPE_TEST="test"
+RUBY_FAKEGEM_RECIPE_DOC="rdoc"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem versionator
+
+DESCRIPTION="Add Internationalization support to your Ruby application"
+HOMEPAGE="http://rails-i18n.org/"
+SRC_URI="https://github.com/svenfuchs/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(get_version_component_range 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RUBY_PATCHES=( ${P}-frozen-classes.patch )
+
+ruby_add_bdepend "test? (
+       >=dev-ruby/activesupport-3.2 <dev-ruby/activesupport-4.3
+       dev-ruby/bundler
+       dev-ruby/mocha:0.13
+       dev-ruby/test_declarative )"
+
+all_ruby_prepare() {
+       # Remove bundler lock files since we cannot depend on specific
+       # versions in Gentoo.
+       rm gemfiles/*.lock || die
+}
+
+each_ruby_test() {
+       case ${RUBY} in
+               *ruby22)
+                       versions="4.2"
+                       ;;
+               *)
+                       versions="3.2 4.0 4.1 4.2"
+                       ;;
+       esac
+
+       for version in ${versions} ; do
+               if has_version "dev-ruby/activesupport:${version}" ; then
+                       einfo "Running tests with activesupport ${version}"
+                       BUNDLE_GEMFILE="${S}/gemfiles/Gemfile.rails-${version}.x" ${RUBY} -S bundle exec ${RUBY} -S rake test || die
+               fi
+       done
+}