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

Already fixed upstream:
e5ba382ccb

Package-Manager: portage-2.2.20.1
This commit is contained in:
Hans de Graaff
2015-09-08 14:14:28 +02:00
parent 63250b1458
commit b022d334a5
2 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
# 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 ~x86"
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
"
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\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|redcarpet\|bcrypt\|uglifier\|minitest\|sprockets\|stackprof\)/ s:^:#:" \
-e '/group :doc/,/^end/ s:^:#:' ../Gemfile || die
rm ../Gemfile.lock || die
}

View File

@@ -0,0 +1,39 @@
commit e5ba382ccbfe08a1a4681e1b6ac851379eb41c7c
Author: Rafael Mendonça França <rafaelmfranca@gmail.com>
Date: Fri Aug 28 01:36:00 2015 -0300
Merge pull request #21402 from k0kubun/ruby20-url-helper
Fix mail_to to work well with Ruby 2.0
diff --git a/actionview/lib/action_view/helpers/url_helper.rb b/actionview/lib/action_view/helpers/url_helper.rb
index b130457..97e299d 100644
--- a/actionview/lib/action_view/helpers/url_helper.rb
+++ b/actionview/lib/action_view/helpers/url_helper.rb
@@ -471,7 +471,7 @@ module ActionView
}.compact
extras = extras.empty? ? '' : '?' + ERB::Util.html_escape(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}".html_safe
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 10195dd..b044ebd 100644
--- a/actionview/test/template/url_helper_test.rb
+++ b/actionview/test/template/url_helper_test.rb
@@ -505,6 +505,13 @@ class UrlHelperTest < ActiveSupport::TestCase
)
end
+ def test_mail_to_with_html_safe_string
+ assert_dom_equal(
+ %{<a href="mailto:david@loudthinking.com">david@loudthinking.com</a>},
+ mail_to("david@loudthinking.com".html_safe)
+ )
+ end
+
def test_mail_to_with_img
assert_dom_equal %{<a href="mailto:feedback@example.com"><img src="/feedback.png" /></a>},
mail_to('feedback@example.com', '<img src="/feedback.png" />'.html_safe)