Class: RuboCop::Cop::Cask::HomepageUrlTrailingSlash
- Inherits:
-
RuboCop::Cop
- Object
- RuboCop::Cop
- RuboCop::Cop::Cask::HomepageUrlTrailingSlash
- Includes:
- OnHomepageStanza
- Defined in:
- lib/rubocop/cop/cask/homepage_url_trailing_slash.rb
Overview
This cop checks that a cask’s homepage ends with a slash if it does not have a path component.
Constant Summary collapse
- MSG_NO_SLASH =
"'%s' must have a slash after the domain.".freeze
Instance Method Summary collapse
Methods included from OnHomepageStanza
Methods included from CaskHelp
Instance Method Details
#autocorrect(node) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/rubocop/cop/cask/homepage_url_trailing_slash.rb', line 22 def autocorrect(node) domain = URI(node.str_content).host # This also takes URLs like 'https://example.org?path' # and 'https://example.org#path' into account. corrected_source = node.source.sub("://#{domain}", "://#{domain}/") lambda do |corrector| corrector.replace(node.source_range, corrected_source) end end |
#on_homepage_stanza(stanza) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/rubocop/cop/cask/homepage_url_trailing_slash.rb', line 14 def on_homepage_stanza(stanza) url_node = stanza.stanza_node.method_args.first url = url_node.str_content return if url !~ %r{^.+://[^/]+$} add_offense(url_node, :expression, format(MSG_NO_SLASH, url)) end |