From fe7fb5dcb36265b9c635e9c1ff9937784529d631 Mon Sep 17 00:00:00 2001 From: Hans de Graaff Date: Wed, 14 Oct 2015 08:25:23 +0200 Subject: 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(+) create mode 100644 dev-ruby/actionview/actionview-4.2.4-r1.ebuild create mode 100644 dev-ruby/actionview/files/actionview-4.2.4-url-helper.patch (limited to 'dev-ruby/actionview') 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 000000000000..9076bcfafc75 --- /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 000000000000..fb6f28e5b4ed --- /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 +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( ++ %{david@loudthinking.com}, ++ mail_to("david@loudthinking.com".html_safe) ++ ) ++ end ++ + def test_mail_to_with_img + assert_dom_equal %{}, + mail_to('feedback@example.com', ''.html_safe) -- cgit v1.2.3-65-gdbad