class RuboCop::Cop::Discourse::NoURIEscapeEncode

Do not use URI.escape and its ilk, they are deprecated with a warning in the ruby source. Instead use Addressable::URI, which has encode, encode_component, and unencode methods. UrlHelper has helper methods for this.

# @example

# bad
URI.encode("https://a%20a.com?a='a%22")

# good
UrlHelper.encode("https://a%20a.com?a='a%22")
Addressable::URI.encode("https://a%20a.com?a='a%22")

Constants

MSG

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/discourse/no_uri_escape_encode.rb, line 37
def on_send(node)
  return if [
    using_uri_escape?(node),
    using_uri_encode?(node),
    using_uri_unescape?(node),
    using_uri_decode?(node)
  ].none?
  add_offense(node, message: MSG)
end