class RuboCop::Cop::Lint::UriEscapeUnescape
This cop identifies places where `URI.escape` can be replaced by `CGI.escape`, `URI.encode_www_form` or `URI.encode_www_form_component` depending on your specific use case. Also this cop identifies places where `URI.unescape` can be replaced by `CGI.unescape`, `URI.decode_www_form` or `URI.decode_www_form_component` depending on your specific use case.
@example
# bad URI.escape('http://example.com') URI.encode('http://example.com') # good CGI.escape('http://example.com') URI.encode_www_form('http://example.com') URI.encode_www_form_component('http://example.com') # bad URI.unescape(enc_uri) URI.decode(enc_uri) # good CGI.unescape(enc_uri) URI.decode_www_form(enc_uri) URI.decode_www_form_component(enc_uri)
Constants
- ALTERNATE_METHODS_OF_URI_ESCAPE
- ALTERNATE_METHODS_OF_URI_UNESCAPE
- MSG
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/lint/uri_escape_unescape.rb, line 51 def on_send(node) uri_escape_unescape?(node) do |top_level, obsolete_method| replacement_methods = if %i[escape encode].include?(obsolete_method) ALTERNATE_METHODS_OF_URI_ESCAPE else ALTERNATE_METHODS_OF_URI_UNESCAPE end double_colon = top_level ? '::' : '' message = format( MSG, "#{double_colon}URI.#{obsolete_method}", *replacement_methods ) add_offense(node, message: message) end end