class RuboCop::Cop::Lint::UriRegexp


URI::DEFAULT_PARSER.make_regexp(‘example.com’)
# good
URI.regexp(‘example.com’)
# bad
@example
not be used. Instead, use ‘URI::DEFAULT_PARSER.make_regexp`.
This cop identifies places where `URI.regexp` is obsolete and should

def autocorrect(node)

def autocorrect(node)
  lambda do |corrector|
    if (captured_values = uri_regexp_with_argument?(node))
    else
      captured_values = uri_regexp_without_argument?(node)
    end
    double_colon, arg = captured_values
    top_level = double_colon ? '::' : ''
    argument = arg ? "('#{arg}')" : ''
    corrector.replace(
      node.loc.expression,
      "#{top_level}URI::DEFAULT_PARSER.make_regexp#{argument}"
    )
  end
end

def on_send(node)

def on_send(node)
  uri_regexp_with_argument?(node) do |double_colon, arg|
    register_offense(
      node, top_level: double_colon ? '::' : '', arg: "('#{arg}')"
    )
  end
  uri_regexp_without_argument?(node) do |double_colon|
    register_offense(node, top_level: double_colon ? '::' : '')
  end
end

def register_offense(node, top_level: '', arg: '')

def register_offense(node, top_level: '', arg: '')
  format = format(MSG, top_level: top_level, arg: arg)
  add_offense(node, location: :selector, message: format)
end