commit:     fe7fb5dcb36265b9c635e9c1ff9937784529d631
Author:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 14 06:25:23 2015 +0000
Commit:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
CommitDate: Wed Oct 14 06:25:23 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe7fb5dc

dev-ruby/actionview: fix bug with url_helper and ruby 2.0

Also backport the fix for actionview 4.2.x.

Package-Manager: portage-2.2.20.1

 dev-ruby/actionview/actionview-4.2.4-r1.ebuild     | 52 ++++++++++++++++++++++
 .../files/actionview-4.2.4-url-helper.patch        | 43 ++++++++++++++++++
 2 files changed, 95 insertions(+)

diff --git a/dev-ruby/actionview/actionview-4.2.4-r1.ebuild 
b/dev-ruby/actionview/actionview-4.2.4-r1.ebuild
new file mode 100644
index 0000000..9076bcf
--- /dev/null
+++ b/dev-ruby/actionview/actionview-4.2.4-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+USE_RUBY="ruby19 ruby20 ruby21"
+
+RUBY_FAKEGEM_TASK_DOC=""
+RUBY_FAKEGEM_DOCDIR="doc"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem versionator
+
+DESCRIPTION="Simple, battle-tested conventions and helpers for building web 
pages"
+HOMEPAGE="https://github.com/rails/rails/";
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> 
rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(get_version_component_range 1-2)"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+IUSE=""
+
+RUBY_S="rails-${PV}/${PN}"
+
+RUBY_PATCHES=( ${P}-url-helper.patch )
+
+ruby_add_rdepend "
+       ~dev-ruby/activesupport-${PV}
+       >=dev-ruby/builder-3.1:* =dev-ruby/builder-3*:*
+       >=dev-ruby/erubis-2.7.0
+       >=dev-ruby/rails-html-sanitizer-1.0.1:1
+       >=dev-ruby/rails-dom-testing-1.0.5:1
+"
+
+ruby_add_bdepend "
+       test? (
+               dev-ruby/mocha:0.14
+               ~dev-ruby/actionpack-${PV}
+               ~dev-ruby/activemodel-${PV}
+       )"
+
+all_ruby_prepare() {
+       # Remove items from the common Gemfile that we don't need for this
+       # test run. This also requires handling some gemspecs.
+       sed -i -e 
"/\(system_timer\|sdoc\|w3c_validators\|pg\|jquery-rails\|'mysql'\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|redcarpet\|bcrypt\|uglifier\|minitest\|sprockets\|stackprof\)/
 s:^:#:" \
+               -e '/:job/,/end/ s:^:#:' \
+               -e '/group :doc/,/^end/ s:^:#:' ../Gemfile || die
+       rm ../Gemfile.lock || die
+}

diff --git a/dev-ruby/actionview/files/actionview-4.2.4-url-helper.patch 
b/dev-ruby/actionview/files/actionview-4.2.4-url-helper.patch
new file mode 100644
index 0000000..fb6f28e
--- /dev/null
+++ b/dev-ruby/actionview/files/actionview-4.2.4-url-helper.patch
@@ -0,0 +1,43 @@
+From 253ba56f5639ffb5ebe98d01c3515604c756a96a Mon Sep 17 00:00:00 2001
+From: Takashi Kokubun <takashik...@gmail.com>
+Date: Thu, 27 Aug 2015 21:40:11 +0900
+Subject: [PATCH] Fix mail_to to work well with Ruby 2.0
+
+Ruby 2.0's ERB::Util.url_encode crashes ActiveSupport::SafeBuffer.
+Related to 0789e06
+---
+ actionview/lib/action_view/helpers/url_helper.rb | 2 +-
+ actionview/test/template/url_helper_test.rb      | 7 +++++++
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/actionview/lib/action_view/helpers/url_helper.rb 
b/actionview/lib/action_view/helpers/url_helper.rb
+index b724b9c..7485fc0 100644
+--- a/actionview/lib/action_view/helpers/url_helper.rb
++++ b/actionview/lib/action_view/helpers/url_helper.rb
+@@ -463,7 +463,7 @@ def mail_to(email_address, name = nil, html_options = {}, 
&block)
+         }.compact
+         extras = extras.empty? ? '' : '?' + extras.join('&')
+ 
+-        encoded_email_address = 
ERB::Util.url_encode(email_address).gsub("%40", "@")
++        encoded_email_address = 
ERB::Util.url_encode(email_address.to_str).gsub("%40", "@")
+         html_options["href"] = "mailto:#{encoded_email_address}#{extras}";
+ 
+         content_tag(:a, name || email_address, html_options, &block)
+diff --git a/actionview/test/template/url_helper_test.rb 
b/actionview/test/template/url_helper_test.rb
+index 6ca937a..9e09490 100644
+--- a/actionview/test/template/url_helper_test.rb
++++ b/actionview/test/template/url_helper_test.rb
+@@ -515,6 +515,13 @@ def test_mail_with_options
+     )
+   end
+ 
++  def test_mail_to_with_html_safe_string
++    assert_dom_equal(
++      %{<a href="mailto:da...@loudthinking.com";>da...@loudthinking.com</a>},
++      mail_to("da...@loudthinking.com".html_safe)
++    )
++  end
++
+   def test_mail_to_with_img
+     assert_dom_equal %{<a href="mailto:feedb...@example.com";><img 
src="/feedback.png" /></a>},
+       mail_to('feedb...@example.com', '<img src="/feedback.png" />'.html_safe)

Reply via email to