Merge remote-tracking branch 'origin/master' into license-forbidden
This commit is contained in:
commit
55878cab99
50
.github/workflows/doctor.yml
vendored
Normal file
50
.github/workflows/doctor.yml
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
name: brew doctor
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- .github/workflows/doctor.yml
|
||||||
|
- Library/Homebrew/cmd/doctor.rb
|
||||||
|
- Library/Homebrew/diagnostic.rb
|
||||||
|
- Library/Homebrew/extend/os/diagnostic.rb
|
||||||
|
- Library/Homebrew/extend/os/mac/diagnostic.rb
|
||||||
|
- Library/Homebrew/os/mac/xcode.rb
|
||||||
|
jobs:
|
||||||
|
tests:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
version: [10.15, 10.14, 10.13]
|
||||||
|
fail-fast: false
|
||||||
|
runs-on: ${{ matrix.version }}
|
||||||
|
env:
|
||||||
|
PATH: '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin'
|
||||||
|
HOMEBREW_DEVELOPER: 1
|
||||||
|
HOMEBREW_NO_ANALYTICS: 1
|
||||||
|
HOMEBREW_NO_AUTO_UPDATE: 1
|
||||||
|
steps:
|
||||||
|
- name: Update Homebrew
|
||||||
|
run: brew update-reset
|
||||||
|
|
||||||
|
- name: Set up Git repository
|
||||||
|
run: |
|
||||||
|
cd $(brew --repo)
|
||||||
|
git clean -ffdx
|
||||||
|
git fetch --prune --force origin master
|
||||||
|
git fetch --prune --force origin ${{github.sha}}
|
||||||
|
git checkout --force ${{github.sha}}
|
||||||
|
git log -1
|
||||||
|
|
||||||
|
- name: Run brew test-bot --only-cleanup-before
|
||||||
|
run: brew test-bot --only-cleanup-before
|
||||||
|
|
||||||
|
- name: Run brew test-bot --only-setup
|
||||||
|
run: brew test-bot --only-setup
|
||||||
|
|
||||||
|
- name: Run brew test-bot --only-cleanup-after
|
||||||
|
if: always()
|
||||||
|
run: brew test-bot --only-cleanup-after
|
||||||
|
|
||||||
|
- name: Cleanup
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
find .
|
||||||
|
rm -rf *
|
||||||
6
.github/workflows/tests.yml
vendored
6
.github/workflows/tests.yml
vendored
@ -62,12 +62,12 @@ jobs:
|
|||||||
|
|
||||||
- name: Run brew doctor
|
- name: Run brew doctor
|
||||||
run: |
|
run: |
|
||||||
|
# minimally fix brew doctor failures (a full clean takes ~5m)
|
||||||
if [ "$RUNNER_OS" = "Linux" ]; then
|
if [ "$RUNNER_OS" = "Linux" ]; then
|
||||||
# Cleanup some Linux `brew doctor` failures
|
|
||||||
sudo rm -rf /usr/local/include/node/
|
sudo rm -rf /usr/local/include/node/
|
||||||
else
|
else
|
||||||
# Link old gettext (otherwise `brew doctor` is sad)
|
# link old formulae
|
||||||
brew link gettext
|
brew link --overwrite --force gettext python@3.8
|
||||||
|
|
||||||
# remove deleted formula
|
# remove deleted formula
|
||||||
brew uninstall --force python@2
|
brew uninstall --force python@2
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -85,6 +85,7 @@
|
|||||||
**/vendor/bundle/ruby/*/gems/bundler-*/
|
**/vendor/bundle/ruby/*/gems/bundler-*/
|
||||||
**/vendor/bundle/ruby/*/gems/byebug-*/
|
**/vendor/bundle/ruby/*/gems/byebug-*/
|
||||||
**/vendor/bundle/ruby/*/gems/coderay-*/
|
**/vendor/bundle/ruby/*/gems/coderay-*/
|
||||||
|
**/vendor/bundle/ruby/*/gems/colorize-*/
|
||||||
**/vendor/bundle/ruby/*/gems/connection_pool-*/
|
**/vendor/bundle/ruby/*/gems/connection_pool-*/
|
||||||
**/vendor/bundle/ruby/*/gems/codecov-*/
|
**/vendor/bundle/ruby/*/gems/codecov-*/
|
||||||
**/vendor/bundle/ruby/*/gems/diff-lcs-*/
|
**/vendor/bundle/ruby/*/gems/diff-lcs-*/
|
||||||
@ -129,7 +130,6 @@
|
|||||||
**/vendor/bundle/ruby/*/gems/simplecov-*/
|
**/vendor/bundle/ruby/*/gems/simplecov-*/
|
||||||
**/vendor/bundle/ruby/*/gems/simplecov-html-*/
|
**/vendor/bundle/ruby/*/gems/simplecov-html-*/
|
||||||
**/vendor/bundle/ruby/*/gems/thor-*/
|
**/vendor/bundle/ruby/*/gems/thor-*/
|
||||||
**/vendor/bundle/ruby/*/gems/url-*/
|
|
||||||
**/vendor/bundle/ruby/*/gems/unf_ext-*/
|
**/vendor/bundle/ruby/*/gems/unf_ext-*/
|
||||||
**/vendor/bundle/ruby/*/gems/unf-*/
|
**/vendor/bundle/ruby/*/gems/unf-*/
|
||||||
**/vendor/bundle/ruby/*/gems/unicode-display_width-*/
|
**/vendor/bundle/ruby/*/gems/unicode-display_width-*/
|
||||||
|
|||||||
@ -9,10 +9,11 @@ GEM
|
|||||||
zeitwerk (~> 2.2, >= 2.2.2)
|
zeitwerk (~> 2.2, >= 2.2.2)
|
||||||
ast (2.4.1)
|
ast (2.4.1)
|
||||||
byebug (11.1.3)
|
byebug (11.1.3)
|
||||||
codecov (0.1.17)
|
codecov (0.1.19)
|
||||||
|
colorize
|
||||||
json
|
json
|
||||||
simplecov
|
simplecov
|
||||||
url
|
colorize (0.8.1)
|
||||||
concurrent-ruby (1.1.6)
|
concurrent-ruby (1.1.6)
|
||||||
connection_pool (2.2.3)
|
connection_pool (2.2.3)
|
||||||
diff-lcs (1.4.4)
|
diff-lcs (1.4.4)
|
||||||
@ -80,7 +81,7 @@ GEM
|
|||||||
rspec-support (3.9.3)
|
rspec-support (3.9.3)
|
||||||
rspec-wait (0.0.9)
|
rspec-wait (0.0.9)
|
||||||
rspec (>= 3, < 4)
|
rspec (>= 3, < 4)
|
||||||
rubocop (0.87.0)
|
rubocop (0.87.1)
|
||||||
parallel (~> 1.10)
|
parallel (~> 1.10)
|
||||||
parser (>= 2.7.1.1)
|
parser (>= 2.7.1.1)
|
||||||
rainbow (>= 2.2.2, < 4.0)
|
rainbow (>= 2.2.2, < 4.0)
|
||||||
@ -108,7 +109,6 @@ GEM
|
|||||||
unf_ext
|
unf_ext
|
||||||
unf_ext (0.0.7.7)
|
unf_ext (0.0.7.7)
|
||||||
unicode-display_width (1.7.0)
|
unicode-display_width (1.7.0)
|
||||||
url (0.3.2)
|
|
||||||
webrobots (0.1.2)
|
webrobots (0.1.2)
|
||||||
zeitwerk (2.3.1)
|
zeitwerk (2.3.1)
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
PYTHON_VIRTUALENV_URL =
|
PYTHON_VIRTUALENV_URL =
|
||||||
"https://files.pythonhosted.org/packages/11/74" \
|
"https://files.pythonhosted.org/packages/c4/1b" \
|
||||||
"/2c151a13ef41ab9fb43b3c4ff9e788e0496ed7923b2078d42cab30622bdf" \
|
"/09bb751c6e805bf4711bbaead5499c8d8caf92398ba8da92daa8bf19f60e" \
|
||||||
"/virtualenv-16.7.4.tar.gz"
|
"/virtualenv-20.0.26.tar.gz"
|
||||||
PYTHON_VIRTUALENV_SHA256 =
|
PYTHON_VIRTUALENV_SHA256 =
|
||||||
"94a6898293d07f84a98add34c4df900f8ec64a570292279f6d91c781d37fd305"
|
"e10cc66f40cbda459720dfe1d334c4dc15add0d80f09108224f171006a97a172"
|
||||||
|
|
||||||
PYTHON_VIRTUALENV_URL_MOJAVE =
|
PYTHON_VIRTUALENV_URL_MOJAVE =
|
||||||
"https://files.pythonhosted.org/packages/b1/72" \
|
"https://files.pythonhosted.org/packages/b1/72" \
|
||||||
|
|||||||
@ -15,11 +15,40 @@ module RuboCop
|
|||||||
bash-completion@2
|
bash-completion@2
|
||||||
].freeze
|
].freeze
|
||||||
|
|
||||||
def audit_formula(_node, _class_node, _parent_class_node, body)
|
def audit_formula(_node, _class_node, _parent_class_node, body_node)
|
||||||
|
find_method_calls_by_name(body_node, :conflicts_with).each do |conflicts_with_call|
|
||||||
|
next unless parameters(conflicts_with_call).last.respond_to? :values
|
||||||
|
|
||||||
|
reason = parameters(conflicts_with_call).last.values.first
|
||||||
|
offending_node(reason)
|
||||||
|
name = Regexp.new(@formula_name, Regexp::IGNORECASE)
|
||||||
|
reason = string_content(reason).sub(name, "")
|
||||||
|
first_word = reason.split.first
|
||||||
|
|
||||||
|
if reason.match?(/\A[A-Z]/)
|
||||||
|
problem "'#{first_word}' from the `conflicts_with` reason should be '#{first_word.downcase}'."
|
||||||
|
end
|
||||||
|
|
||||||
|
problem "`conflicts_with` reason should not end with a period." if reason.end_with?(".")
|
||||||
|
end
|
||||||
|
|
||||||
return unless versioned_formula?
|
return unless versioned_formula?
|
||||||
|
|
||||||
problem MSG if !ALLOWLIST.include?(@formula_name) &&
|
problem MSG if !ALLOWLIST.include?(@formula_name) &&
|
||||||
method_called_ever?(body, :conflicts_with)
|
method_called_ever?(body_node, :conflicts_with)
|
||||||
|
end
|
||||||
|
|
||||||
|
def autocorrect(node)
|
||||||
|
lambda do |corrector|
|
||||||
|
if versioned_formula?
|
||||||
|
corrector.replace(node.source_range, "keg_only :versioned_formula")
|
||||||
|
else
|
||||||
|
reason = string_content(node)
|
||||||
|
reason[0] = reason[0].downcase
|
||||||
|
reason = reason.delete_suffix(".")
|
||||||
|
corrector.replace(node.source_range, "\"#{reason}\"")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -163,6 +163,7 @@ false:
|
|||||||
- ./dev-cmd/release-notes.rb
|
- ./dev-cmd/release-notes.rb
|
||||||
- ./dev-cmd/ruby.rb
|
- ./dev-cmd/ruby.rb
|
||||||
- ./dev-cmd/sh.rb
|
- ./dev-cmd/sh.rb
|
||||||
|
- ./dev-cmd/sponsors.rb
|
||||||
- ./dev-cmd/style.rb
|
- ./dev-cmd/style.rb
|
||||||
- ./dev-cmd/tap-new.rb
|
- ./dev-cmd/tap-new.rb
|
||||||
- ./dev-cmd/test.rb
|
- ./dev-cmd/test.rb
|
||||||
@ -603,6 +604,7 @@ false:
|
|||||||
- ./test/dev-cmd/release-notes_spec.rb
|
- ./test/dev-cmd/release-notes_spec.rb
|
||||||
- ./test/dev-cmd/ruby_spec.rb
|
- ./test/dev-cmd/ruby_spec.rb
|
||||||
- ./test/dev-cmd/sh_spec.rb
|
- ./test/dev-cmd/sh_spec.rb
|
||||||
|
- ./test/dev-cmd/sponsors_spec.rb
|
||||||
- ./test/dev-cmd/style_spec.rb
|
- ./test/dev-cmd/style_spec.rb
|
||||||
- ./test/dev-cmd/tap-new_spec.rb
|
- ./test/dev-cmd/tap-new_spec.rb
|
||||||
- ./test/dev-cmd/test_spec.rb
|
- ./test/dev-cmd/test_spec.rb
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
|
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
|
||||||
# tapioca sync
|
# tapioca sync --exclude json
|
||||||
|
|
||||||
# typed: true
|
# typed: true
|
||||||
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
|
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
|
||||||
# tapioca sync
|
# tapioca sync --exclude json
|
||||||
|
|
||||||
# typed: true
|
# typed: true
|
||||||
|
|
||||||
@ -12,6 +12,24 @@ end
|
|||||||
module RuboCop::Cop::Performance
|
module RuboCop::Cop::Performance
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::AncestorsInclude < ::RuboCop::Cop::Cop
|
||||||
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
|
|
||||||
|
def ancestors_include_candidate?(node = _); end
|
||||||
|
def autocorrect(node); end
|
||||||
|
def on_send(node); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::AncestorsInclude::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::BigDecimalWithNumericArgument < ::RuboCop::Cop::Cop
|
||||||
|
def autocorrect(node); end
|
||||||
|
def big_decimal_with_numeric_argument?(node = _); end
|
||||||
|
def on_send(node); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::BigDecimalWithNumericArgument::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::Performance::BindCall < ::RuboCop::Cop::Cop
|
class RuboCop::Cop::Performance::BindCall < ::RuboCop::Cop::Cop
|
||||||
include(::RuboCop::Cop::RangeHelp)
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
extend(::RuboCop::Cop::TargetRubyVersion)
|
extend(::RuboCop::Cop::TargetRubyVersion)
|
||||||
@ -256,6 +274,29 @@ class RuboCop::Cop::Performance::InefficientHashSearch < ::RuboCop::Cop::Cop
|
|||||||
def use_long_method; end
|
def use_long_method; end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::IoReadlines < ::RuboCop::Cop::Cop
|
||||||
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
|
|
||||||
|
def autocorrect(node); end
|
||||||
|
def on_send(node); end
|
||||||
|
def readlines_on_class?(node = _); end
|
||||||
|
def readlines_on_instance?(node = _); end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def build_bad_method(enumerable_call); end
|
||||||
|
def build_call_args(call_args_node); end
|
||||||
|
def build_good_method(enumerable_call); end
|
||||||
|
def correction_range(enumerable_call, readlines_call); end
|
||||||
|
def enumerable_method?(node); end
|
||||||
|
def offense(node, enumerable_call, readlines_call); end
|
||||||
|
def offense_range(enumerable_call, readlines_call); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::IoReadlines::ENUMERABLE_METHODS = T.let(T.unsafe(nil), Array)
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::IoReadlines::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::Performance::OpenStruct < ::RuboCop::Cop::Cop
|
class RuboCop::Cop::Performance::OpenStruct < ::RuboCop::Cop::Cop
|
||||||
def on_send(node); end
|
def on_send(node); end
|
||||||
def open_struct(node = _); end
|
def open_struct(node = _); end
|
||||||
@ -349,6 +390,42 @@ RuboCop::Cop::Performance::RedundantMerge::MSG = T.let(T.unsafe(nil), String)
|
|||||||
|
|
||||||
RuboCop::Cop::Performance::RedundantMerge::WITH_MODIFIER_CORRECTION = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::Performance::RedundantMerge::WITH_MODIFIER_CORRECTION = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::RedundantSortBlock < ::RuboCop::Cop::Cop
|
||||||
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
|
include(::RuboCop::Cop::SortBlock)
|
||||||
|
|
||||||
|
def autocorrect(node); end
|
||||||
|
def on_block(node); end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def message(var_a, var_b); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::RedundantSortBlock::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::RedundantStringChars < ::RuboCop::Cop::Cop
|
||||||
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
|
|
||||||
|
def autocorrect(node); end
|
||||||
|
def on_send(node); end
|
||||||
|
def redundant_chars_call?(node = _); end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def build_bad_method(method, args); end
|
||||||
|
def build_call_args(call_args_node); end
|
||||||
|
def build_good_method(method, args); end
|
||||||
|
def build_message(method, args); end
|
||||||
|
def correction_range(receiver, node); end
|
||||||
|
def offense_range(receiver, node); end
|
||||||
|
def replaceable_method?(method_name); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::RedundantStringChars::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::RedundantStringChars::REPLACEABLE_METHODS = T.let(T.unsafe(nil), Array)
|
||||||
|
|
||||||
class RuboCop::Cop::Performance::RegexpMatch < ::RuboCop::Cop::Cop
|
class RuboCop::Cop::Performance::RegexpMatch < ::RuboCop::Cop::Cop
|
||||||
def autocorrect(node); end
|
def autocorrect(node); end
|
||||||
def last_matches(node0); end
|
def last_matches(node0); end
|
||||||
@ -398,21 +475,61 @@ RuboCop::Cop::Performance::ReverseEach::MSG = T.let(T.unsafe(nil), String)
|
|||||||
|
|
||||||
RuboCop::Cop::Performance::ReverseEach::UNDERSCORE = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::Performance::ReverseEach::UNDERSCORE = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::Performance::Size < ::RuboCop::Cop::Cop
|
class RuboCop::Cop::Performance::ReverseFirst < ::RuboCop::Cop::Cop
|
||||||
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
|
|
||||||
def autocorrect(node); end
|
def autocorrect(node); end
|
||||||
def on_send(node); end
|
def on_send(node); end
|
||||||
|
def reverse_first_candidate?(node = _); end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def allowed_parent?(node); end
|
def build_bad_method(node); end
|
||||||
def array?(node); end
|
def build_good_method(node); end
|
||||||
def eligible_node?(node); end
|
def build_message(node); end
|
||||||
def eligible_receiver?(node); end
|
def correction_range(receiver, node); end
|
||||||
def hash?(node); end
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::ReverseFirst::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::Size < ::RuboCop::Cop::Cop
|
||||||
|
def array?(node = _); end
|
||||||
|
def autocorrect(node); end
|
||||||
|
def count?(node = _); end
|
||||||
|
def hash?(node = _); end
|
||||||
|
def on_send(node); end
|
||||||
end
|
end
|
||||||
|
|
||||||
RuboCop::Cop::Performance::Size::MSG = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::Performance::Size::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::SortReverse < ::RuboCop::Cop::Cop
|
||||||
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
|
include(::RuboCop::Cop::SortBlock)
|
||||||
|
|
||||||
|
def autocorrect(node); end
|
||||||
|
def on_block(node); end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def message(var_a, var_b); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::SortReverse::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::Squeeze < ::RuboCop::Cop::Cop
|
||||||
|
def autocorrect(node); end
|
||||||
|
def on_send(node); end
|
||||||
|
def squeeze_candidate?(node = _); end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def repeating_literal?(regex_str); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::Squeeze::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::Squeeze::PREFERRED_METHODS = T.let(T.unsafe(nil), Hash)
|
||||||
|
|
||||||
class RuboCop::Cop::Performance::StartWith < ::RuboCop::Cop::Cop
|
class RuboCop::Cop::Performance::StartWith < ::RuboCop::Cop::Cop
|
||||||
include(::RuboCop::Cop::RegexpMetacharacter)
|
include(::RuboCop::Cop::RegexpMetacharacter)
|
||||||
|
|
||||||
@ -424,6 +541,19 @@ end
|
|||||||
|
|
||||||
RuboCop::Cop::Performance::StartWith::MSG = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::Performance::StartWith::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
|
class RuboCop::Cop::Performance::StringInclude < ::RuboCop::Cop::Cop
|
||||||
|
def autocorrect(node); end
|
||||||
|
def on_match_with_lvasgn(node); end
|
||||||
|
def on_send(node); end
|
||||||
|
def redundant_regex?(node = _); end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def literal?(regex_str); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Cop::Performance::StringInclude::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::Performance::StringReplacement < ::RuboCop::Cop::Cop
|
class RuboCop::Cop::Performance::StringReplacement < ::RuboCop::Cop::Cop
|
||||||
include(::RuboCop::Cop::RangeHelp)
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
|
|
||||||
@ -504,6 +634,18 @@ module RuboCop::Cop::RegexpMetacharacter
|
|||||||
def safe_multiline?; end
|
def safe_multiline?; end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module RuboCop::Cop::SortBlock
|
||||||
|
include(::RuboCop::Cop::RangeHelp)
|
||||||
|
extend(::RuboCop::AST::NodePattern::Macros)
|
||||||
|
|
||||||
|
def replaceable_body?(node = _, param1, param2); end
|
||||||
|
def sort_with_block?(node = _); end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def sort_range(send, node); end
|
||||||
|
end
|
||||||
|
|
||||||
RuboCop::NodePattern = RuboCop::AST::NodePattern
|
RuboCop::NodePattern = RuboCop::AST::NodePattern
|
||||||
|
|
||||||
module RuboCop::Performance
|
module RuboCop::Performance
|
||||||
@ -1,5 +1,5 @@
|
|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
|
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
|
||||||
# tapioca sync
|
# tapioca sync --exclude json
|
||||||
|
|
||||||
# typed: true
|
# typed: true
|
||||||
|
|
||||||
@ -225,7 +225,6 @@ class RuboCop::Cop::RSpec::DescribeClass < ::RuboCop::Cop::RSpec::Cop
|
|||||||
def describe_with_rails_metadata?(node = _); end
|
def describe_with_rails_metadata?(node = _); end
|
||||||
def on_top_level_describe(node, _); end
|
def on_top_level_describe(node, _); end
|
||||||
def rails_metadata?(node = _); end
|
def rails_metadata?(node = _); end
|
||||||
def shared_group?(node = _); end
|
|
||||||
def valid_describe?(node = _); end
|
def valid_describe?(node = _); end
|
||||||
|
|
||||||
private
|
private
|
||||||
@ -528,7 +527,7 @@ end
|
|||||||
class RuboCop::Cop::RSpec::FactoryBot::AttributeDefinedStatically < ::RuboCop::Cop::RSpec::Cop
|
class RuboCop::Cop::RSpec::FactoryBot::AttributeDefinedStatically < ::RuboCop::Cop::RSpec::Cop
|
||||||
def association?(node = _); end
|
def association?(node = _); end
|
||||||
def autocorrect(node); end
|
def autocorrect(node); end
|
||||||
def factory_attributes(node0); end
|
def factory_attributes(node = _); end
|
||||||
def on_block(node); end
|
def on_block(node); end
|
||||||
def value_matcher(node = _); end
|
def value_matcher(node = _); end
|
||||||
|
|
||||||
@ -773,12 +772,13 @@ end
|
|||||||
RuboCop::Cop::RSpec::InstanceSpy::MSG = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::RSpec::InstanceSpy::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::RSpec::InstanceVariable < ::RuboCop::Cop::RSpec::Cop
|
class RuboCop::Cop::RSpec::InstanceVariable < ::RuboCop::Cop::RSpec::Cop
|
||||||
|
include(::RuboCop::RSpec::TopLevelGroup)
|
||||||
|
|
||||||
def custom_matcher?(node = _); end
|
def custom_matcher?(node = _); end
|
||||||
def dynamic_class?(node = _); end
|
def dynamic_class?(node = _); end
|
||||||
def ivar_assigned?(node0, param1); end
|
def ivar_assigned?(node0, param1); end
|
||||||
def ivar_usage(node0); end
|
def ivar_usage(node0); end
|
||||||
def on_block(node); end
|
def on_top_level_group(node); end
|
||||||
def spec_group?(node = _); end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
@ -786,8 +786,6 @@ class RuboCop::Cop::RSpec::InstanceVariable < ::RuboCop::Cop::RSpec::Cop
|
|||||||
def valid_usage?(node); end
|
def valid_usage?(node); end
|
||||||
end
|
end
|
||||||
|
|
||||||
RuboCop::Cop::RSpec::InstanceVariable::EXAMPLE_GROUP_METHODS = T.let(T.unsafe(nil), RuboCop::RSpec::Language::SelectorSet)
|
|
||||||
|
|
||||||
RuboCop::Cop::RSpec::InstanceVariable::MSG = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::RSpec::InstanceVariable::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::RSpec::InvalidPredicateMatcher < ::RuboCop::Cop::RSpec::Cop
|
class RuboCop::Cop::RSpec::InvalidPredicateMatcher < ::RuboCop::Cop::RSpec::Cop
|
||||||
@ -844,7 +842,6 @@ end
|
|||||||
RuboCop::Cop::RSpec::LeadingSubject::MSG = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::RSpec::LeadingSubject::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::RSpec::LeakyConstantDeclaration < ::RuboCop::Cop::RSpec::Cop
|
class RuboCop::Cop::RSpec::LeakyConstantDeclaration < ::RuboCop::Cop::RSpec::Cop
|
||||||
def in_example_or_shared_group?(node = _); end
|
|
||||||
def on_casgn(node); end
|
def on_casgn(node); end
|
||||||
def on_class(node); end
|
def on_class(node); end
|
||||||
def on_module(node); end
|
def on_module(node); end
|
||||||
@ -875,12 +872,14 @@ end
|
|||||||
RuboCop::Cop::RSpec::LetBeforeExamples::MSG = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::RSpec::LetBeforeExamples::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::RSpec::LetSetup < ::RuboCop::Cop::RSpec::Cop
|
class RuboCop::Cop::RSpec::LetSetup < ::RuboCop::Cop::RSpec::Cop
|
||||||
def let_bang(node0); end
|
def example_or_shared_group_or_including?(node = _); end
|
||||||
|
def let_bang(node = _); end
|
||||||
def method_called?(node0, param1); end
|
def method_called?(node0, param1); end
|
||||||
def on_block(node); end
|
def on_block(node); end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def child_let_bang(node, &block); end
|
||||||
def unused_let_bang(node); end
|
def unused_let_bang(node); end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -993,12 +992,11 @@ class RuboCop::Cop::RSpec::NestedGroups < ::RuboCop::Cop::RSpec::Cop
|
|||||||
include(::RuboCop::Cop::ConfigurableMax)
|
include(::RuboCop::Cop::ConfigurableMax)
|
||||||
include(::RuboCop::RSpec::TopLevelDescribe)
|
include(::RuboCop::RSpec::TopLevelDescribe)
|
||||||
|
|
||||||
def find_contexts(node0); end
|
|
||||||
def on_top_level_describe(node, _args); end
|
def on_top_level_describe(node, _args); end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def find_nested_contexts(node, nesting: _, &block); end
|
def find_nested_example_groups(node, nesting: _, &block); end
|
||||||
def max_nesting; end
|
def max_nesting; end
|
||||||
def max_nesting_config; end
|
def max_nesting_config; end
|
||||||
def message(nesting); end
|
def message(nesting); end
|
||||||
@ -1157,6 +1155,7 @@ class RuboCop::Cop::RSpec::ReturnFromStub < ::RuboCop::Cop::RSpec::Cop
|
|||||||
def contains_stub?(node0); end
|
def contains_stub?(node0); end
|
||||||
def on_block(node); end
|
def on_block(node); end
|
||||||
def on_send(node); end
|
def on_send(node); end
|
||||||
|
def stub_with_block?(node = _); end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
@ -1280,16 +1279,17 @@ end
|
|||||||
RuboCop::Cop::RSpec::SingleArgumentMessageChain::MSG = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::RSpec::SingleArgumentMessageChain::MSG = T.let(T.unsafe(nil), String)
|
||||||
|
|
||||||
class RuboCop::Cop::RSpec::SubjectStub < ::RuboCop::Cop::RSpec::Cop
|
class RuboCop::Cop::RSpec::SubjectStub < ::RuboCop::Cop::RSpec::Cop
|
||||||
|
include(::RuboCop::RSpec::TopLevelGroup)
|
||||||
|
|
||||||
def message_expectation?(node = _, param1); end
|
def message_expectation?(node = _, param1); end
|
||||||
def message_expectation_matcher?(node0); end
|
def message_expectation_matcher?(node0); end
|
||||||
def on_block(node); end
|
def on_top_level_group(node); end
|
||||||
def subject(node = _); end
|
def subject(node = _); end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def find_all_explicit_subjects(node); end
|
def find_all_explicit_subjects(node); end
|
||||||
def find_subject_expectations(node, subject_names = _, &block); end
|
def find_subject_expectations(node, subject_names = _, &block); end
|
||||||
def processed_example_groups; end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
RuboCop::Cop::RSpec::SubjectStub::MSG = T.let(T.unsafe(nil), String)
|
RuboCop::Cop::RSpec::SubjectStub::MSG = T.let(T.unsafe(nil), String)
|
||||||
@ -1467,17 +1467,14 @@ end
|
|||||||
class RuboCop::RSpec::ExampleGroup < ::RuboCop::RSpec::Concept
|
class RuboCop::RSpec::ExampleGroup < ::RuboCop::RSpec::Concept
|
||||||
def examples; end
|
def examples; end
|
||||||
def hooks; end
|
def hooks; end
|
||||||
|
def lets; end
|
||||||
def scope_change?(node = _); end
|
def scope_change?(node = _); end
|
||||||
def subjects; end
|
def subjects; end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def examples_in_scope(node, &blk); end
|
def find_all(node, predicate); end
|
||||||
def find_examples(node); end
|
def find_all_in_scope(node, predicate); end
|
||||||
def find_hooks(node); end
|
|
||||||
def find_subjects(node); end
|
|
||||||
def hooks_in_scope(node); end
|
|
||||||
def subjects_in_scope(node); end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
module RuboCop::RSpec::FactoryBot
|
module RuboCop::RSpec::FactoryBot
|
||||||
@ -1576,6 +1573,8 @@ module RuboCop::RSpec::Language::NodePattern
|
|||||||
def example_group_with_body?(node = _); end
|
def example_group_with_body?(node = _); end
|
||||||
def hook?(node = _); end
|
def hook?(node = _); end
|
||||||
def let?(node = _); end
|
def let?(node = _); end
|
||||||
|
def shared_group?(node = _); end
|
||||||
|
def spec_group?(node = _); end
|
||||||
def subject?(node = _); end
|
def subject?(node = _); end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1636,6 +1635,21 @@ module RuboCop::RSpec::TopLevelDescribe
|
|||||||
def top_level_nodes; end
|
def top_level_nodes; end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module RuboCop::RSpec::TopLevelGroup
|
||||||
|
include(::RuboCop::RSpec::Language)
|
||||||
|
extend(::RuboCop::AST::NodePattern::Macros)
|
||||||
|
|
||||||
|
def example_or_shared_group?(node = _); end
|
||||||
|
def on_block(node); end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def root_node; end
|
||||||
|
def top_level_group?(node); end
|
||||||
|
def top_level_groups; end
|
||||||
|
def top_level_nodes; end
|
||||||
|
end
|
||||||
|
|
||||||
module RuboCop::RSpec::Variable
|
module RuboCop::RSpec::Variable
|
||||||
include(::RuboCop::RSpec::Language)
|
include(::RuboCop::RSpec::Language)
|
||||||
extend(::RuboCop::AST::NodePattern::Macros)
|
extend(::RuboCop::AST::NodePattern::Macros)
|
||||||
File diff suppressed because it is too large
Load Diff
@ -5819,6 +5819,10 @@ class Cask::DSL::Container
|
|||||||
|
|
||||||
def nested=(nested); end
|
def nested=(nested); end
|
||||||
|
|
||||||
|
def pairs(); end
|
||||||
|
|
||||||
|
def pairs=(pairs); end
|
||||||
|
|
||||||
def type(); end
|
def type(); end
|
||||||
|
|
||||||
def type=(type); end
|
def type=(type); end
|
||||||
@ -19436,7 +19440,7 @@ module RuboCop::RSpec::ExpectOffense
|
|||||||
|
|
||||||
def expect_no_offenses(source, file=T.unsafe(nil)); end
|
def expect_no_offenses(source, file=T.unsafe(nil)); end
|
||||||
|
|
||||||
def expect_offense(source, file=T.unsafe(nil), **replacements); end
|
def expect_offense(source, file=T.unsafe(nil), severity: T.unsafe(nil), **replacements); end
|
||||||
|
|
||||||
def format_offense(source, **replacements); end
|
def format_offense(source, **replacements); end
|
||||||
end
|
end
|
||||||
@ -23216,6 +23220,8 @@ class URL
|
|||||||
|
|
||||||
def scheme=(scheme); end
|
def scheme=(scheme); end
|
||||||
|
|
||||||
|
def specs(); end
|
||||||
|
|
||||||
def string(); end
|
def string(); end
|
||||||
|
|
||||||
def subdomain(); end
|
def subdomain(); end
|
||||||
@ -23234,6 +23240,8 @@ class URL
|
|||||||
|
|
||||||
def trust_cert(); end
|
def trust_cert(); end
|
||||||
|
|
||||||
|
def uri(); end
|
||||||
|
|
||||||
def user_agent(); end
|
def user_agent(); end
|
||||||
|
|
||||||
def using(); end
|
def using(); end
|
||||||
|
|||||||
@ -5,14 +5,34 @@ require "rubocops/conflicts"
|
|||||||
describe RuboCop::Cop::FormulaAudit::Conflicts do
|
describe RuboCop::Cop::FormulaAudit::Conflicts do
|
||||||
subject(:cop) { described_class.new }
|
subject(:cop) { described_class.new }
|
||||||
|
|
||||||
context "When auditing formula for conflicts with" do
|
context "When auditing conflicts_with" do
|
||||||
it "multiple conflicts_with" do
|
it "conflicts_with reason is capitalized" do
|
||||||
|
expect_offense(<<~RUBY, "/homebrew-core/Formula/foo.rb")
|
||||||
|
class Foo < Formula
|
||||||
|
url "https://brew.sh/foo-1.0.tgz"
|
||||||
|
conflicts_with "bar", :because => "Reason"
|
||||||
|
^^^^^^^^ 'Reason' from the `conflicts_with` reason should be 'reason'.
|
||||||
|
conflicts_with "baz", :because => "Foo is the formula name which does not require downcasing"
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
|
||||||
|
it "conflicts_with reason ends with a period" do
|
||||||
|
expect_offense(<<~RUBY)
|
||||||
|
class Foo < Formula
|
||||||
|
url "https://brew.sh/foo-1.0.tgz"
|
||||||
|
conflicts_with "bar", "baz", :because => "reason."
|
||||||
|
^^^^^^^^^ `conflicts_with` reason should not end with a period.
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
|
||||||
|
it "conflicts_with in a versioned formula" do
|
||||||
expect_offense(<<~RUBY, "/homebrew-core/Formula/foo@2.0.rb")
|
expect_offense(<<~RUBY, "/homebrew-core/Formula/foo@2.0.rb")
|
||||||
class FooAT20 < Formula
|
class FooAT20 < Formula
|
||||||
url 'https://brew.sh/foo-2.0.tgz'
|
url 'https://brew.sh/foo-2.0.tgz'
|
||||||
conflicts_with "mysql", "mariadb", "percona-server",
|
conflicts_with "mysql", "mariadb"
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Versioned formulae should not use `conflicts_with`. Use `keg_only :versioned_formula` instead.
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Versioned formulae should not use `conflicts_with`. Use `keg_only :versioned_formula` instead.
|
||||||
:because => "both install plugins"
|
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
@ -21,10 +41,48 @@ describe RuboCop::Cop::FormulaAudit::Conflicts do
|
|||||||
expect_no_offenses(<<~RUBY, "/homebrew-core/Formula/foo@2.0.rb")
|
expect_no_offenses(<<~RUBY, "/homebrew-core/Formula/foo@2.0.rb")
|
||||||
class FooAT20 < Formula
|
class FooAT20 < Formula
|
||||||
url 'https://brew.sh/foo-2.0.tgz'
|
url 'https://brew.sh/foo-2.0.tgz'
|
||||||
desc 'Bar'
|
homepage "https://brew.sh"
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "auto-corrects capitalized reason" do
|
||||||
|
source = <<~RUBY
|
||||||
|
class Foo < Formula
|
||||||
|
url "https://brew.sh/foo-1.0.tgz"
|
||||||
|
conflicts_with "bar", :because => "Reason"
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
|
||||||
|
corrected_source = <<~RUBY
|
||||||
|
class Foo < Formula
|
||||||
|
url "https://brew.sh/foo-1.0.tgz"
|
||||||
|
conflicts_with "bar", :because => "reason"
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
|
||||||
|
new_source = autocorrect_source(source)
|
||||||
|
expect(new_source).to eq(corrected_source)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "auto-corrects trailing period" do
|
||||||
|
source = <<~RUBY
|
||||||
|
class Foo < Formula
|
||||||
|
url "https://brew.sh/foo-1.0.tgz"
|
||||||
|
conflicts_with "bar", :because => "reason."
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
|
||||||
|
corrected_source = <<~RUBY
|
||||||
|
class Foo < Formula
|
||||||
|
url "https://brew.sh/foo-1.0.tgz"
|
||||||
|
conflicts_with "bar", :because => "reason"
|
||||||
|
end
|
||||||
|
RUBY
|
||||||
|
|
||||||
|
new_source = autocorrect_source(source)
|
||||||
|
expect(new_source).to eq(corrected_source)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
include_examples "formulae exist", described_class::ALLOWLIST
|
include_examples "formulae exist", described_class::ALLOWLIST
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user