inherit_from:
  - ../.rubocop.yml

Homebrew/MoveToExtendOS:
  Enabled: true

# Want to preserve our own API for these methods for now.
Naming/PredicatePrefix:
  inherit_mode:
    merge:
      - AllowedMethods
  AllowedMethods:
    - is_32_bit?
    - is_64_bit?

Naming/PredicateMethod:
  inherit_mode:
    merge:
      - WaywardPredicates
  WaywardPredicates:
    - size?

Naming/MethodParameterName:
  AllowedNames:
    - go
    - uv

# Only enforce documentation for public APIs.
# Include list checked by Homebrew/PublicApiDocumentation.
Style/Documentation:
  AllowedConstants:
    - Homebrew
  Include:
    - abstract_command.rb
    - abstract_subcommand.rb
    - autobump_constants.rb
    - cask/cask.rb
    - cask/dsl.rb
    - cask/dsl/version.rb
    - cask/url.rb
    - development_tools.rb
    - download_strategy/abstract_download_strategy.rb
    - download_strategy/abstract_file_download_strategy.rb
    - download_strategy/bazaar_download_strategy.rb
    - download_strategy/curl_apache_mirror_download_strategy.rb
    - download_strategy/curl_download_strategy.rb
    - download_strategy/curl_github_packages_download_strategy.rb
    - download_strategy/curl_post_download_strategy.rb
    - download_strategy/cvs_download_strategy.rb
    - download_strategy/fossil_download_strategy.rb
    - download_strategy/git_download_strategy.rb
    - download_strategy/github_git_download_strategy.rb
    - download_strategy/homebrew_curl_download_strategy.rb
    - download_strategy/mercurial_download_strategy.rb
    - download_strategy/no_unzip_curl_download_strategy.rb
    - download_strategy/pypi_download_strategy.rb
    - download_strategy/subversion_download_strategy.rb
    - download_strategy/vcs_download_strategy.rb
    - extend/ENV/super.rb
    - extend/kernel.rb
    - extend/pathname.rb
    - formula.rb
    - formula_assertions.rb
    - formula_free_port.rb
    - language/java.rb
    - language/node.rb
    - language/perl.rb
    - language/php.rb
    - language/python.rb
    - livecheck/strategy/apache.rb
    - livecheck/strategy/bitbucket.rb
    - livecheck/strategy/cpan.rb
    - livecheck/strategy/crate.rb
    - livecheck/strategy/extract_plist.rb
    - livecheck/strategy/git.rb
    - livecheck/strategy/github_latest.rb
    - livecheck/strategy/github_releases.rb
    - livecheck/strategy/gnome.rb
    - livecheck/strategy/gnu.rb
    - livecheck/strategy/hackage.rb
    - livecheck/strategy/json.rb
    - livecheck/strategy/launchpad.rb
    - livecheck/strategy/npm.rb
    - livecheck/strategy/page_match.rb
    - livecheck/strategy/pypi.rb
    - livecheck/strategy/ruby_gems.rb
    - livecheck/strategy/sourceforge.rb
    - livecheck/strategy/sparkle.rb
    - livecheck/strategy/xml.rb
    - livecheck/strategy/xorg.rb
    - livecheck/strategy/yaml.rb
    - os.rb
    - os/mac.rb
    - resource.rb
    - service.rb
    - startup/config.rb
    - utils/gzip.rb
    - utils/inreplace.rb
    - utils/output.rb
    - utils/path.rb
    - utils/shebang.rb
    - utils/string_inreplace_extension.rb
    - version.rb
    - tap.rb

Style/DocumentationMethod:
  Include:
    - "formula.rb"

# Ensure @api public methods have proper YARD documentation.
# No Include needed: the cop self-selects by finding @api public comments.
Homebrew/PublicApiDocumentation:
  Enabled: true

# Ensure cookbook-referenced methods are annotated @api public.
# No Include needed: the cop self-selects from cookbook rubydoc links.
Homebrew/PublicApiCookbook:
  Enabled: true

# Ensure official tap formulae don't use @api internal/@api private methods.
FormulaAudit/NonPublicApiUsage:
  Enabled: true
