[前][次][番号順一覧][スレッド一覧]

ruby-changes:74249

From: Jean <ko1@a...>
Date: Wed, 26 Oct 2022 01:40:20 +0900 (JST)
Subject: [ruby-changes:74249] 217fdbf9aa (master): [ruby/erb] url_encode: use CGI.escapeURIComponent

https://git.ruby-lang.org/ruby.git/commit/?id=217fdbf9aa

From 217fdbf9aa6dd850eace9f10c9a74bcec8b510e2 Mon Sep 17 00:00:00 2001
From: Jean Boussier <jean.boussier@g...>
Date: Tue, 25 Oct 2022 18:39:56 +0200
Subject: [ruby/erb] url_encode: use CGI.escapeURIComponent
 (https://github.com/ruby/erb/pull/23)

Ref: https://github.com/ruby/cgi/pull/26

This native implementation is much faster
and available in `cgi 0.3.3`.

https://github.com/ruby/erb/commit/2d90e9b010
---
 lib/erb.gemspec | 4 +++-
 lib/erb.rb      | 4 +---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/erb.gemspec b/lib/erb.gemspec
index 43ffc89c69..e89a358f8a 100644
--- a/lib/erb.gemspec
+++ b/lib/erb.gemspec
@@ -27,5 +27,7 @@ Gem::Specification.new do |spec| https://github.com/ruby/ruby/blob/trunk/lib/erb.gemspec#L27
   spec.executables   = ['erb']
   spec.require_paths = ['lib']
 
-  spec.add_dependency 'cgi'
+  spec.required_ruby_version = ">= 2.7.0"
+
+  spec.add_dependency 'cgi', '>= 0.3.3'
 end
diff --git a/lib/erb.rb b/lib/erb.rb
index 0e42425a60..962eeb6963 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -1019,9 +1019,7 @@ class ERB https://github.com/ruby/ruby/blob/trunk/lib/erb.rb#L1019
     #   Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide
     #
     def url_encode(s)
-      s.to_s.b.gsub(/[^a-zA-Z0-9_\-.~]/n) { |m|
-        sprintf("%%%02X", m.unpack1("C"))
-      }
+      CGI.escapeURIComponent(s.to_s)
     end
     alias u url_encode
     module_function :u
-- 
cgit v1.2.3


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]