Remove NoDslVersion
cop.
This commit is contained in:
parent
b3f7c6f7a5
commit
46b9dba03c
@ -38,9 +38,6 @@ Cask/Desc:
|
||||
Cask/HomepageUrlTrailingSlash:
|
||||
Description: "Ensure that the homepage url has a slash after the domain name."
|
||||
|
||||
Cask/NoDslVersion:
|
||||
Description: "Do not use the deprecated DSL version syntax in your cask header."
|
||||
|
||||
Cask/StanzaGrouping:
|
||||
Description: "Ensure that cask stanzas are grouped correctly. More info at https://docs.brew.sh/Cask-Cookbook#stanza-order"
|
||||
|
||||
|
@ -13,10 +13,6 @@ module RuboCop
|
||||
|
||||
attr_reader :method_node
|
||||
|
||||
def dsl_version?
|
||||
hash_node
|
||||
end
|
||||
|
||||
def header_str
|
||||
@header_str ||= source_range.source
|
||||
end
|
||||
@ -31,11 +27,7 @@ module RuboCop
|
||||
end
|
||||
|
||||
def cask_token
|
||||
@cask_token ||= if dsl_version?
|
||||
pair_node.val_node.children.first
|
||||
else
|
||||
method_node.first_argument.str_content
|
||||
end
|
||||
@cask_token ||= method_node.first_argument.str_content
|
||||
end
|
||||
|
||||
def hash_node
|
||||
|
@ -1,61 +0,0 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "forwardable"
|
||||
|
||||
module RuboCop
|
||||
module Cop
|
||||
module Cask
|
||||
# Do not use the deprecated DSL version syntax in your cask header.
|
||||
#
|
||||
# @example
|
||||
# # bad
|
||||
# cask :v1 => 'foo' do
|
||||
# ...
|
||||
# end
|
||||
#
|
||||
# # good
|
||||
# cask 'foo' do
|
||||
# ...
|
||||
# end
|
||||
class NoDslVersion < Base
|
||||
extend Forwardable
|
||||
extend AutoCorrector
|
||||
include CaskHelp
|
||||
|
||||
MESSAGE = "Use `%<preferred>s` instead of `%<current>s`."
|
||||
|
||||
def on_cask(cask_block)
|
||||
@cask_header = cask_block.header
|
||||
return unless offense?
|
||||
|
||||
offense
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def_delegator :@cask_header, :source_range, :header_range
|
||||
def_delegators :@cask_header, :header_str, :preferred_header_str
|
||||
|
||||
def cask_header(method_node)
|
||||
RuboCop::Cask::AST::CaskHeader.new(method_node)
|
||||
end
|
||||
|
||||
def offense?
|
||||
@cask_header.dsl_version?
|
||||
end
|
||||
|
||||
def offense
|
||||
add_offense(header_range, message: error_msg) do |corrector|
|
||||
corrector.replace(header_range, preferred_header_str)
|
||||
end
|
||||
end
|
||||
|
||||
sig { returns(String) }
|
||||
def error_msg
|
||||
format(MESSAGE, preferred: preferred_header_str, current: header_str)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -14,7 +14,6 @@ require_relative "cask/mixin/on_homepage_stanza"
|
||||
require_relative "cask/mixin/on_url_stanza"
|
||||
require_relative "cask/desc"
|
||||
require_relative "cask/homepage_url_trailing_slash"
|
||||
require_relative "cask/no_dsl_version"
|
||||
require_relative "cask/no_overrides"
|
||||
require_relative "cask/on_system_conditionals"
|
||||
require_relative "cask/stanza_order"
|
||||
|
@ -1,20 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rubocops/rubocop-cask"
|
||||
|
||||
describe RuboCop::Cop::Cask::NoDslVersion, :config do
|
||||
it "accepts `cask` without a DSL version" do
|
||||
expect_no_offenses "cask 'foo' do; end"
|
||||
end
|
||||
|
||||
it "reports an offense when `cask` has a DSL version" do
|
||||
expect_offense <<~CASK
|
||||
cask :v1 => 'foo' do; end
|
||||
^^^^^^^^^^^^^^^^^ Use `cask 'foo'` instead of `cask :v1 => 'foo'`.
|
||||
CASK
|
||||
|
||||
expect_correction <<~CASK
|
||||
cask 'foo' do; end
|
||||
CASK
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user