commit:     89ca3a93218db57eaa570c6b942169403730c746
Author:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 25 08:46:26 2015 +0000
Commit:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
CommitDate: Fri Dec 25 08:46:50 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=89ca3a93

dev-ruby/i18n: add ruby22

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

 .../i18n/files/i18n-0.7.0-frozen-classes.patch     | 31 ++++++++++++
 dev-ruby/i18n/i18n-0.7.0-r1.ebuild                 | 56 ++++++++++++++++++++++
 2 files changed, 87 insertions(+)

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
index 0000000..ff60194
--- /dev/null
+++ b/dev-ruby/i18n/files/i18n-0.7.0-frozen-classes.patch
@@ -0,0 +1,31 @@
+From bbbdedc0c78ec941a84d161d5c610a358310cf99 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <[email protected]>
+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
index 0000000..a25c199
--- /dev/null
+++ b/dev-ruby/i18n/i18n-0.7.0-r1.ebuild
@@ -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
+}

Reply via email to