Project

General

Profile

Actions

Bug #16469

closed

Wrong warning message at `URI.encode` and `URI.decode`

Added by sue445 (Go Sueyoshi) over 4 years ago. Updated over 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin17], ruby 2.8.0dev (2020-01-01T06:06:19Z master afd3f64f8c) [x86_64-darwin17]
[ruby-dev:50907]

Description

Sample code

enc_uri = URI.encode("http://example.com/?a=\11\15")
URI.decode(enc_uri)

Actual

irb(main):005:0> enc_uri = URI.encode("http://example.com/?a=\11\15")
(irb):3: warning: URI.escape is obsolete

irb(main):006:0> URI.decode(enc_uri)
(irb):6: warning: URI.unescape is obsolete
=> "http://example.com/?a=\t\r"

Expected

Print warning: URI.encode is obsolete and warning: URI.decode is obsolete . (or no warnings)

Updated by jeremyevans0 (Jeremy Evans) over 4 years ago

We can probably use __callee__ instead of hard coding the method names, that should fix this issue:

diff --git a/lib/uri/common.rb b/lib/uri/common.rb
index b886923c9e..e3ed405857 100644
--- a/lib/uri/common.rb
+++ b/lib/uri/common.rb
@@ -99,7 +99,7 @@ module Escape
     #   # => "@%3F@%21"
     #
     def escape(*arg)
-      warn "URI.escape is obsolete", uplevel: 1
+      warn "URI.#{__callee__} is obsolete", uplevel: 1
       DEFAULT_PARSER.escape(*arg)
     end
     alias encode escape
@@ -130,7 +130,7 @@ def escape(*arg)
     #   # => "http://example.com/?a=\t\r"
     #
     def unescape(*arg)
-      warn "URI.unescape is obsolete", uplevel: 1
+      warn "URI.#{__callee__} is obsolete", uplevel: 1
       DEFAULT_PARSER.unescape(*arg)
     end
     alias decode unescape
Actions #2

Updated by jeremyevans (Jeremy Evans) over 4 years ago

  • Status changed from Open to Closed

Applied in changeset git|d3b28ebc7ac527724831a9fb9ec2f963235f9a21.


Fix warnings for URI.encode and URI.decode

Use callee to display the called method.

Fixes [Bug #16469]

Actions

Also available in: Atom PDF

Like0
Like0Like0