Merge remote-tracking branch 'tyuwags/master'
This commit is contained in:
commit
fbd13203d8
80
.github/dependabot.yml
vendored
80
.github/dependabot.yml
vendored
@ -5,68 +5,86 @@ updates:
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: "friday"
|
||||
time: "08:00"
|
||||
timezone: "Etc/UTC"
|
||||
allow:
|
||||
- dependency-type: all
|
||||
# The actions in triage-issues.yml are updated in the Homebrew/.github repo
|
||||
ignore:
|
||||
- dependency-name: actions/stale
|
||||
groups:
|
||||
artifacts:
|
||||
github-actions:
|
||||
patterns:
|
||||
- actions/*-artifact
|
||||
open-pull-requests-limit: 10
|
||||
- "*"
|
||||
|
||||
- package-ecosystem: bundler
|
||||
directory: /Library/Homebrew
|
||||
directories:
|
||||
- /
|
||||
- /Library/Homebrew
|
||||
schedule:
|
||||
interval: daily
|
||||
interval: weekly
|
||||
day: "friday"
|
||||
time: "08:00"
|
||||
timezone: "Etc/UTC"
|
||||
allow:
|
||||
- dependency-type: all
|
||||
groups:
|
||||
rspec:
|
||||
bundler:
|
||||
patterns:
|
||||
- "rspec*"
|
||||
sorbet:
|
||||
patterns:
|
||||
- "sorbet*"
|
||||
open-pull-requests-limit: 10
|
||||
- "*"
|
||||
|
||||
- package-ecosystem: npm
|
||||
directory: /
|
||||
schedule:
|
||||
interval: daily
|
||||
interval: weekly
|
||||
day: "friday"
|
||||
time: "08:00"
|
||||
timezone: "Etc/UTC"
|
||||
allow:
|
||||
- dependency-type: all
|
||||
open-pull-requests-limit: 10
|
||||
groups:
|
||||
npm:
|
||||
patterns:
|
||||
- "*"
|
||||
|
||||
- package-ecosystem: docker
|
||||
directory: /
|
||||
schedule:
|
||||
interval: daily
|
||||
interval: weekly
|
||||
day: "friday"
|
||||
time: "08:00"
|
||||
timezone: "Etc/UTC"
|
||||
allow:
|
||||
- dependency-type: all
|
||||
open-pull-requests-limit: 10
|
||||
groups:
|
||||
docker:
|
||||
patterns:
|
||||
- "*"
|
||||
|
||||
- package-ecosystem: devcontainers
|
||||
directory: /
|
||||
schedule:
|
||||
interval: daily
|
||||
interval: weekly
|
||||
day: "friday"
|
||||
time: "08:00"
|
||||
timezone: "Etc/UTC"
|
||||
allow:
|
||||
- dependency-type: all
|
||||
open-pull-requests-limit: 10
|
||||
groups:
|
||||
devcontainers:
|
||||
patterns:
|
||||
- "*"
|
||||
|
||||
- package-ecosystem: pip
|
||||
directory: /
|
||||
directories:
|
||||
- /
|
||||
- /Library/Homebrew/formula-analytics/
|
||||
schedule:
|
||||
interval: daily
|
||||
interval: weekly
|
||||
day: "friday"
|
||||
time: "08:00"
|
||||
timezone: "Etc/UTC"
|
||||
allow:
|
||||
- dependency-type: all
|
||||
open-pull-requests-limit: 10
|
||||
|
||||
- package-ecosystem: pip
|
||||
directory: /Library/Homebrew/formula-analytics/
|
||||
schedule:
|
||||
interval: daily
|
||||
allow:
|
||||
- dependency-type: all
|
||||
open-pull-requests-limit: 10
|
||||
groups:
|
||||
pip:
|
||||
patterns:
|
||||
- "*"
|
||||
|
||||
2
.github/workflows/actionlint.yml
vendored
2
.github/workflows/actionlint.yml
vendored
@ -77,7 +77,7 @@ jobs:
|
||||
path: results.sarif
|
||||
|
||||
- name: Upload SARIF file
|
||||
uses: github/codeql-action/upload-sarif@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
|
||||
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
category: zizmor
|
||||
|
||||
4
.github/workflows/codeql-analysis.yml
vendored
4
.github/workflows/codeql-analysis.yml
vendored
@ -28,7 +28,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
|
||||
uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
|
||||
with:
|
||||
languages: ruby
|
||||
config: |
|
||||
@ -36,4 +36,4 @@ jobs:
|
||||
- Library/Homebrew/vendor
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17
|
||||
uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
|
||||
|
||||
4
.github/workflows/docker.yml
vendored
4
.github/workflows/docker.yml
vendored
@ -190,7 +190,7 @@ jobs:
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
||||
with:
|
||||
context: .
|
||||
load: true
|
||||
@ -227,7 +227,7 @@ jobs:
|
||||
- name: Deploy the Docker image by digest
|
||||
id: digest
|
||||
if: fromJSON(steps.attributes.outputs.push)
|
||||
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
||||
with:
|
||||
context: .
|
||||
cache-from: type=registry,ref=ghcr.io/homebrew/ubuntu${{ matrix.version }}:cache
|
||||
|
||||
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@ -52,7 +52,7 @@ jobs:
|
||||
run: vale docs/
|
||||
|
||||
- name: Install Ruby
|
||||
uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
|
||||
uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0
|
||||
with:
|
||||
bundler-cache: true
|
||||
working-directory: docs
|
||||
|
||||
10
.github/workflows/pkg-installer.yml
vendored
10
.github/workflows/pkg-installer.yml
vendored
@ -230,17 +230,15 @@ jobs:
|
||||
--password "${PKG_APPLE_ID_APP_SPECIFIC_PASSWORD}"
|
||||
--wait
|
||||
|
||||
- name: Install gh
|
||||
run: brew install gh
|
||||
|
||||
- name: Upload installer to GitHub release
|
||||
if: github.event_name == 'release'
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
INSTALLER_PATH: ${{ needs.build.outputs.installer_path }}
|
||||
run: gh release upload --repo Homebrew/brew
|
||||
"${GITHUB_REF//refs\/tags\//}"
|
||||
"${INSTALLER_PATH}"
|
||||
run: |
|
||||
VERSION="${INSTALLER_PATH#Homebrew-}"
|
||||
VERSION="${VERSION%.pkg}"
|
||||
gh release upload --repo Homebrew/brew "${VERSION}" "${INSTALLER_PATH}"
|
||||
|
||||
issue:
|
||||
needs: [build, test, upload]
|
||||
|
||||
2
.github/workflows/rubydoc.yml
vendored
2
.github/workflows/rubydoc.yml
vendored
@ -42,7 +42,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Ruby
|
||||
uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
|
||||
uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0
|
||||
with:
|
||||
bundler-cache: true
|
||||
working-directory: rubydoc
|
||||
|
||||
4
.github/workflows/stale-issues.yml
vendored
4
.github/workflows/stale-issues.yml
vendored
@ -38,7 +38,7 @@ jobs:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Mark/Close Stale Issues and Pull Requests
|
||||
uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0
|
||||
uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 21
|
||||
@ -68,7 +68,7 @@ jobs:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Mark/Close Stale `bump-formula-pr` and `bump-cask-pr` Pull Requests
|
||||
uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0
|
||||
uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 2
|
||||
|
||||
4
.github/workflows/tests.yml
vendored
4
.github/workflows/tests.yml
vendored
@ -335,14 +335,14 @@ jobs:
|
||||
filenames=$(find Library/Homebrew/test/junit -name 'rspec*.xml' -print | tr '\n' ',')
|
||||
echo "filenames=${filenames%,}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- uses: codecov/test-results-action@f2dba722c67b86c6caa034178c6e4d35335f6706 # v1.1.0
|
||||
- uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
|
||||
with:
|
||||
working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }}
|
||||
files: ${{ steps.junit_xml.outputs.filenames }}
|
||||
disable_search: true
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
- uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
|
||||
- uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
|
||||
with:
|
||||
working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }}
|
||||
files: Library/Homebrew/test/coverage/coverage.xml
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -164,6 +164,7 @@
|
||||
!/completions
|
||||
!/docs
|
||||
!/manpages
|
||||
!/CODEOWNERS
|
||||
|
||||
# Unignore our packaging files
|
||||
!/package
|
||||
@ -172,6 +173,7 @@
|
||||
# Ignore generated documentation site
|
||||
/docs/_site
|
||||
/docs/.jekyll-metadata
|
||||
/docs/tmp/.htmlproofer
|
||||
/docs/vendor
|
||||
/docs/Gemfile.lock
|
||||
|
||||
|
||||
11
CODEOWNERS
Normal file
11
CODEOWNERS
Normal file
@ -0,0 +1,11 @@
|
||||
# Note that the naming of this file is incorrect for our case: these people do not "own" the provided files but are
|
||||
# people with write-access to this repository who wish to approve changes to these files.
|
||||
#
|
||||
# Their review is required to merge PRs that change these files.
|
||||
#
|
||||
# To be explicit: we will never accept changes to this file adding people from outside the Homebrew GitHub
|
||||
# organisation. If you are not a Homebrew maintainer: you do not personally "own" or "maintain" any files.
|
||||
#
|
||||
# Note: @Homebrew/plc does not have write-access to this repository, and therefore cannot be listed in this file.
|
||||
|
||||
docs/Support-Tiers.md @Homebrew/tsc @MikeMcQuaid
|
||||
@ -26,7 +26,7 @@ AllCops:
|
||||
Include:
|
||||
- "**/*.rbi"
|
||||
Exclude:
|
||||
- "Homebrew/sorbet/rbi/{dsl,gems}/**/*.rbi"
|
||||
- "Homebrew/sorbet/rbi/{annotations,dsl,gems}/**/*.rbi"
|
||||
- "Homebrew/sorbet/rbi/parser*.rbi"
|
||||
- "Homebrew/bin/*"
|
||||
- "Homebrew/vendor/**/*"
|
||||
|
||||
@ -1 +1 @@
|
||||
3.4.3
|
||||
3.4.4
|
||||
|
||||
@ -11,13 +11,13 @@ GEM
|
||||
coderay (1.1.3)
|
||||
concurrent-ruby (1.3.5)
|
||||
csv (3.3.4)
|
||||
diff-lcs (1.6.1)
|
||||
diff-lcs (1.6.2)
|
||||
docile (1.4.1)
|
||||
elftools (1.3.1)
|
||||
bindata (~> 2)
|
||||
erubi (1.13.1)
|
||||
hana (1.3.7)
|
||||
json (2.11.3)
|
||||
json (2.12.0)
|
||||
json_schemer (2.4.0)
|
||||
bigdecimal
|
||||
hana (~> 1.3)
|
||||
@ -25,14 +25,14 @@ GEM
|
||||
simpleidn (~> 0.2)
|
||||
kramdown (2.5.1)
|
||||
rexml (>= 3.3.9)
|
||||
language_server-protocol (3.17.0.4)
|
||||
language_server-protocol (3.17.0.5)
|
||||
lint_roller (1.1.0)
|
||||
logger (1.7.0)
|
||||
method_source (1.1.0)
|
||||
minitest (5.25.5)
|
||||
netrc (0.11.0)
|
||||
parallel (1.27.0)
|
||||
parallel_tests (5.1.0)
|
||||
parallel_tests (5.2.0)
|
||||
parallel
|
||||
parser (3.3.8.0)
|
||||
ast (~> 2.4.1)
|
||||
@ -48,11 +48,11 @@ GEM
|
||||
pycall (1.5.2)
|
||||
racc (1.8.1)
|
||||
rainbow (3.1.1)
|
||||
rbi (0.3.2)
|
||||
rbi (0.3.3)
|
||||
prism (~> 1.0)
|
||||
rbs (>= 3.4.4)
|
||||
sorbet-runtime (>= 0.5.9204)
|
||||
rbs (3.9.2)
|
||||
rbs (3.9.4)
|
||||
logger
|
||||
redcarpet (3.6.1)
|
||||
regexp_parser (2.10.0)
|
||||
@ -78,7 +78,7 @@ GEM
|
||||
rspec-support (3.13.3)
|
||||
rspec_junit_formatter (0.6.0)
|
||||
rspec-core (>= 2, < 4, != 2.12.0)
|
||||
rubocop (1.75.5)
|
||||
rubocop (1.75.6)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (~> 3.17.0.2)
|
||||
lint_roller (~> 1.1.0)
|
||||
@ -104,7 +104,7 @@ GEM
|
||||
rubocop (~> 1.72, >= 1.72.1)
|
||||
rubocop-sorbet (0.10.0)
|
||||
rubocop (>= 1)
|
||||
ruby-lsp (0.23.17)
|
||||
ruby-lsp (0.23.21)
|
||||
language_server-protocol (~> 3.17.0)
|
||||
prism (>= 1.2, < 2.0)
|
||||
rbs (>= 3, < 4)
|
||||
@ -122,19 +122,20 @@ GEM
|
||||
simplecov-html (0.13.1)
|
||||
simplecov_json_formatter (0.1.4)
|
||||
simpleidn (0.2.3)
|
||||
sorbet (0.5.12067)
|
||||
sorbet-static (= 0.5.12067)
|
||||
sorbet-runtime (0.5.12067)
|
||||
sorbet-static (0.5.12067-aarch64-linux)
|
||||
sorbet-static (0.5.12067-universal-darwin)
|
||||
sorbet-static (0.5.12067-x86_64-linux)
|
||||
sorbet-static-and-runtime (0.5.12067)
|
||||
sorbet (= 0.5.12067)
|
||||
sorbet-runtime (= 0.5.12067)
|
||||
spoom (1.6.1)
|
||||
sorbet (0.5.12117)
|
||||
sorbet-static (= 0.5.12117)
|
||||
sorbet-runtime (0.5.12117)
|
||||
sorbet-static (0.5.12117-aarch64-linux)
|
||||
sorbet-static (0.5.12117-universal-darwin)
|
||||
sorbet-static (0.5.12117-x86_64-linux)
|
||||
sorbet-static-and-runtime (0.5.12117)
|
||||
sorbet (= 0.5.12117)
|
||||
sorbet-runtime (= 0.5.12117)
|
||||
spoom (1.6.3)
|
||||
erubi (>= 1.10.0)
|
||||
prism (>= 0.28.0)
|
||||
rbi (>= 0.2.3)
|
||||
rbi (>= 0.3.3)
|
||||
rexml (>= 3.2.6)
|
||||
sorbet-static-and-runtime (>= 0.5.10187)
|
||||
thor (>= 0.19.2)
|
||||
stackprof (0.2.27)
|
||||
@ -152,7 +153,7 @@ GEM
|
||||
unicode-display_width (3.1.4)
|
||||
unicode-emoji (~> 4.0, >= 4.0.4)
|
||||
unicode-emoji (4.0.4)
|
||||
vernier (1.7.0)
|
||||
vernier (1.7.1)
|
||||
warning (1.5.0)
|
||||
yard (0.9.37)
|
||||
yard-sorbet (0.9.0)
|
||||
@ -212,7 +213,7 @@ DEPENDENCIES
|
||||
yard-sorbet
|
||||
|
||||
RUBY VERSION
|
||||
ruby 3.4.3p32
|
||||
ruby 3.4.4p34
|
||||
|
||||
BUNDLED WITH
|
||||
2.6.7
|
||||
|
||||
@ -5,4 +5,7 @@
|
||||
NO_AUTOBUMP_REASONS_LIST = T.let({
|
||||
incompatible_version_format: "incompatible version format",
|
||||
bumped_by_upstream: "bumped by upstream",
|
||||
extract_plist: "livecheck uses `:extract_plist` strategy",
|
||||
latest_version: "`version` is set to `:latest`",
|
||||
requires_manual_review: "a manual review of this package is required for inclusion in autobump",
|
||||
}.freeze, T::Hash[Symbol, String])
|
||||
|
||||
@ -11,6 +11,9 @@ module Homebrew
|
||||
|
||||
sig { params(args: String, type: Symbol, global: T::Boolean, file: String).void }
|
||||
def add(*args, type:, global:, file:)
|
||||
brewfile_path = Brewfile.path(global:, file:)
|
||||
brewfile_path.write("") unless brewfile_path.exist?
|
||||
|
||||
brewfile = Brewfile.read(global:, file:)
|
||||
content = brewfile.input
|
||||
# TODO: - support `:describe`
|
||||
|
||||
@ -41,7 +41,7 @@ module Homebrew
|
||||
case v
|
||||
when TrueClass
|
||||
"--#{k}"
|
||||
when FalseClass
|
||||
when FalseClass, NilClass
|
||||
nil
|
||||
else
|
||||
"--#{k}=#{v}"
|
||||
|
||||
@ -25,13 +25,14 @@ module Homebrew
|
||||
Homebrew::Bundle::BrewServices.reset!
|
||||
end
|
||||
|
||||
def self.run(global: false, file: nil, force: false, zap: false, dsl: nil)
|
||||
def self.run(global: false, file: nil, force: false, zap: false, dsl: nil,
|
||||
brews: true, casks: true, taps: true, vscode: true)
|
||||
@dsl ||= dsl
|
||||
|
||||
casks = casks_to_uninstall(global:, file:)
|
||||
formulae = formulae_to_uninstall(global:, file:)
|
||||
taps = taps_to_untap(global:, file:)
|
||||
vscode_extensions = vscode_extensions_to_uninstall(global:, file:)
|
||||
casks = casks ? casks_to_uninstall(global:, file:) : []
|
||||
formulae = brews ? formulae_to_uninstall(global:, file:) : []
|
||||
taps = taps ? taps_to_untap(global:, file:) : []
|
||||
vscode_extensions = vscode ? vscode_extensions_to_uninstall(global:, file:) : []
|
||||
if force
|
||||
if casks.any?
|
||||
args = zap ? ["--zap"] : []
|
||||
|
||||
@ -178,7 +178,9 @@ module Homebrew
|
||||
exit_code = 0
|
||||
run_services(@dsl.entries) do
|
||||
Kernel.system(*args)
|
||||
exit_code = $CHILD_STATUS.exitstatus
|
||||
if (system_exit_code = $CHILD_STATUS&.exitstatus)
|
||||
exit_code = system_exit_code
|
||||
end
|
||||
end
|
||||
exit!(exit_code)
|
||||
else
|
||||
|
||||
@ -42,7 +42,7 @@ module Homebrew
|
||||
def cask_args(args)
|
||||
raise "cask_args(#{args.inspect}) should be a Hash object" unless args.is_a? Hash
|
||||
|
||||
@cask_arguments = args
|
||||
@cask_arguments.merge!(args)
|
||||
end
|
||||
|
||||
def brew(name, options = {})
|
||||
|
||||
@ -464,9 +464,9 @@ module Cask
|
||||
args: paths,
|
||||
print_stderr: Homebrew::EnvConfig.developer?
|
||||
|
||||
trashed, = stdout.partition("\n")
|
||||
trashed = trashed.split(":") & paths
|
||||
untrashable = paths - trashed
|
||||
trashed, _, untrashable = stdout.partition("\n")
|
||||
trashed = trashed.split(":")
|
||||
untrashable = untrashable.split(":")
|
||||
|
||||
trashed_with_permissions, untrashable = untrashable.partition do |path|
|
||||
Utils.gain_permissions(path, ["-R"], SystemCommand) do
|
||||
|
||||
@ -6,11 +6,6 @@ require "cask/artifact/symlinked"
|
||||
module Cask
|
||||
module Artifact
|
||||
class ShellCompletion < Symlinked
|
||||
sig { params(cask: Cask, source: T.any(String, Pathname)).returns(ShellCompletion) }
|
||||
def self.from_args(cask, source)
|
||||
new(cask, source)
|
||||
end
|
||||
|
||||
sig { params(_: T.any(String, Pathname)).returns(Pathname) }
|
||||
def resolve_target(_)
|
||||
raise CaskInvalidError, "Shell completion without shell info"
|
||||
|
||||
@ -606,7 +606,10 @@ module Cask
|
||||
def audit_rosetta
|
||||
return if (url = cask.url).nil?
|
||||
return unless online?
|
||||
# Rosetta 2 is only for ARM-capable macOS versions, which are Big Sur (11.x) and later
|
||||
return if Homebrew::SimulateSystem.current_arch != :arm
|
||||
return if MacOSVersion::SYMBOLS.fetch(Homebrew::SimulateSystem.current_os, "10") < "11"
|
||||
return if cask.depends_on.macos&.maximum_version.to_s < "11"
|
||||
|
||||
odebug "Auditing Rosetta 2 requirement"
|
||||
|
||||
@ -640,7 +643,7 @@ module Cask
|
||||
# binary stanza can contain shell scripts, so we just continue if lipo fails.
|
||||
next unless result.success?
|
||||
|
||||
odebug result.merged_output
|
||||
odebug "Architectures: #{result.merged_output}"
|
||||
|
||||
unless /arm64|x86_64/.match?(result.merged_output)
|
||||
add_error "Artifacts architecture is no longer supported by macOS!",
|
||||
@ -652,7 +655,7 @@ module Cask
|
||||
mentions_rosetta = cask.caveats.include?("requires Rosetta 2")
|
||||
|
||||
if supports_arm && mentions_rosetta
|
||||
add_error "Artifacts does not require Rosetta 2 but the caveats say otherwise!",
|
||||
add_error "Artifacts do not require Rosetta 2 but the caveats say otherwise!",
|
||||
location: url.location
|
||||
elsif !supports_arm && !mentions_rosetta
|
||||
add_error "Artifacts require Rosetta 2 but this is not indicated by the caveats!",
|
||||
|
||||
@ -351,6 +351,8 @@ module Cask
|
||||
raise CaskInvalidError.new(cask, "invalid 'version' value: #{arg.inspect}")
|
||||
end
|
||||
|
||||
no_autobump! because: :latest_version if arg == :latest
|
||||
|
||||
DSL::Version.new(arg)
|
||||
end
|
||||
end
|
||||
@ -536,6 +538,8 @@ module Cask
|
||||
|
||||
@livecheck_defined = true
|
||||
@livecheck.instance_eval(&block)
|
||||
no_autobump! because: :extract_plist if @livecheck.strategy == :extract_plist
|
||||
@livecheck
|
||||
end
|
||||
|
||||
# Whether the cask contains a `livecheck` block. This is a legacy alias
|
||||
|
||||
@ -11,8 +11,6 @@ require "cask/migrator"
|
||||
require "cask/quarantine"
|
||||
require "cask/tab"
|
||||
|
||||
require "cgi"
|
||||
|
||||
module Cask
|
||||
# Installer for a {Cask}.
|
||||
class Installer
|
||||
|
||||
@ -169,7 +169,7 @@ module Homebrew
|
||||
T::Boolean)
|
||||
odisabled(
|
||||
"`brew #{@command_name}'. This command needs to be refactored, as it is written in a style that",
|
||||
"inherits from `Homebrew::AbstractCommand' ( see https://docs.brew.sh/External-Commands )",
|
||||
"subclassing of `Homebrew::AbstractCommand' ( see https://docs.brew.sh/External-Commands )",
|
||||
disable_for_developers: false,
|
||||
)
|
||||
end
|
||||
|
||||
@ -102,17 +102,17 @@ module Homebrew
|
||||
switch "--all",
|
||||
description: "`list` all dependencies."
|
||||
switch "--formula", "--brews",
|
||||
description: "`list` or `dump` Homebrew formula dependencies."
|
||||
description: "`list`, `dump` or `cleanup` Homebrew formula dependencies."
|
||||
switch "--cask", "--casks",
|
||||
description: "`list` or `dump` Homebrew cask dependencies."
|
||||
description: "`list`, `dump` or `cleanup` Homebrew cask dependencies."
|
||||
switch "--tap", "--taps",
|
||||
description: "`list` or `dump` Homebrew tap dependencies."
|
||||
description: "`list`, `dump` or `cleanup` Homebrew tap dependencies."
|
||||
switch "--mas",
|
||||
description: "`list` or `dump` Mac App Store dependencies."
|
||||
switch "--whalebrew",
|
||||
description: "`list` or `dump` Whalebrew dependencies."
|
||||
switch "--vscode",
|
||||
description: "`list` or `dump` VSCode (and forks/variants) extensions."
|
||||
description: "`list`, `dump` or `cleanup` VSCode (and forks/variants) extensions."
|
||||
switch "--no-vscode",
|
||||
env: :bundle_dump_no_vscode,
|
||||
description: "`dump` without VSCode (and forks/variants) extensions. " \
|
||||
@ -226,7 +226,13 @@ module Homebrew
|
||||
exec_editor(Homebrew::Bundle::Brewfile.path(global:, file:))
|
||||
when "cleanup"
|
||||
require "bundle/commands/cleanup"
|
||||
Homebrew::Bundle::Commands::Cleanup.run(global:, file:, force:, zap:)
|
||||
Homebrew::Bundle::Commands::Cleanup.run(
|
||||
global:, file:, force:, zap:,
|
||||
brews: args.brews? || no_type_args,
|
||||
casks: args.casks? || no_type_args,
|
||||
taps: args.taps? || no_type_args,
|
||||
vscode: args.vscode? || no_type_args
|
||||
)
|
||||
when "check"
|
||||
require "bundle/commands/check"
|
||||
Homebrew::Bundle::Commands::Check.run(global:, file:, no_upgrade:, verbose:)
|
||||
|
||||
@ -215,7 +215,7 @@ module Homebrew
|
||||
sig { void }
|
||||
def list_casks
|
||||
casks = if args.no_named?
|
||||
cask_paths = Cask::Caskroom.path.children.map do |path|
|
||||
cask_paths = Cask::Caskroom.path.children.reject(&:file?).map do |path|
|
||||
if path.symlink?
|
||||
real_path = path.realpath
|
||||
real_path.basename.to_s
|
||||
|
||||
@ -261,7 +261,7 @@ module Homebrew
|
||||
def upgrade_outdated_casks(casks)
|
||||
return false if args.formula?
|
||||
|
||||
Install.ask_casks casks
|
||||
Install.ask_casks casks if args.ask?
|
||||
|
||||
Cask::Upgrade.upgrade_casks(
|
||||
*casks,
|
||||
|
||||
@ -49,7 +49,6 @@ module Homebrew
|
||||
description: "Use the specified GitHub organization for forking."
|
||||
|
||||
conflicts "--dry-run", "--write"
|
||||
conflicts "--no-audit", "--online"
|
||||
conflicts "--version=", "--version-arm="
|
||||
conflicts "--version=", "--version-intel="
|
||||
|
||||
@ -85,7 +84,9 @@ module Homebrew
|
||||
method or 'livecheck' block with 'skip'.)
|
||||
EOS
|
||||
|
||||
odie "You have too many PRs open: close or merge some first!" if GitHub.too_many_open_prs?(cask.tap)
|
||||
if !args.write_only? && GitHub.too_many_open_prs?(cask.tap)
|
||||
odie "You have too many PRs open: close or merge some first!"
|
||||
end
|
||||
|
||||
new_version = BumpVersionParser.new(
|
||||
general: args.version,
|
||||
@ -113,7 +114,7 @@ module Homebrew
|
||||
raise UsageError, "No `--version`, `--url` or `--sha256` argument specified!"
|
||||
end
|
||||
|
||||
check_pull_requests(cask, new_version:)
|
||||
check_pull_requests(cask, new_version:) unless args.write_only?
|
||||
|
||||
replacement_pairs ||= []
|
||||
branch_name = "bump-#{cask.token}"
|
||||
@ -136,7 +137,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
if new_version.present?
|
||||
# For simplicity, our naming defers to the arm version if we multiple architectures are specified
|
||||
# For simplicity, our naming defers to the arm version if multiple architectures are specified
|
||||
branch_version = new_version.arm || new_version.general
|
||||
if branch_version.is_a?(Cask::DSL::Version)
|
||||
commit_version = shortened_version(branch_version, cask:)
|
||||
@ -171,7 +172,7 @@ module Homebrew
|
||||
pr_title: commit_message,
|
||||
}
|
||||
|
||||
GitHub.create_bump_pr(pr_info, args:)
|
||||
GitHub.create_bump_pr(pr_info, args:) unless args.write_only?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@ -121,7 +121,9 @@ module Homebrew
|
||||
method or 'livecheck' block with 'skip'.)
|
||||
EOS
|
||||
|
||||
odie "You have too many PRs open: close or merge some first!" if GitHub.too_many_open_prs?(tap)
|
||||
if !args.write_only? && GitHub.too_many_open_prs?(tap)
|
||||
odie "You have too many PRs open: close or merge some first!"
|
||||
end
|
||||
|
||||
formula_spec = formula.stable
|
||||
odie "#{formula}: no stable specification found!" if formula_spec.blank?
|
||||
@ -135,7 +137,7 @@ module Homebrew
|
||||
remote_branch = tap.git_repository.origin_branch_name
|
||||
previous_branch = "-"
|
||||
|
||||
check_pull_requests(formula, tap_remote_repo, state: "open")
|
||||
check_pull_requests(formula, tap_remote_repo, state: "open") unless args.write_only?
|
||||
|
||||
all_formulae = []
|
||||
if args.bump_synced.present?
|
||||
@ -159,6 +161,7 @@ module Homebrew
|
||||
|
||||
new_url = args.url
|
||||
new_version = args.version
|
||||
|
||||
check_new_version(commit_formula, tap_remote_repo, version: new_version) if new_version.present?
|
||||
|
||||
opoo "This formula has patches that may be resolved upstream." if commit_formula.patchlist.present?
|
||||
@ -174,6 +177,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
old_hash = commit_formula_spec.checksum&.hexdigest
|
||||
|
||||
new_hash = args.sha256
|
||||
new_tag = args.tag
|
||||
new_revision = args.revision
|
||||
@ -213,10 +217,9 @@ module Homebrew
|
||||
elsif new_url.blank? && new_version.blank?
|
||||
raise UsageError, "#{commit_formula}: no `--url` or `--version` argument specified!"
|
||||
else
|
||||
next unless new_version.present?
|
||||
new_url ||= PyPI.update_pypi_url(old_url, new_version) if new_version.present?
|
||||
|
||||
new_url ||= PyPI.update_pypi_url(old_url, new_version)
|
||||
if new_url.blank?
|
||||
if new_url.blank? && new_version.present?
|
||||
new_url = update_url(old_url, old_version, new_version)
|
||||
if new_mirrors.blank? && old_mirrors.present?
|
||||
new_mirrors = old_mirrors.map do |old_mirror|
|
||||
@ -231,6 +234,9 @@ module Homebrew
|
||||
#{new_url}
|
||||
EOS
|
||||
end
|
||||
if new_url.blank?
|
||||
odie "There was an issue generating the updated url, you may need to create the PR manually"
|
||||
end
|
||||
check_new_version(commit_formula, tap_remote_repo, url: new_url) if new_version.blank?
|
||||
resource_path, forced_version = fetch_resource_and_forced_version(commit_formula, new_version, new_url)
|
||||
Utils::Tar.validate_file(resource_path)
|
||||
@ -395,10 +401,14 @@ module Homebrew
|
||||
|
||||
if github_release_data.present?
|
||||
pre = "pre" if github_release_data["prerelease"].present?
|
||||
# maximum length of PR body is 65,536 characters so let's truncate release notes to half of that.
|
||||
body = Formatter.truncate(github_release_data["body"], max: 32_768)
|
||||
|
||||
formula_pr_message += <<~XML
|
||||
<details>
|
||||
<summary>#{pre}release notes</summary>
|
||||
<pre>#{github_release_data["body"]}</pre>
|
||||
<pre>#{body}</pre>
|
||||
<p>View the full release notes at #{github_release_data["html_url"]}.</p>
|
||||
</details>
|
||||
XML
|
||||
end
|
||||
@ -407,7 +417,7 @@ module Homebrew
|
||||
{
|
||||
sourcefile_path: commit_formula.path,
|
||||
old_contents:,
|
||||
commit_message: "#{commit_formula.name} #{args.version}",
|
||||
commit_message: "#{commit_formula.name} #{new_formula_version}",
|
||||
additional_files: alias_rename,
|
||||
formula_pr_message:,
|
||||
formula_name: commit_formula.name,
|
||||
@ -426,7 +436,7 @@ module Homebrew
|
||||
# If `brew audit` fails, revert the changes made to any formula.
|
||||
commits.each do |revert|
|
||||
revert_formula = Formula[revert[:formula_name]]
|
||||
revert_formula.path.atomic_write(revert[:old_contents]) unless args.dry_run?
|
||||
revert_formula.path.atomic_write(revert[:old_contents]) if !args.dry_run? && !args.write_only?
|
||||
revert_alias_rename = revert[:additional_files]
|
||||
if revert_alias_rename && (source = revert_alias_rename.first) && (destination = revert_alias_rename.last)
|
||||
FileUtils.mv source, destination
|
||||
@ -437,6 +447,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
new_formula_version = T.must(commits.first)[:new_version]
|
||||
|
||||
pr_title = if args.bump_synced.nil?
|
||||
"#{formula.name} #{new_formula_version}"
|
||||
else
|
||||
@ -462,7 +473,7 @@ module Homebrew
|
||||
tap_remote_repo:,
|
||||
pr_message:,
|
||||
}
|
||||
GitHub.create_bump_pr(pr_info, args:)
|
||||
GitHub.create_bump_pr(pr_info, args:) unless args.write_only?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@ -20,6 +20,8 @@ module Homebrew
|
||||
EOS
|
||||
switch "--autotools",
|
||||
description: "Create a basic template for an Autotools-style build."
|
||||
switch "--cabal",
|
||||
description: "Create a basic template for a Cabal build."
|
||||
switch "--cask",
|
||||
description: "Create a basic template for a cask."
|
||||
switch "--cmake",
|
||||
@ -59,7 +61,7 @@ module Homebrew
|
||||
switch "-f", "--force",
|
||||
description: "Ignore errors for disallowed formula names and names that shadow aliases."
|
||||
|
||||
conflicts "--autotools", "--cmake", "--crystal", "--go", "--meson", "--node",
|
||||
conflicts "--autotools", "--cabal", "--cmake", "--crystal", "--go", "--meson", "--node",
|
||||
"--perl", "--python", "--ruby", "--rust", "--zig", "--cask"
|
||||
conflicts "--cask", "--HEAD"
|
||||
conflicts "--cask", "--set-license"
|
||||
@ -163,6 +165,8 @@ module Homebrew
|
||||
:crystal
|
||||
elsif args.go?
|
||||
:go
|
||||
elsif args.cabal?
|
||||
:cabal
|
||||
elsif args.meson?
|
||||
:meson
|
||||
elsif args.node?
|
||||
|
||||
@ -44,22 +44,25 @@ module Homebrew
|
||||
|
||||
Cask::Cask.generating_hash!
|
||||
|
||||
tap.cask_files.each do |path|
|
||||
cask = Cask::CaskLoader.load(path)
|
||||
name = cask.token
|
||||
json = JSON.pretty_generate(cask.to_hash_with_variations)
|
||||
cask_source = path.read
|
||||
html_template_name = html_template(name)
|
||||
latest_macos = MacOSVersion.new((HOMEBREW_MACOS_NEWEST_UNSUPPORTED.to_i - 1).to_s).to_sym
|
||||
Homebrew::SimulateSystem.with(os: latest_macos, arch: :arm) do
|
||||
tap.cask_files.each do |path|
|
||||
cask = Cask::CaskLoader.load(path)
|
||||
name = cask.token
|
||||
json = JSON.pretty_generate(cask.to_hash_with_variations)
|
||||
cask_source = path.read
|
||||
html_template_name = html_template(name)
|
||||
|
||||
unless args.dry_run?
|
||||
File.write("_data/cask/#{name.tr("+", "_")}.json", "#{json}\n")
|
||||
File.write("api/cask/#{name}.json", CASK_JSON_TEMPLATE)
|
||||
File.write("api/cask-source/#{name}.rb", cask_source)
|
||||
File.write("cask/#{name}.html", html_template_name)
|
||||
unless args.dry_run?
|
||||
File.write("_data/cask/#{name.tr("+", "_")}.json", "#{json}\n")
|
||||
File.write("api/cask/#{name}.json", CASK_JSON_TEMPLATE)
|
||||
File.write("api/cask-source/#{name}.rb", cask_source)
|
||||
File.write("cask/#{name}.html", html_template_name)
|
||||
end
|
||||
rescue
|
||||
onoe "Error while generating data for cask '#{path.stem}'."
|
||||
raise
|
||||
end
|
||||
rescue
|
||||
onoe "Error while generating data for cask '#{path.stem}'."
|
||||
raise
|
||||
end
|
||||
|
||||
canonical_json = JSON.pretty_generate(tap.cask_renames)
|
||||
|
||||
@ -44,20 +44,23 @@ module Homebrew
|
||||
Formulary.enable_factory_cache!
|
||||
Formula.generating_hash!
|
||||
|
||||
tap.formula_names.each do |name|
|
||||
formula = Formulary.factory(name)
|
||||
name = formula.name
|
||||
json = JSON.pretty_generate(formula.to_hash_with_variations)
|
||||
html_template_name = html_template(name)
|
||||
latest_macos = MacOSVersion.new((HOMEBREW_MACOS_NEWEST_UNSUPPORTED.to_i - 1).to_s).to_sym
|
||||
Homebrew::SimulateSystem.with(os: latest_macos, arch: :arm) do
|
||||
tap.formula_names.each do |name|
|
||||
formula = Formulary.factory(name)
|
||||
name = formula.name
|
||||
json = JSON.pretty_generate(formula.to_hash_with_variations)
|
||||
html_template_name = html_template(name)
|
||||
|
||||
unless args.dry_run?
|
||||
File.write("_data/formula/#{name.tr("+", "_")}.json", "#{json}\n")
|
||||
File.write("api/formula/#{name}.json", FORMULA_JSON_TEMPLATE)
|
||||
File.write("formula/#{name}.html", html_template_name)
|
||||
unless args.dry_run?
|
||||
File.write("_data/formula/#{name.tr("+", "_")}.json", "#{json}\n")
|
||||
File.write("api/formula/#{name}.json", FORMULA_JSON_TEMPLATE)
|
||||
File.write("formula/#{name}.html", html_template_name)
|
||||
end
|
||||
rescue
|
||||
onoe "Error while generating data for formula '#{name}'."
|
||||
raise
|
||||
end
|
||||
rescue
|
||||
onoe "Error while generating data for formula '#{name}'."
|
||||
raise
|
||||
end
|
||||
|
||||
canonical_json = JSON.pretty_generate(tap.formula_renames.merge(tap.alias_table))
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "abstract_command"
|
||||
require "fileutils"
|
||||
|
||||
module Homebrew
|
||||
module DevCmd
|
||||
|
||||
@ -126,7 +126,7 @@ module Homebrew
|
||||
echo "::add-mask::${base64_token}"
|
||||
echo "token=${base64_token}" >> "${GITHUB_OUTPUT}"
|
||||
<% end -%>
|
||||
- run: brew test-bot --only-formulae<% if root_url %> --root-url='<%= root_url %>'<% end %>
|
||||
- run: brew test-bot --only-formulae#{" --root-url=#{root_url}" if root_url}
|
||||
if: github.event_name == 'pull_request'
|
||||
<% if args.github_packages? -%>
|
||||
env:
|
||||
|
||||
@ -60,6 +60,7 @@ module Homebrew
|
||||
HOMEBREW_LIBRARY_PATH.cd do
|
||||
if update
|
||||
workers = args.debug? ? ["--workers=1"] : []
|
||||
safe_system "bundle", "exec", "tapioca", "annotations"
|
||||
safe_system "bundle", "exec", "tapioca", "dsl", *workers
|
||||
# Prefer adding args here: Library/Homebrew/sorbet/tapioca/config.yml
|
||||
tapioca_args = args.update_all? ? ["--all"] : []
|
||||
|
||||
@ -21,12 +21,22 @@ module Homebrew
|
||||
|
||||
sig { override.void }
|
||||
def run
|
||||
# Needed for Manpages.regenerate_man_pages below
|
||||
Homebrew.install_bundler_gems!(groups: ["man"])
|
||||
|
||||
# We assume that only public members wish to be included in the README
|
||||
public_members = GitHub.public_member_usernames("Homebrew")
|
||||
maintainers = GitHub.members_by_team("Homebrew", "maintainers")
|
||||
|
||||
# Not all PLC members are Homebrew GitHub organisation members any more
|
||||
non_maintainer_plc_members = {
|
||||
colindean: "Colin Dean",
|
||||
mozzadrella: "Vanessa Gennarelli",
|
||||
}.transform_keys(&:to_s)
|
||||
public_members += non_maintainer_plc_members.keys
|
||||
|
||||
members = {
|
||||
plc: GitHub.members_by_team("Homebrew", "plc"),
|
||||
plc: GitHub.members_by_team("Homebrew", "plc").merge(non_maintainer_plc_members),
|
||||
tsc: GitHub.members_by_team("Homebrew", "tsc"),
|
||||
maintainers:,
|
||||
}
|
||||
|
||||
@ -5,7 +5,6 @@ require "json"
|
||||
require "time"
|
||||
require "unpack_strategy"
|
||||
require "lazy_object"
|
||||
require "cgi"
|
||||
require "lock_file"
|
||||
require "system_command"
|
||||
|
||||
@ -384,9 +383,12 @@ class AbstractFileDownloadStrategy < AbstractDownloadStrategy
|
||||
if url.match?(URI::DEFAULT_PARSER.make_regexp)
|
||||
uri = URI(url)
|
||||
|
||||
if uri.query
|
||||
query_params = CGI.parse(uri.query)
|
||||
query_params["response-content-disposition"].each do |param|
|
||||
if (uri_query = uri.query.presence)
|
||||
URI.decode_www_form(uri_query).each do |key, param|
|
||||
components[:query] << param if search_query
|
||||
|
||||
next if key != "response-content-disposition"
|
||||
|
||||
query_basename = param[/attachment;\s*filename=(["']?)(.+)\1/i, 2]
|
||||
return File.basename(query_basename) if query_basename
|
||||
end
|
||||
@ -397,10 +399,6 @@ class AbstractFileDownloadStrategy < AbstractDownloadStrategy
|
||||
URI::DEFAULT_PARSER.unescape(part).presence
|
||||
end
|
||||
end
|
||||
|
||||
if search_query && (uri_query = uri.query.presence)
|
||||
components[:query] = URI.decode_www_form(uri_query).map { _2 }
|
||||
end
|
||||
else
|
||||
components[:path] = [url]
|
||||
end
|
||||
@ -705,7 +703,12 @@ class CurlGitHubPackagesDownloadStrategy < CurlDownloadStrategy
|
||||
meta[:headers] ||= []
|
||||
# GitHub Packages authorization header.
|
||||
# HOMEBREW_GITHUB_PACKAGES_AUTH set in brew.sh
|
||||
meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}"
|
||||
# If using a private GHCR mirror with no Authentication set then do not add the header. In all other cases add it.
|
||||
if !Homebrew::EnvConfig.artifact_domain.presence ||
|
||||
Homebrew::EnvConfig.docker_registry_basic_auth_token.presence ||
|
||||
Homebrew::EnvConfig.docker_registry_token.presence
|
||||
meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}"
|
||||
end
|
||||
super
|
||||
end
|
||||
|
||||
|
||||
@ -8,9 +8,9 @@ certifi==2025.4.26 \
|
||||
--hash=sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6 \
|
||||
--hash=sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3
|
||||
# via influxdb3-python
|
||||
influxdb3-python==0.12.0 \
|
||||
--hash=sha256:991f756528280b376db162e26ad80096168917f294d62f449a70257e65014c03 \
|
||||
--hash=sha256:d82ec4193257e49ba7fee1dee940c951c949a8557d0cf2f7b9f817f940ebcf34
|
||||
influxdb3-python==0.13.0 \
|
||||
--hash=sha256:616ee767286a81b6f575ea3de097bc095db724262586231ca8d7567dd2377a30 \
|
||||
--hash=sha256:c039638fcb44dd7c9433ab19e8f05bb782fa13989cb8c74d90e1291ebcc67b3b
|
||||
# via -r requirements.in
|
||||
pyarrow==20.0.0 \
|
||||
--hash=sha256:00138f79ee1b5aca81e2bdedb91e3739b987245e11fa3c826f9e57c5d102fb75 \
|
||||
@ -91,7 +91,7 @@ urllib3==2.4.0 \
|
||||
# via influxdb3-python
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
setuptools==80.3.1 \
|
||||
--hash=sha256:31e2c58dbb67c99c289f51c16d899afedae292b978f8051efaf6262d8212f927 \
|
||||
--hash=sha256:ea8e00d7992054c4c592aeb892f6ad51fe1b4d90cc6947cc45c45717c40ec537
|
||||
setuptools==80.8.0 \
|
||||
--hash=sha256:49f7af965996f26d43c8ae34539c8d99c5042fbff34302ea151eaa9c207cd257 \
|
||||
--hash=sha256:95a60484590d24103af13b686121328cc2736bee85de8936383111e421b9edc0
|
||||
# via influxdb3-python
|
||||
|
||||
@ -2126,7 +2126,7 @@ class Formula
|
||||
bash: bash_completion/base_name,
|
||||
zsh: zsh_completion/"_#{base_name}",
|
||||
fish: fish_completion/"#{base_name}.fish",
|
||||
pwsh: pwsh_completion/"#{base_name}.ps1",
|
||||
pwsh: pwsh_completion/"_#{base_name}.ps1",
|
||||
}
|
||||
|
||||
shells.each do |shell|
|
||||
|
||||
@ -84,7 +84,10 @@ module Homebrew
|
||||
r.owner = self
|
||||
filepath = r.fetch
|
||||
html_doctype_prefix = "<!doctype html"
|
||||
if File.read(filepath, html_doctype_prefix.length).downcase.start_with?(html_doctype_prefix)
|
||||
# Number of bytes to read from file start to ensure it is not HTML.
|
||||
# HTML may start with arbitrary number of whitespace lines.
|
||||
bytes_to_read = 100
|
||||
if File.read(filepath, bytes_to_read).strip.downcase.start_with?(html_doctype_prefix)
|
||||
raise "Downloaded URL is not archive"
|
||||
end
|
||||
|
||||
@ -138,7 +141,10 @@ module Homebrew
|
||||
head "#{@url}"
|
||||
<% end %>
|
||||
|
||||
<% if @mode == :cmake %>
|
||||
<% if @mode == :cabal %>
|
||||
depends_on "cabal-install" => :build
|
||||
depends_on "ghc" => :build
|
||||
<% elsif @mode == :cmake %>
|
||||
depends_on "cmake" => :build
|
||||
<% elsif @mode == :crystal %>
|
||||
depends_on "crystal" => :build
|
||||
@ -172,7 +178,10 @@ module Homebrew
|
||||
|
||||
<% end %>
|
||||
def install
|
||||
<% if @mode == :cmake %>
|
||||
<% if @mode == :cabal %>
|
||||
system "cabal", "v2-update"
|
||||
system "cabal", "v2-install", *std_cabal_v2_args
|
||||
<% elsif @mode == :cmake %>
|
||||
system "cmake", "-S", ".", "-B", "build", *std_cmake_args
|
||||
system "cmake", "--build", "build"
|
||||
system "cmake", "--install", "build"
|
||||
@ -216,11 +225,14 @@ module Homebrew
|
||||
<% elsif @mode == :python %>
|
||||
virtualenv_install_with_resources
|
||||
<% elsif @mode == :ruby %>
|
||||
ENV["BUNDLE_VERSION"] = "system" # Avoid installing Bundler into the keg
|
||||
ENV["GEM_HOME"] = libexec
|
||||
|
||||
system "bundle", "install", "-without", "development", "test"
|
||||
system "bundle", "config", "set", "without", "development", "test"
|
||||
system "bundle", "install"
|
||||
system "gem", "build", "\#{name}.gemspec"
|
||||
system "gem", "install", "\#{name}-\#{version}.gem"
|
||||
|
||||
bin.install libexec/"bin/\#{name}"
|
||||
bin.env_script_all_files(libexec/"bin", GEM_HOME: ENV["GEM_HOME"])
|
||||
<% elsif @mode == :rust %>
|
||||
|
||||
@ -68,14 +68,14 @@ module Homebrew
|
||||
# `/get/` archives are Git tag snapshots, so we need to check that tab
|
||||
# instead of the main `/downloads/` page
|
||||
if match[:dl_type] == "get"
|
||||
values[:url] = "https://bitbucket.org/#{match[:path]}/downloads/?tab=tags"
|
||||
values[:url] = "https://bitbucket.org/#{match[:path]}/downloads/?tab=tags&iframe=true&spa=0"
|
||||
|
||||
# Example tag regexes:
|
||||
# * `/<td[^>]*?class="name"[^>]*?>\s*v?(\d+(?:\.\d+)+)\s*?</im`
|
||||
# * `/<td[^>]*?class="name"[^>]*?>\s*abc-v?(\d+(?:\.\d+)+)\s*?</im`
|
||||
values[:regex] = /<td[^>]*?class="name"[^>]*?>\s*#{regex_prefix}v?(\d+(?:\.\d+)+)\s*?</im
|
||||
else
|
||||
values[:url] = "https://bitbucket.org/#{match[:path]}/downloads/"
|
||||
values[:url] = "https://bitbucket.org/#{match[:path]}/downloads/?iframe=true&spa=0"
|
||||
|
||||
# Use `\.t` instead of specific tarball extensions (e.g. .tar.gz)
|
||||
suffix = T.must(match[:suffix]).sub(Strategy::TARBALL_EXTENSION_REGEX, ".t")
|
||||
|
||||
@ -68,6 +68,13 @@ class MacOSRequirement < Requirement
|
||||
@version
|
||||
end
|
||||
|
||||
def maximum_version
|
||||
return MacOSVersion.new(HOMEBREW_MACOS_NEWEST_UNSUPPORTED) if @comparator == ">=" || !version_specified?
|
||||
return @version.max if @version.respond_to?(:to_ary)
|
||||
|
||||
@version
|
||||
end
|
||||
|
||||
def allows?(other)
|
||||
return true unless version_specified?
|
||||
|
||||
|
||||
@ -40,6 +40,9 @@ module RuboCop
|
||||
:installer,
|
||||
:binary,
|
||||
:manpage,
|
||||
:bash_completion,
|
||||
:fish_completion,
|
||||
:zsh_completion,
|
||||
:colorpicker,
|
||||
:dictionary,
|
||||
:font,
|
||||
|
||||
@ -59,6 +59,15 @@ module RuboCop
|
||||
problem "GitHub patches should end with .patch, not .diff: #{patch_url}"
|
||||
end
|
||||
|
||||
bitbucket_regex = %r{bitbucket\.org/([^/]+)/([^/]+)/commits/([a-f0-9]+)/raw}i
|
||||
if regex_match_group(patch_url_node, bitbucket_regex)
|
||||
owner, repo, commit = patch_url_node.source.match(bitbucket_regex).captures
|
||||
correct_url = "https://api.bitbucket.org/2.0/repositories/#{owner}/#{repo}/diff/#{commit}"
|
||||
problem "Bitbucket patches should use the api url: #{correct_url}" do |corrector|
|
||||
corrector.replace(patch_url_node.source_range, %Q("#{correct_url}"))
|
||||
end
|
||||
end
|
||||
|
||||
# Only .diff passes `--full-index` to `git diff` and there is no documented way
|
||||
# to get .patch to behave the same for GitLab.
|
||||
if regex_match_group(patch_url_node, %r{.*gitlab.*/commit/[a-fA-F0-9]*\.patch})
|
||||
|
||||
@ -35,6 +35,12 @@ module RuboCop
|
||||
def audit_url(type, urls, mirrors, livecheck_url: false)
|
||||
@type = type
|
||||
|
||||
# URLs must be ASCII; IDNs must be punycode
|
||||
ascii_pattern = /[^\p{ASCII}]+/
|
||||
audit_urls(urls, ascii_pattern) do |_, url|
|
||||
problem "Please use the ASCII (Punycode encoded host, URL-encoded path and query) version of #{url}."
|
||||
end
|
||||
|
||||
# GNU URLs; doesn't apply to mirrors
|
||||
gnu_pattern = %r{^(?:https?|ftp)://ftpmirror\.gnu\.org/(.*)}
|
||||
audit_urls(urls, gnu_pattern) do |match, url|
|
||||
|
||||
1
Library/Homebrew/sorbet/rbi/annotations/.gitattributes
vendored
Normal file
1
Library/Homebrew/sorbet/rbi/annotations/.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
||||
**/*.rbi linguist-vendored=true
|
||||
119
Library/Homebrew/sorbet/rbi/annotations/minitest.rbi
vendored
Normal file
119
Library/Homebrew/sorbet/rbi/annotations/minitest.rbi
vendored
Normal file
@ -0,0 +1,119 @@
|
||||
# typed: true
|
||||
|
||||
# DO NOT EDIT MANUALLY
|
||||
# This file was pulled from a central RBI files repository.
|
||||
# Please run `bin/tapioca annotations` to update it.
|
||||
|
||||
module Minitest::Assertions
|
||||
sig { params(test: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert(test, msg = nil); end
|
||||
|
||||
sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert_empty(obj, msg = nil); end
|
||||
|
||||
sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert_equal(exp, act, msg = nil); end
|
||||
|
||||
sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) }
|
||||
def assert_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end
|
||||
|
||||
sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) }
|
||||
def assert_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end
|
||||
|
||||
sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert_includes(collection, obj, msg = nil); end
|
||||
|
||||
sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert_instance_of(cls, obj, msg = nil); end
|
||||
|
||||
sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert_kind_of(cls, obj, msg = nil); end
|
||||
|
||||
sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(MatchData) }
|
||||
def assert_match(matcher, obj, msg = nil); end
|
||||
|
||||
sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert_nil(obj, msg = nil); end
|
||||
|
||||
sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end
|
||||
|
||||
sig { params(stdout: T.nilable(T.any(String, Regexp)), stderr: T.nilable(T.any(String, Regexp)), block: T.proc.void).returns(T::Boolean) }
|
||||
def assert_output(stdout = nil, stderr = nil, &block); end
|
||||
|
||||
sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) }
|
||||
def assert_path_exists(path, msg = nil); end
|
||||
|
||||
sig { params(block: T.proc.void).returns(TrueClass) }
|
||||
def assert_pattern(&block); end
|
||||
|
||||
sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) }
|
||||
def assert_predicate(o1, op, msg = nil); end
|
||||
|
||||
sig { params(exp: NilClass, block: T.proc.void).returns(StandardError) }
|
||||
sig { type_parameters(:T).params(exp: T.any(T::Class[T.type_parameter(:T)], Regexp, String), block: T.proc.void).returns(T.type_parameter(:T)) }
|
||||
def assert_raises(*exp, &block); end
|
||||
|
||||
sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) }
|
||||
def assert_respond_to(obj, meth, msg = nil, include_all: false); end
|
||||
|
||||
sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def assert_same(exp, act, msg = nil); end
|
||||
|
||||
sig { params(send_ary: T::Array[T.anything], m: T.anything).returns(T::Boolean) }
|
||||
def assert_send(send_ary, m = nil); end
|
||||
|
||||
sig { params(block: T.proc.void).returns(T::Boolean) }
|
||||
def assert_silent(&block); end
|
||||
|
||||
sig { params(sym: Symbol, msg: T.anything, block: T.proc.void).returns(T.anything) }
|
||||
def assert_throws(sym, msg = nil, &block); end
|
||||
|
||||
sig { params(test: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute(test, msg = nil); end
|
||||
|
||||
sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_empty(obj, msg = nil); end
|
||||
|
||||
sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_equal(exp, act, msg = nil); end
|
||||
|
||||
sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) }
|
||||
def refute_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end
|
||||
|
||||
sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) }
|
||||
def refute_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end
|
||||
|
||||
sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_includes(collection, obj, msg = nil); end
|
||||
|
||||
sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_instance_of(cls, obj, msg = nil); end
|
||||
|
||||
sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_kind_of(cls, obj, msg = nil); end
|
||||
|
||||
sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_match(matcher, obj, msg = nil); end
|
||||
|
||||
sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_nil(obj, msg = nil); end
|
||||
|
||||
sig { params(block: T.proc.void).returns(TrueClass) }
|
||||
def refute_pattern(&block); end
|
||||
|
||||
sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end
|
||||
|
||||
sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) }
|
||||
def refute_path_exists(path, msg = nil); end
|
||||
|
||||
sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) }
|
||||
def refute_predicate(o1, op, msg = nil); end
|
||||
|
||||
sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) }
|
||||
def refute_respond_to(obj, meth, msg = nil, include_all: false); end
|
||||
|
||||
sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
|
||||
def refute_same(exp, act, msg = nil); end
|
||||
end
|
||||
269
Library/Homebrew/sorbet/rbi/annotations/rainbow.rbi
vendored
Normal file
269
Library/Homebrew/sorbet/rbi/annotations/rainbow.rbi
vendored
Normal file
@ -0,0 +1,269 @@
|
||||
# typed: true
|
||||
|
||||
# DO NOT EDIT MANUALLY
|
||||
# This file was pulled from a central RBI files repository.
|
||||
# Please run `bin/tapioca annotations` to update it.
|
||||
|
||||
module Rainbow
|
||||
# @shim: https://github.com/sickill/rainbow/blob/master/lib/rainbow.rb#L10-L12
|
||||
sig { returns(T::Boolean) }
|
||||
attr_accessor :enabled
|
||||
|
||||
class Color
|
||||
sig { returns(Symbol) }
|
||||
attr_reader :ground
|
||||
|
||||
sig { params(ground: Symbol, values: T.any([Integer], [Integer, Integer, Integer])).returns(Color) }
|
||||
def self.build(ground, values); end
|
||||
|
||||
sig { params(hex: String).returns([Integer, Integer, Integer]) }
|
||||
def self.parse_hex_color(hex); end
|
||||
|
||||
class Indexed < Rainbow::Color
|
||||
sig { returns(Integer) }
|
||||
attr_reader :num
|
||||
|
||||
sig { params(ground: Symbol, num: Integer).void }
|
||||
def initialize(ground, num); end
|
||||
|
||||
sig { returns(T::Array[Integer]) }
|
||||
def codes; end
|
||||
end
|
||||
|
||||
class Named < Rainbow::Color::Indexed
|
||||
NAMES = T.let(nil, T::Hash[Symbol, Integer])
|
||||
|
||||
sig { params(ground: Symbol, name: Symbol).void }
|
||||
def initialize(ground, name); end
|
||||
|
||||
sig { returns(T::Array[Symbol]) }
|
||||
def self.color_names; end
|
||||
|
||||
sig { returns(String) }
|
||||
def self.valid_names; end
|
||||
end
|
||||
|
||||
class RGB < Rainbow::Color::Indexed
|
||||
sig { returns(Integer) }
|
||||
attr_reader :r, :g, :b
|
||||
|
||||
sig { params(ground: Symbol, values: Integer).void }
|
||||
def initialize(ground, *values); end
|
||||
|
||||
sig { returns(T::Array[Integer]) }
|
||||
def codes; end
|
||||
|
||||
sig { params(value: Numeric).returns(Integer) }
|
||||
def self.to_ansi_domain(value); end
|
||||
end
|
||||
|
||||
class X11Named < Rainbow::Color::RGB
|
||||
include Rainbow::X11ColorNames
|
||||
|
||||
sig { params(ground: Symbol, name: Symbol).void }
|
||||
def initialize(ground, name); end
|
||||
|
||||
sig { returns(T::Array[Symbol]) }
|
||||
def self.color_names; end
|
||||
|
||||
sig { returns(String) }
|
||||
def self.valid_names; end
|
||||
end
|
||||
end
|
||||
|
||||
sig { returns(Wrapper) }
|
||||
def self.global; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def self.enabled; end
|
||||
|
||||
sig { params(value: T::Boolean).returns(T::Boolean) }
|
||||
def self.enabled=(value); end
|
||||
|
||||
sig { params(string: String).returns(String) }
|
||||
def self.uncolor(string); end
|
||||
|
||||
class NullPresenter < String
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
||||
def color(*values); end
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
||||
def foreground(*values); end
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
||||
def fg(*values); end
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
||||
def background(*values); end
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
|
||||
def bg(*values); end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def reset; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def bright; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def faint; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def italic; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def underline; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def blink; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def inverse; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def hide; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def cross_out; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def black; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def red; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def green; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def yellow; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def blue; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def magenta; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def cyan; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def white; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def bold; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def dark; end
|
||||
|
||||
sig { returns(NullPresenter) }
|
||||
def strike; end
|
||||
end
|
||||
|
||||
class Presenter < String
|
||||
TERM_EFFECTS = T.let(nil, T::Hash[Symbol, Integer])
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
||||
def color(*values); end
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
||||
def foreground(*values); end
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
||||
def fg(*values); end
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
||||
def background(*values); end
|
||||
|
||||
sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
|
||||
def bg(*values); end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def reset; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def bright; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def faint; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def italic; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def underline; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def blink; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def inverse; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def hide; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def cross_out; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def black; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def red; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def green; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def yellow; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def blue; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def magenta; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def cyan; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def white; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def bold; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def dark; end
|
||||
|
||||
sig { returns(Presenter) }
|
||||
def strike; end
|
||||
end
|
||||
|
||||
class StringUtils
|
||||
sig { params(string: String, codes: T::Array[Integer]).returns(String) }
|
||||
def self.wrap_with_sgr(string, codes); end
|
||||
|
||||
sig { params(string: String).returns(String) }
|
||||
def self.uncolor(string); end
|
||||
end
|
||||
|
||||
VERSION = T.let(nil, String)
|
||||
|
||||
class Wrapper
|
||||
sig { returns(T::Boolean) }
|
||||
attr_accessor :enabled
|
||||
|
||||
sig { params(enabled: T::Boolean).void }
|
||||
def initialize(enabled = true); end
|
||||
|
||||
sig { params(string: String).returns(T.any(Rainbow::Presenter, Rainbow::NullPresenter)) }
|
||||
def wrap(string); end
|
||||
end
|
||||
|
||||
module X11ColorNames
|
||||
NAMES = T.let(nil, T::Hash[Symbol, [Integer, Integer, Integer]])
|
||||
end
|
||||
end
|
||||
|
||||
sig { params(string: String).returns(Rainbow::Presenter) }
|
||||
def Rainbow(string); end
|
||||
@ -17,6 +17,9 @@ class Homebrew::DevCmd::Create::Args < Homebrew::CLI::Args
|
||||
sig { returns(T::Boolean) }
|
||||
def autotools?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def cabal?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def cask?; end
|
||||
|
||||
|
||||
@ -27,6 +27,9 @@ class RuboCop::Cask::AST::Stanza
|
||||
sig { returns(T::Boolean) }
|
||||
def auto_updates?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def bash_completion?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def binary?; end
|
||||
|
||||
@ -51,6 +54,9 @@ class RuboCop::Cask::AST::Stanza
|
||||
sig { returns(T::Boolean) }
|
||||
def dictionary?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def fish_completion?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def font?; end
|
||||
|
||||
@ -191,4 +197,7 @@ class RuboCop::Cask::AST::Stanza
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def zap?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def zsh_completion?; end
|
||||
end
|
||||
|
||||
@ -78,36 +78,36 @@ class ParallelTests::CLI
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#189
|
||||
def any_test_failed?(test_results); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#374
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#375
|
||||
def append_test_options(options, argv); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#415
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#416
|
||||
def detailed_duration(seconds); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#389
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#390
|
||||
def execute_command_in_parallel(command, num_processes, options); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#56
|
||||
def execute_in_parallel(items, num_processes, options); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#363
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#364
|
||||
def extract_file_paths(argv); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#369
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#370
|
||||
def extract_test_options(argv); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#422
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#423
|
||||
def final_fail_message; end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#432
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#433
|
||||
def first_is_1?; end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#31
|
||||
def handle_interrupt; end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#382
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#383
|
||||
def load_runner(type); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#138
|
||||
@ -128,7 +128,7 @@ class ParallelTests::CLI
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#148
|
||||
def report_results(test_results, options); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#410
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#411
|
||||
def report_time_taken(&block); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#130
|
||||
@ -142,12 +142,12 @@ class ParallelTests::CLI
|
||||
|
||||
# CI systems often fail when there is no output for a long time, so simulate some output
|
||||
#
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#438
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#439
|
||||
def simulate_output_for_ci(simulate); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#428
|
||||
# source://parallel_tests//lib/parallel_tests/cli.rb#429
|
||||
def use_colors?; end
|
||||
end
|
||||
|
||||
@ -168,31 +168,34 @@ class ParallelTests::Grouper
|
||||
|
||||
private
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#113
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#120
|
||||
def add_to_group(group, item, size); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#118
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#125
|
||||
def group_by_features_with_steps(tests, options); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#123
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#130
|
||||
def group_by_scenarios(tests, options = T.unsafe(nil)); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#128
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#135
|
||||
def group_features_by_size(items, groups_to_fill); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#95
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#102
|
||||
def isolate_count(options); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#136
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#143
|
||||
def items_to_group(items); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#105
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#112
|
||||
def largest_first(files); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#109
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#116
|
||||
def smallest_group(groups); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#51
|
||||
def specified_groups(options); end
|
||||
|
||||
# source://parallel_tests//lib/parallel_tests/grouper.rb#58
|
||||
def specify_groups(items, num_groups, options, groups); end
|
||||
end
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@ -16291,64 +16291,64 @@ class RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets < ::RuboCop::Cop::Ba
|
||||
|
||||
private
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#118
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#119
|
||||
def array_brackets(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#104
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#105
|
||||
def autocorrect(corrector, node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#226
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#227
|
||||
def compact(corrector, bracket, side); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#212
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#213
|
||||
def compact_corrections(corrector, node, left, right); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#204
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#205
|
||||
def compact_offense(node, token, side: T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#166
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#167
|
||||
def compact_offenses(node, left, right, start_ok, end_ok); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#127
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#128
|
||||
def empty_config; end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#135
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#136
|
||||
def end_has_own_line?(token); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#142
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#143
|
||||
def index_for(node, token); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#150
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#151
|
||||
def issue_offenses(node, left, right, start_ok, end_ok); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#146
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#147
|
||||
def line_and_column_for(token); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#187
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#188
|
||||
def multi_dimensional_array?(node, token, side: T.unsafe(nil)); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#198
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#199
|
||||
def next_to_bracket?(token, side: T.unsafe(nil)); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#162
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#163
|
||||
def next_to_comment?(node, token); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#131
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#132
|
||||
def next_to_newline?(node, token); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#179
|
||||
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#180
|
||||
def qualifies_for_compact?(node, token, side: T.unsafe(nil)); end
|
||||
end
|
||||
|
||||
@ -19155,81 +19155,110 @@ RuboCop::Cop::Lint::DuplicateMatchPattern::MSG = T.let(T.unsafe(nil), String)
|
||||
# end
|
||||
#
|
||||
# alias bar foo
|
||||
# @example AllCops:ActiveSupportExtensionsEnabled: false (default)
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#42
|
||||
# # good
|
||||
# def foo
|
||||
# 1
|
||||
# end
|
||||
#
|
||||
# delegate :foo, to: :bar
|
||||
# @example AllCops:ActiveSupportExtensionsEnabled: true
|
||||
#
|
||||
# # bad
|
||||
# def foo
|
||||
# 1
|
||||
# end
|
||||
#
|
||||
# delegate :foo, to: :bar
|
||||
#
|
||||
# # good
|
||||
# def foo
|
||||
# 1
|
||||
# end
|
||||
#
|
||||
# delegate :baz, to: :bar
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#67
|
||||
class RuboCop::Cop::Lint::DuplicateMethods < ::RuboCop::Cop::Base
|
||||
# @return [DuplicateMethods] a new instance of DuplicateMethods
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#46
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#72
|
||||
def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#84
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#110
|
||||
def alias_method?(param0 = T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#72
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#115
|
||||
def delegate_method?(param0 = T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#98
|
||||
def method_alias?(param0 = T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#76
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#102
|
||||
def on_alias(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#52
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#78
|
||||
def on_def(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#60
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#86
|
||||
def on_defs(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#90
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#122
|
||||
def on_send(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#89
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#120
|
||||
def sym_name(param0 = T.unsafe(nil)); end
|
||||
|
||||
private
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#102
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#138
|
||||
def check_const_receiver(node, name, const_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#109
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#145
|
||||
def check_self_receiver(node, name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#193
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#235
|
||||
def found_attr(node, args, readable: T.unsafe(nil), writable: T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#121
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#163
|
||||
def found_instance_method(node, name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#144
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#186
|
||||
def found_method(node, method_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#134
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#176
|
||||
def found_sclass_method(node, name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#171
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#213
|
||||
def location(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#203
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#245
|
||||
def lookup_constant(node, const_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#116
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#152
|
||||
def message_for_dup(node, method_name, key); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#163
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#205
|
||||
def method_key(node, method_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#179
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#221
|
||||
def on_attr(node, attr_name, args); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#221
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#157
|
||||
def on_delegate(node, method_names); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#263
|
||||
def qualified_name(enclosing, namespace, mod_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#235
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#277
|
||||
def source_location(node); end
|
||||
end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#43
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#68
|
||||
RuboCop::Cop::Lint::DuplicateMethods::MSG = T.let(T.unsafe(nil), String)
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#44
|
||||
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#69
|
||||
RuboCop::Cop::Lint::DuplicateMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
||||
|
||||
# Checks for duplicate elements in `Regexp` character classes.
|
||||
@ -26740,7 +26769,7 @@ class RuboCop::Cop::Lint::UselessAssignment < ::RuboCop::Cop::Base
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#51
|
||||
def after_leaving_scope(scope, _variable_table); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#165
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#167
|
||||
def autocorrect(corrector, assignment); end
|
||||
|
||||
# @return [Boolean]
|
||||
@ -26751,42 +26780,42 @@ class RuboCop::Cop::Lint::UselessAssignment < ::RuboCop::Cop::Base
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#56
|
||||
def check_for_unused_assignments(variable); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#149
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#151
|
||||
def collect_variable_like_names(scope); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#82
|
||||
def message_for_useless_assignment(assignment); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#110
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#112
|
||||
def message_specification(assignment, variable); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#120
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#122
|
||||
def multiple_assignment_message(variable_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#88
|
||||
def offense_range(assignment); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#125
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#127
|
||||
def operator_assignment_message(scope, assignment); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#182
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#184
|
||||
def remove_exception_assignment_part(corrector, node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#206
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#208
|
||||
def remove_local_variable_assignment_part(corrector, node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#195
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#197
|
||||
def remove_trailing_character_from_operator(corrector, node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#191
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#193
|
||||
def rename_variable_with_underscore(corrector, node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#199
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#201
|
||||
def replace_named_capture_group_with_non_capturing_group(corrector, node, variable_name); end
|
||||
|
||||
# TODO: More precise handling (rescue, ensure, nested begin, etc.)
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#139
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#141
|
||||
def return_value_node_of_scope(scope); end
|
||||
|
||||
# @return [Boolean]
|
||||
@ -26794,12 +26823,12 @@ class RuboCop::Cop::Lint::UselessAssignment < ::RuboCop::Cop::Base
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#96
|
||||
def sequential_assignment?(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#132
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#134
|
||||
def similar_name_message(variable); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#158
|
||||
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#160
|
||||
def variable_like_method_invocation?(node); end
|
||||
|
||||
class << self
|
||||
@ -36128,26 +36157,26 @@ RuboCop::Cop::Style::CommentedKeyword::SUBCLASS_DEFINITION = T.let(T.unsafe(nil)
|
||||
# # good
|
||||
# x.between?(min, max)
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#23
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#26
|
||||
class RuboCop::Cop::Style::ComparableBetween < ::RuboCop::Cop::Base
|
||||
extend ::RuboCop::Cop::AutoCorrector
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#38
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#41
|
||||
def logical_comparison_between_by_max_first?(param0 = T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#29
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#32
|
||||
def logical_comparison_between_by_min_first?(param0 = T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#46
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#49
|
||||
def on_and(node); end
|
||||
|
||||
private
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#62
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#65
|
||||
def register_offense(node, min_and_value, max_and_value); end
|
||||
end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#26
|
||||
# source://rubocop//lib/rubocop/cop/style/comparable_between.rb#29
|
||||
RuboCop::Cop::Style::ComparableBetween::MSG = T.let(T.unsafe(nil), String)
|
||||
|
||||
# Enforces the use of `Comparable#clamp` instead of comparison by minimum and maximum.
|
||||
@ -36757,6 +36786,7 @@ RuboCop::Cop::Style::Copyright::AUTOCORRECT_EMPTY_WARNING = T.let(T.unsafe(nil),
|
||||
RuboCop::Cop::Style::Copyright::MSG = T.let(T.unsafe(nil), String)
|
||||
|
||||
# Checks for inheritance from `Data.define` to avoid creating the anonymous parent class.
|
||||
# Inheriting from `Data.define` adds a superfluous level in inheritance tree.
|
||||
#
|
||||
# @example
|
||||
# # bad
|
||||
@ -36766,6 +36796,9 @@ RuboCop::Cop::Style::Copyright::MSG = T.let(T.unsafe(nil), String)
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# Person.ancestors
|
||||
# # => [Person, #<Class:0x000000010b4e14a0>, Data, (...)]
|
||||
#
|
||||
# # good
|
||||
# Person = Data.define(:first_name, :last_name) do
|
||||
# def age
|
||||
@ -36773,28 +36806,31 @@ RuboCop::Cop::Style::Copyright::MSG = T.let(T.unsafe(nil), String)
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#26
|
||||
# Person.ancestors
|
||||
# # => [Person, Data, (...)]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#33
|
||||
class RuboCop::Cop::Style::DataInheritance < ::RuboCop::Cop::Base
|
||||
include ::RuboCop::Cop::RangeHelp
|
||||
extend ::RuboCop::Cop::AutoCorrector
|
||||
extend ::RuboCop::Cop::TargetRubyVersion
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#48
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#55
|
||||
def data_define?(param0 = T.unsafe(nil)); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#36
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#43
|
||||
def on_class(node); end
|
||||
|
||||
private
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#55
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#62
|
||||
def correct_parent(parent, corrector); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#65
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#72
|
||||
def range_for_empty_class_body(class_node, data_define); end
|
||||
end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#31
|
||||
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#38
|
||||
RuboCop::Cop::Style::DataInheritance::MSG = T.let(T.unsafe(nil), String)
|
||||
|
||||
# Checks for consistent usage of the `DateTime` class over the
|
||||
@ -41461,6 +41497,17 @@ RuboCop::Cop::Style::IfInsideElse::MSG = T.let(T.unsafe(nil), String)
|
||||
# end
|
||||
# ----
|
||||
#
|
||||
# The code `def method_name = body if condition` is considered a bad case by
|
||||
# `Style/AmbiguousEndlessMethodDefinition` cop. So, to respect the user's intention to use
|
||||
# an endless method definition in the `if` body, the following code is allowed:
|
||||
#
|
||||
# [source,ruby]
|
||||
# ----
|
||||
# if condition
|
||||
# def method_name = body
|
||||
# end
|
||||
# ----
|
||||
#
|
||||
# NOTE: It is allowed when `defined?` argument has an undefined value,
|
||||
# because using the modifier form causes the following incompatibility:
|
||||
#
|
||||
@ -41499,7 +41546,7 @@ RuboCop::Cop::Style::IfInsideElse::MSG = T.let(T.unsafe(nil), String)
|
||||
# do_something
|
||||
# end
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#63
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#74
|
||||
class RuboCop::Cop::Style::IfUnlessModifier < ::RuboCop::Cop::Base
|
||||
include ::RuboCop::Cop::Alignment
|
||||
include ::RuboCop::Cop::LineLengthHelp
|
||||
@ -41509,120 +41556,125 @@ class RuboCop::Cop::Style::IfUnlessModifier < ::RuboCop::Cop::Base
|
||||
include ::RuboCop::Cop::CommentsHelp
|
||||
extend ::RuboCop::Cop::AutoCorrector
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#80
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#92
|
||||
def on_if(node); end
|
||||
|
||||
private
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#171
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#191
|
||||
def allowed_patterns; end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#231
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#251
|
||||
def another_statement_on_same_line?(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#132
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#152
|
||||
def autocorrect(corrector, node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#285
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#305
|
||||
def comment_on_node_line(node); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#104
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#124
|
||||
def defined_argument_is_undefined?(if_node, defined_node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#96
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#116
|
||||
def defined_nodes(condition); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#272
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#112
|
||||
def endless_method?(body); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#292
|
||||
def extract_heredoc_from(last_argument); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#215
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#235
|
||||
def line_length_enabled_at_line?(line); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#124
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#144
|
||||
def message(node); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#219
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#239
|
||||
def named_capture_in_condition?(node); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#223
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#243
|
||||
def non_eligible_node?(node); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#227
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#247
|
||||
def non_simple_if_unless?(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#114
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#134
|
||||
def pattern_matching_nodes(condition); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#289
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#309
|
||||
def remove_comment(corrector, _node, comment); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#279
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#299
|
||||
def remove_heredoc(corrector, heredoc); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#141
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#161
|
||||
def replacement_for_modifier_form(corrector, node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#265
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#285
|
||||
def to_modifier_form_with_move_comment(node, indentation, comment); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#245
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#265
|
||||
def to_normal_form(node, indentation); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#253
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#273
|
||||
def to_normal_form_with_heredoc(node, indentation, heredoc); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#165
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#185
|
||||
def too_long_due_to_comment_after_modifier?(node, comment); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#160
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#180
|
||||
def too_long_due_to_modifier?(node); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#206
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#226
|
||||
def too_long_line_based_on_allow_uri?(line); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#189
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#209
|
||||
def too_long_line_based_on_config?(range, line); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#198
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#218
|
||||
def too_long_line_based_on_ignore_cop_directives?(range, line); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#176
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#196
|
||||
def too_long_single_line?(node); end
|
||||
|
||||
class << self
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#76
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#87
|
||||
def autocorrect_incompatible_with; end
|
||||
end
|
||||
end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#71
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#82
|
||||
RuboCop::Cop::Style::IfUnlessModifier::MSG_USE_MODIFIER = T.let(T.unsafe(nil), String)
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#74
|
||||
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#85
|
||||
RuboCop::Cop::Style::IfUnlessModifier::MSG_USE_NORMAL = T.let(T.unsafe(nil), String)
|
||||
|
||||
# Checks for if and unless statements used as modifiers of other if or
|
||||
@ -44585,10 +44637,10 @@ class RuboCop::Cop::Style::MultilineIfModifier < ::RuboCop::Cop::Base
|
||||
|
||||
private
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#43
|
||||
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#45
|
||||
def indented_body(body, node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#35
|
||||
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#37
|
||||
def to_normal_if(node); end
|
||||
end
|
||||
|
||||
@ -52677,7 +52729,7 @@ class RuboCop::Cop::Style::SoleNestedConditional < ::RuboCop::Cop::Base
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#199
|
||||
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#201
|
||||
def allow_modifier?; end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#81
|
||||
@ -52717,7 +52769,7 @@ class RuboCop::Cop::Style::SoleNestedConditional < ::RuboCop::Cop::Base
|
||||
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#182
|
||||
def parenthesize_method?(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#192
|
||||
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#194
|
||||
def parenthesized_method_arguments(node); end
|
||||
|
||||
# @return [Boolean]
|
||||
@ -53148,76 +53200,75 @@ RuboCop::Cop::Style::StringChars::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#53
|
||||
class RuboCop::Cop::Style::StringConcatenation < ::RuboCop::Cop::Base
|
||||
include ::RuboCop::Cop::RangeHelp
|
||||
extend ::RuboCop::Cop::AutoCorrector
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#68
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#67
|
||||
def on_new_investigation; end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#72
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#71
|
||||
def on_send(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#61
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#60
|
||||
def string_concatenation?(param0 = T.unsafe(nil)); end
|
||||
|
||||
private
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#159
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#158
|
||||
def adjust_str(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#115
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#114
|
||||
def collect_parts(node, parts = T.unsafe(nil)); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#140
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#139
|
||||
def corrected_ancestor?(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#107
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#106
|
||||
def find_topmost_plus_node(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#163
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#162
|
||||
def handle_quotes(parts); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#134
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#133
|
||||
def heredoc?(node); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#97
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#96
|
||||
def line_end_concatenation?(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#173
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#172
|
||||
def mode; end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#126
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#125
|
||||
def plus_node?(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#85
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#84
|
||||
def register_offense(topmost_plus_node, parts); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#144
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#143
|
||||
def replacement(parts); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#169
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#168
|
||||
def single_quoted?(str_node); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#130
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#129
|
||||
def uncorrectable?(part); end
|
||||
end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#57
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#56
|
||||
RuboCop::Cop::Style::StringConcatenation::MSG = T.let(T.unsafe(nil), String)
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#58
|
||||
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#57
|
||||
RuboCop::Cop::Style::StringConcatenation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
||||
|
||||
# Checks for the use of strings as keys in hashes. The use of
|
||||
@ -53454,7 +53505,8 @@ RuboCop::Cop::Style::Strip::MSG = T.let(T.unsafe(nil), String)
|
||||
# source://rubocop//lib/rubocop/cop/style/strip.rb#21
|
||||
RuboCop::Cop::Style::Strip::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
||||
|
||||
# Checks for inheritance from Struct.new.
|
||||
# Checks for inheritance from `Struct.new`. Inheriting from `Struct.new`
|
||||
# adds a superfluous level in inheritance tree.
|
||||
#
|
||||
# @example
|
||||
# # bad
|
||||
@ -53464,6 +53516,9 @@ RuboCop::Cop::Style::Strip::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# Person.ancestors
|
||||
# # => [Person, #<Class:0x000000010b4e14a0>, Struct, (...)]
|
||||
#
|
||||
# # good
|
||||
# Person = Struct.new(:first_name, :last_name) do
|
||||
# def age
|
||||
@ -53471,27 +53526,30 @@ RuboCop::Cop::Style::Strip::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#26
|
||||
# Person.ancestors
|
||||
# # => [Person, Struct, (...)]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#33
|
||||
class RuboCop::Cop::Style::StructInheritance < ::RuboCop::Cop::Base
|
||||
include ::RuboCop::Cop::RangeHelp
|
||||
extend ::RuboCop::Cop::AutoCorrector
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#33
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#40
|
||||
def on_class(node); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#45
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#52
|
||||
def struct_constructor?(param0 = T.unsafe(nil)); end
|
||||
|
||||
private
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#52
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#59
|
||||
def correct_parent(parent, corrector); end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#62
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#69
|
||||
def range_for_empty_class_body(class_node, struct_new); end
|
||||
end
|
||||
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#30
|
||||
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#37
|
||||
RuboCop::Cop::Style::StructInheritance::MSG = T.let(T.unsafe(nil), String)
|
||||
|
||||
# Checks for redundant argument forwarding when calling super with arguments identical to
|
||||
@ -58818,13 +58876,13 @@ class RuboCop::Formatter::DisabledConfigFormatter < ::RuboCop::Formatter::BaseFo
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#165
|
||||
def cop_config_params(default_cfg, cfg); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#185
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#186
|
||||
def default_config(cop_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#229
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#230
|
||||
def excludes(offending_files, cop_name, parent); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#200
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#201
|
||||
def filtered_config(cfg); end
|
||||
|
||||
# Returns true if the given arr include the given elm or if any of the
|
||||
@ -58832,17 +58890,17 @@ class RuboCop::Formatter::DisabledConfigFormatter < ::RuboCop::Formatter::BaseFo
|
||||
#
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#277
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#278
|
||||
def include_or_match?(arr, elm); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#250
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#251
|
||||
def merge_mode_for_exclude?(cfg); end
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#271
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#272
|
||||
def no_exclude_limit?; end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#102
|
||||
@ -58851,19 +58909,19 @@ class RuboCop::Formatter::DisabledConfigFormatter < ::RuboCop::Formatter::BaseFo
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#137
|
||||
def output_cop_comments(output_buffer, cfg, cop_name, offense_count); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#189
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#190
|
||||
def output_cop_config(output_buffer, cfg, cop_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#172
|
||||
def output_cop_param_comments(output_buffer, params, default_cfg); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#219
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#220
|
||||
def output_exclude_list(output_buffer, offending_files, cop_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#254
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#255
|
||||
def output_exclude_path(output_buffer, exclude_path, parent); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#208
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#209
|
||||
def output_offending_files(output_buffer, cfg, cop_name); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#96
|
||||
@ -58871,7 +58929,7 @@ class RuboCop::Formatter::DisabledConfigFormatter < ::RuboCop::Formatter::BaseFo
|
||||
|
||||
# @return [Boolean]
|
||||
#
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#267
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#268
|
||||
def safe_autocorrect?(config); end
|
||||
|
||||
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#116
|
||||
File diff suppressed because it is too large
Load Diff
@ -590,8 +590,9 @@ class Tap
|
||||
end
|
||||
return unless remote
|
||||
|
||||
current_upstream_head = T.must(git_repository.origin_branch_name)
|
||||
return if requested_remote.blank? && git_repository.origin_has_branch?(current_upstream_head)
|
||||
current_upstream_head = git_repository.origin_branch_name
|
||||
return if current_upstream_head.present? && requested_remote.blank? &&
|
||||
git_repository.origin_has_branch?(current_upstream_head)
|
||||
|
||||
args = %w[fetch]
|
||||
args << "--quiet" if quiet
|
||||
@ -600,6 +601,8 @@ class Tap
|
||||
safe_system "git", "-C", path, *args
|
||||
git_repository.set_head_origin_auto
|
||||
|
||||
current_upstream_head ||= T.must(git_repository.origin_branch_name)
|
||||
|
||||
new_upstream_head = T.must(git_repository.origin_branch_name)
|
||||
return if new_upstream_head == current_upstream_head
|
||||
|
||||
@ -985,19 +988,21 @@ class Tap
|
||||
# Array with autobump names
|
||||
sig { returns(T::Array[String]) }
|
||||
def autobump
|
||||
autobump_packages = if core_cask_tap?
|
||||
Homebrew::API::Cask.all_casks
|
||||
elsif core_tap?
|
||||
Homebrew::API::Formula.all_formulae
|
||||
else
|
||||
{}
|
||||
end
|
||||
# TODO: uncomment when official taps are prepared to use new autobump system
|
||||
#
|
||||
# autobump_packages = if core_cask_tap?
|
||||
# Homebrew::API::Cask.all_casks
|
||||
# elsif core_tap?
|
||||
# Homebrew::API::Formula.all_formulae
|
||||
# else
|
||||
# {}
|
||||
# end
|
||||
#
|
||||
# @autobump ||= autobump_packages.select do |_, p|
|
||||
# p["autobump"] == true && !p["skip_livecheck"] && !(p["deprecated"] || p["disabled"])
|
||||
# end.keys
|
||||
|
||||
@autobump ||= autobump_packages.select do |_, p|
|
||||
p["autobump"] == true && !p["skip_livecheck"] && !(p["deprecated"] || p["disabled"])
|
||||
end.keys
|
||||
|
||||
if @autobump.empty?
|
||||
if @autobump.blank?
|
||||
@autobump = if (autobump_file = path/HOMEBREW_TAP_AUTOBUMP_FILE).file?
|
||||
autobump_file.readlines(chomp: true)
|
||||
else
|
||||
|
||||
@ -158,6 +158,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
expect { described_class.run(force: true) }.to output(/Uninstalled 2 casks/).to_stdout
|
||||
end
|
||||
|
||||
it "does not uninstall casks if --brews is disabled" do
|
||||
expect(Kernel).not_to receive(:system)
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
expect { described_class.run(force: true, casks: false) }.not_to output.to_stdout
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are casks to zap" do
|
||||
@ -174,6 +180,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
expect { described_class.run(force: true, zap: true) }.to output(/Uninstalled 2 casks/).to_stdout
|
||||
end
|
||||
|
||||
it "does not uninstall casks if --casks is disabled" do
|
||||
expect(Kernel).not_to receive(:system)
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
expect { described_class.run(force: true, zap: true, casks: false) }.not_to output.to_stdout
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are formulae to uninstall" do
|
||||
@ -190,6 +202,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
expect { described_class.run(force: true) }.to output(/Uninstalled 2 formulae/).to_stdout
|
||||
end
|
||||
|
||||
it "does not uninstall formulae if --casks is disabled" do
|
||||
expect(Kernel).not_to receive(:system)
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
expect { described_class.run(force: true, brews: false) }.not_to output.to_stdout
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are taps to untap" do
|
||||
@ -206,6 +224,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
described_class.run(force: true)
|
||||
end
|
||||
|
||||
it "does not untap taps if --taps is disabled" do
|
||||
expect(Kernel).not_to receive(:system)
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
described_class.run(force: true, taps: false)
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are VSCode extensions to uninstall" do
|
||||
@ -223,6 +247,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
described_class.run(force: true)
|
||||
end
|
||||
|
||||
it "does not uninstall extensions if --vscode is disabled" do
|
||||
expect(Kernel).not_to receive(:system)
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
described_class.run(force: true, vscode: false)
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are casks and formulae to uninstall and taps to untap but without passing `--force`" do
|
||||
|
||||
@ -60,6 +60,20 @@ RSpec.describe Homebrew::Bundle::Dsl do
|
||||
end
|
||||
end
|
||||
|
||||
context "with multiple cask_args" do
|
||||
subject(:dsl) do
|
||||
dsl_from_string <<~EOS
|
||||
cask_args appdir: '/global-apps'
|
||||
cask_args require_sha: true
|
||||
cask_args appdir: '~/my-apps'
|
||||
EOS
|
||||
end
|
||||
|
||||
it "merges the arguments" do
|
||||
expect(dsl.cask_arguments).to eql(appdir: "~/my-apps", require_sha: true)
|
||||
end
|
||||
end
|
||||
|
||||
context "with invalid input" do
|
||||
it "handles completely invalid code" do
|
||||
expect { dsl_from_string "abcdef" }.to raise_error(RuntimeError)
|
||||
|
||||
@ -110,4 +110,18 @@ RSpec.describe Formatter do
|
||||
expect(described_class.format_help_text(text, width: 80)).to eq expected
|
||||
end
|
||||
end
|
||||
|
||||
describe "::truncate" do
|
||||
it "returns the original string if it's shorter than max length" do
|
||||
expect(described_class.truncate("short", max: 10)).to eq("short")
|
||||
end
|
||||
|
||||
it "truncates strings longer than max length" do
|
||||
expect(described_class.truncate("this is a long string", max: 10)).to eq("this is...")
|
||||
end
|
||||
|
||||
it "uses custom omission string" do
|
||||
expect(described_class.truncate("this is a long string", max: 10, omission: " [...]")).to eq("this [...]")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -16,11 +16,11 @@ RSpec.describe Homebrew::Livecheck::Strategy::Bitbucket do
|
||||
let(:generated) do
|
||||
{
|
||||
get: {
|
||||
url: "https://bitbucket.org/abc/def/downloads/?tab=tags",
|
||||
url: "https://bitbucket.org/abc/def/downloads/?tab=tags&iframe=true&spa=0",
|
||||
regex: /<td[^>]*?class="name"[^>]*?>\s*v?(\d+(?:\.\d+)+)\s*?</im,
|
||||
},
|
||||
downloads: {
|
||||
url: "https://bitbucket.org/abc/def/downloads/",
|
||||
url: "https://bitbucket.org/abc/def/downloads/?iframe=true&spa=0",
|
||||
regex: /href=.*?ghi-v?(\d+(?:\.\d+)+)\.t/i,
|
||||
},
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ RSpec.describe MacOSRequirement do
|
||||
subject(:requirement) { described_class.new }
|
||||
|
||||
let(:macos_oldest_allowed) { MacOSVersion.new(HOMEBREW_MACOS_OLDEST_ALLOWED) }
|
||||
let(:macos_newest_allowed) { MacOSVersion.new(HOMEBREW_MACOS_NEWEST_UNSUPPORTED) }
|
||||
let(:big_sur_major) { MacOSVersion.new("11.0") }
|
||||
|
||||
describe "#satisfied?" do
|
||||
@ -37,6 +38,19 @@ RSpec.describe MacOSRequirement do
|
||||
expect(range_requirement.minimum_version).to eq big_sur_major
|
||||
end
|
||||
|
||||
specify "#maximum_version" do
|
||||
no_requirement = described_class.new
|
||||
max_requirement = described_class.new([:big_sur], comparator: "<=")
|
||||
min_requirement = described_class.new([:big_sur], comparator: ">=")
|
||||
exact_requirement = described_class.new([:big_sur], comparator: "==")
|
||||
range_requirement = described_class.new([[:catalina, :big_sur]], comparator: "==")
|
||||
expect(no_requirement.maximum_version).to eq macos_newest_allowed
|
||||
expect(max_requirement.maximum_version).to eq big_sur_major
|
||||
expect(min_requirement.maximum_version).to eq macos_newest_allowed
|
||||
expect(exact_requirement.maximum_version).to eq big_sur_major
|
||||
expect(range_requirement.maximum_version).to eq big_sur_major
|
||||
end
|
||||
|
||||
specify "#allows?" do
|
||||
no_requirement = described_class.new
|
||||
max_requirement = described_class.new([:mojave], comparator: "<=")
|
||||
|
||||
@ -39,6 +39,7 @@ RSpec.describe RuboCop::Cop::FormulaAudit::Patches do
|
||||
"http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=patch-libunac1.txt;att=1;bug=623340",
|
||||
"https://patch-diff.githubusercontent.com/raw/foo/foo-bar/pull/100.patch",
|
||||
"https://github.com/dlang/dub/commit/2c916b1a7999a050ac4970c3415ff8f91cd487aa.patch",
|
||||
"https://bitbucket.org/multicoreware/x265_git/commits/b354c009a60bcd6d7fc04014e200a1ee9c45c167/raw",
|
||||
]
|
||||
patch_urls.each do |patch_url|
|
||||
source = <<~EOS
|
||||
@ -78,6 +79,12 @@ RSpec.describe RuboCop::Cop::FormulaAudit::Patches do
|
||||
expect_offense_hash(message: <<~EOS.chomp, severity: :convention, line: 5, column: 4, source:)
|
||||
FormulaAudit/Patches: GitHub patches should use the full_index parameter: #{patch_url}?full_index=1
|
||||
EOS
|
||||
elsif patch_url.start_with?("https://bitbucket.org/")
|
||||
commit = "b354c009a60bcd6d7fc04014e200a1ee9c45c167"
|
||||
fixed_url = "https://api.bitbucket.org/2.0/repositories/multicoreware/x265_git/diff/#{commit}"
|
||||
expect_offense_hash(message: <<~EOS.chomp, severity: :convention, line: 5, column: 4, source:)
|
||||
FormulaAudit/Patches: Bitbucket patches should use the api url: #{fixed_url}
|
||||
EOS
|
||||
end
|
||||
expected_offense.zip([inspect_source(source).last]).each do |expected, actual|
|
||||
expect(actual.message).to eq(expected[:message])
|
||||
|
||||
@ -177,6 +177,14 @@ RSpec.describe RuboCop::Cop::FormulaAudit::Urls do
|
||||
"url" => "svn+http://brew.sh/foo/bar",
|
||||
"msg" => "Use of the svn+http:// scheme is deprecated, pass `:using => :svn` instead",
|
||||
"col" => 2,
|
||||
}, {
|
||||
"url" => "https://🫠.sh/foo/bar",
|
||||
"msg" => "Please use the ASCII (Punycode encoded host, URL-encoded path and query) version of https://🫠.sh/foo/bar.",
|
||||
"col" => 2,
|
||||
}, {
|
||||
"url" => "https://ßrew.sh/foo/bar",
|
||||
"msg" => "Please use the ASCII (Punycode encoded host, URL-encoded path and query) version of https://ßrew.sh/foo/bar.",
|
||||
"col" => 2,
|
||||
}]
|
||||
end
|
||||
|
||||
|
||||
@ -71,14 +71,6 @@ RSpec.describe GitHub do
|
||||
)
|
||||
expect(urls).to eq(["https://api.github.com/repos/Homebrew/homebrew-core/actions/artifacts/1969725476/zip"])
|
||||
end
|
||||
|
||||
it "supports pattern matching" do
|
||||
urls = described_class.get_artifact_urls(
|
||||
described_class.get_workflow_run("Homebrew", "brew", "17068",
|
||||
workflow_id: "pkg-installer.yml", artifact_pattern: "Homebrew-*.pkg"),
|
||||
)
|
||||
expect(urls).to eq(["https://api.github.com/repos/Homebrew/brew/actions/artifacts/1405050842/zip"])
|
||||
end
|
||||
end
|
||||
|
||||
describe "::pull_request_commits", :needs_network do
|
||||
|
||||
@ -67,7 +67,18 @@ module Homebrew
|
||||
end
|
||||
|
||||
unversioned_name = f.name.gsub(/@.+$/, "")
|
||||
maybe_paths = Dir.glob("#{f.etc}/*#{unversioned_name}*")
|
||||
maybe_paths = Dir.glob("#{f.etc}/#{unversioned_name}*")
|
||||
excluded_names = Homebrew::API::Formula.all_formulae.keys
|
||||
maybe_paths = maybe_paths.reject do |path|
|
||||
# Remove extension only if a file
|
||||
# (f.e. directory with name "openssl@1.1" will be trimmed to "openssl@1")
|
||||
basename = if File.directory?(path)
|
||||
File.basename(path)
|
||||
else
|
||||
File.basename(path, ".*")
|
||||
end
|
||||
excluded_names.include?(basename)
|
||||
end
|
||||
maybe_paths -= paths if paths.present?
|
||||
if maybe_paths.present?
|
||||
puts
|
||||
|
||||
@ -54,6 +54,19 @@ module Formatter
|
||||
label(label, string, :red)
|
||||
end
|
||||
|
||||
# Truncate a string to a specific length.
|
||||
#
|
||||
# @api internal
|
||||
sig { params(string: String, max: Integer, omission: String).returns(String) }
|
||||
def self.truncate(string, max: 30, omission: "...")
|
||||
return string if string.length <= max
|
||||
|
||||
length_with_room_for_omission = max - omission.length
|
||||
truncated = string[0, length_with_room_for_omission]
|
||||
|
||||
"#{truncated}#{omission}"
|
||||
end
|
||||
|
||||
# Wraps text to fit within a given number of columns using regular expressions that:
|
||||
#
|
||||
# 1. convert hard-wrapped paragraphs to a single line
|
||||
|
||||
@ -87,7 +87,7 @@ module SPDX
|
||||
return ALLOWED_LICENSE_SYMBOLS.include? license if license.is_a? Symbol
|
||||
|
||||
license = license.delete_suffix "+"
|
||||
license_data["licenses"].any? { |spdx_license| spdx_license["licenseId"] == license }
|
||||
license_data["licenses"].any? { |spdx_license| spdx_license["licenseId"].downcase == license.downcase }
|
||||
end
|
||||
|
||||
sig { params(license: T.any(String, Symbol)).returns(T::Boolean) }
|
||||
@ -97,14 +97,14 @@ module SPDX
|
||||
|
||||
license = license.to_s.delete_suffix "+"
|
||||
license_data["licenses"].none? do |spdx_license|
|
||||
spdx_license["licenseId"] == license && !spdx_license["isDeprecatedLicenseId"]
|
||||
spdx_license["licenseId"].downcase == license.downcase && !spdx_license["isDeprecatedLicenseId"]
|
||||
end
|
||||
end
|
||||
|
||||
sig { params(exception: String).returns(T::Boolean) }
|
||||
def valid_license_exception?(exception)
|
||||
exception_data["exceptions"].any? do |spdx_exception|
|
||||
spdx_exception["licenseExceptionId"] == exception && !spdx_exception["isDeprecatedLicenseId"]
|
||||
spdx_exception["licenseExceptionId"].downcase == exception.downcase && !spdx_exception["isDeprecatedLicenseId"]
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
34
Library/Homebrew/vendor/bundle/bundler/setup.rb
vendored
34
Library/Homebrew/vendor/bundle/bundler/setup.rb
vendored
@ -45,26 +45,26 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/coderay-1.1.3/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/csv-3.3.4/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/diff-lcs-1.6.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/diff-lcs-1.6.2/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/docile-1.4.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/elftools-1.3.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/erubi-1.13.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/hana-1.3.7/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/json-2.11.3")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/json-2.11.3/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/json-2.12.0")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/json-2.12.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/regexp_parser-2.10.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simpleidn-0.2.3/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/json_schemer-2.4.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rexml-3.4.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/kramdown-2.5.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/language_server-protocol-3.17.0.4/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/language_server-protocol-3.17.0.5/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/lint_roller-1.1.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/logger-1.7.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/method_source-1.1.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/minitest-5.25.5/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/netrc-0.11.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parallel-1.27.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parallel_tests-5.1.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parallel_tests-5.2.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/racc-1.8.1")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/racc-1.8.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parser-3.3.8.0/lib")
|
||||
@ -76,10 +76,10 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/pycall-1.5.2")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/pycall-1.5.2/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rainbow-3.1.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/rbs-3.9.2")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbs-3.9.2/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12067/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbi-0.3.2/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/rbs-3.9.4")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbs-3.9.4/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12117/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbi-0.3.3/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/redcarpet-3.6.1")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/redcarpet-3.6.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-support-3.13.3/lib")
|
||||
@ -95,12 +95,12 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-progressbar-1.13.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/unicode-emoji-4.0.4/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/unicode-display_width-3.1.4/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-1.75.5/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-1.75.6/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-md-2.0.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-performance-1.25.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-rspec-3.6.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-sorbet-0.10.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-lsp-0.23.17/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-lsp-0.23.21/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-macho-4.1.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/ruby-prof-1.7.1")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-prof-1.7.1/lib")
|
||||
@ -108,16 +108,16 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov_json_formatter-0.1.4/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov-0.22.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov-cobertura-2.1.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12067-universal-darwin/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12067/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12067/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12117-universal-darwin/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12117/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12117/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/thor-1.3.2/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/spoom-1.6.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/spoom-1.6.3/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/stackprof-0.2.27")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/stackprof-0.2.27/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/yard-0.9.37/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/yard-sorbet-0.9.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/tapioca-0.16.11/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/vernier-1.7.0")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/vernier-1.7.0/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/vernier-1.7.1")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/vernier-1.7.1/lib")
|
||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/warning-1.5.0/lib")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user