Sha256: e562280a45da4a34eb80dd291fb7688b3c1db01374382009a3e3eb4e2835d97f
Contents?: true
Size: 1.5 KB
Versions: 11
Compression:
Stored size: 1.5 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Discourse # 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") class NoURIEscapeEncode < Cop MSG = "URI.escape, URI.encode, URI.unescape, URI.decode are deprecated and should not be used." def_node_matcher :using_uri_escape?, <<-MATCHER (send (const nil? :URI) :escape ...) MATCHER def_node_matcher :using_uri_encode?, <<-MATCHER (send (const nil? :URI) :encode ...) MATCHER def_node_matcher :using_uri_unescape?, <<-MATCHER (send (const nil? :URI) :unescape ...) MATCHER def_node_matcher :using_uri_decode?, <<-MATCHER (send (const nil? :URI) :decode ...) MATCHER def on_send(node) if [ using_uri_escape?(node), using_uri_encode?(node), using_uri_unescape?(node), using_uri_decode?(node) ].none? return end add_offense(node, message: MSG) end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems