Skip to content

Commit 217fdbf

Browse files
byrootmatzbot
authored andcommitted
[ruby/erb] url_encode: use CGI.escapeURIComponent
(ruby/erb#23) Ref: ruby/cgi#26 This native implementation is much faster and available in `cgi 0.3.3`. ruby/erb@2d90e9b010
1 parent b7644a2 commit 217fdbf

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

lib/erb.gemspec

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,7 @@ Gem::Specification.new do |spec|
2727
spec.executables = ['erb']
2828
spec.require_paths = ['lib']
2929

30-
spec.add_dependency 'cgi'
30+
spec.required_ruby_version = ">= 2.7.0"
31+
32+
spec.add_dependency 'cgi', '>= 0.3.3'
3133
end

lib/erb.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,9 +1019,7 @@ def html_escape(s)
10191019
# Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide
10201020
#
10211021
def url_encode(s)
1022-
s.to_s.b.gsub(/[^a-zA-Z0-9_\-.~]/n) { |m|
1023-
sprintf("%%%02X", m.unpack1("C"))
1024-
}
1022+
CGI.escapeURIComponent(s.to_s)
10251023
end
10261024
alias u url_encode
10271025
module_function :u

0 commit comments

Comments
 (0)