Use separate RuboCop configs for formulae and core code.

This commit is contained in:
Markus Reiter 2016-09-27 18:48:06 +02:00
parent d624627885
commit 70fc825787
6 changed files with 140 additions and 148 deletions

View File

@ -1,12 +0,0 @@
inherit_from:
- .rubocop_rules.yml
- .rubocop_todo.yml
AllCops:
TargetRubyVersion: 2.0
Include:
- '**/.simplecov'
Exclude:
- 'Homebrew/cask/**/*'
- 'Homebrew/vendor/**/*'
- 'Homebrew/test/vendor/**/*'

View File

@ -1,3 +1,6 @@
AllCops:
TargetRubyVersion: 2.0
Metrics/AbcSize:
Enabled: false
@ -15,10 +18,6 @@ Metrics/MethodLength:
Metrics/ModuleLength:
CountComments: false
Exclude:
- 'Homebrew/cask/lib/hbc/locations.rb'
- 'Homebrew/cask/lib/hbc/macos.rb'
- 'Homebrew/cask/lib/hbc/utils.rb'
Metrics/PerceivedComplexity:
Enabled: false
@ -36,11 +35,6 @@ Lint/AssignmentInCondition:
Lint/EndAlignment:
AlignWith: variable
# `formula do` uses nested method definitions
Lint/NestedMethodDefinition:
Exclude:
- 'Homebrew/test/**/*'
Lint/ParenthesesAsGroupedExpression:
Enabled: false
@ -54,85 +48,6 @@ Style/AlignHash:
Style/AlignParameters:
Enabled: false
Style/BarePercentLiterals:
Exclude:
- 'Taps/**/*'
EnforcedStyle: percent_q
Style/BlockDelimiters:
EnforcedStyle: semantic
Exclude:
- 'Taps/**/*'
FunctionalMethods:
- expect
- find
- let
- let!
- subject
- watch
- inject
- map
- map!
- collect
- collect!
- reject
- reject!
- delete_if
- with_object
- popen_read
ProceduralMethods:
- after
- at_exit
- before
- benchmark
- bm
- bmbm
- capture_io
- capture_output
- capture_subprocess_io
- chdir
- context
- create
- define_method
- define_singleton_method
- fork
- measure
- new
- open
- realtime
- shutup
- tap
- each
- each_pair
- each_with_index
- reverse_each
- ignore_interrupts
IgnoredMethods:
- each_with_object
- it
- its
- lambda
- proc
- formula
- mock
- devel
- stable
- head
- assert_raises
- assert_nothing_raised
- resource
- with_build_environment
- ensure_writable
- satisfy
- fetch
- brew
- expand
- env
- recursive_dependencies
- trap
- link_dir
- with_system_path
Style/CaseIndentation:
IndentWhenRelativeTo: end
@ -158,29 +73,9 @@ Style/EmptyLineBetweenDefs:
Style/FileName:
Regex: !ruby/regexp /^[\w\@\-\+\.]+(\.rb)?$/
# counterproductive in formulas, notably within the install method
Style/GuardClause:
Exclude:
- 'Taps/**/*'
# depends_on foo: :bar looks rubbish
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
Exclude:
- 'Taps/**/*'
Style/IfUnlessModifier:
Exclude:
- 'Taps/**/*'
Style/IndentArray:
EnforcedStyle: special_inside_parentheses
# we won't change backward compatible method names
Style/MethodName:
Exclude:
- 'Homebrew/compat/**/*'
# only for numbers >= 1_000_000
Style/NumericLiterals:
MinDigits: 7
@ -206,12 +101,6 @@ Style/PercentLiteralDelimiters:
Style/PerlBackrefs:
Enabled: false
# we won't change backward compatible predicate names
Style/PredicateName:
Exclude:
- 'Homebrew/compat/**/*'
NameWhitelist: is_32_bit?, is_64_bit?
Style/RaiseArgs:
EnforcedStyle: exploded

112
Library/.rubocop_core.yml Normal file
View File

@ -0,0 +1,112 @@
inherit_from:
- .rubocop_common.yml
- .rubocop_todo.yml
AllCops:
Include:
- '**/.simplecov'
Exclude:
- 'Homebrew/cask/**/*'
- 'Homebrew/**/vendor/**/*'
# `formula do` uses nested method definitions
Lint/NestedMethodDefinition:
Exclude:
- 'Homebrew/test/**/*'
Metrics/ModuleLength:
CountComments: false
Exclude:
- 'Homebrew/cask/lib/hbc/locations.rb'
- 'Homebrew/cask/lib/hbc/macos.rb'
- 'Homebrew/cask/lib/hbc/utils.rb'
Style/BarePercentLiterals:
EnforcedStyle: percent_q
Style/BlockDelimiters:
EnforcedStyle: semantic
FunctionalMethods:
- expect
- find
- let
- let!
- subject
- watch
- inject
- map
- map!
- collect
- collect!
- reject
- reject!
- delete_if
- with_object
- popen_read
ProceduralMethods:
- after
- at_exit
- before
- benchmark
- bm
- bmbm
- capture_io
- capture_output
- capture_subprocess_io
- chdir
- context
- create
- define_method
- define_singleton_method
- fork
- measure
- new
- open
- realtime
- shutup
- tap
- each
- each_pair
- each_with_index
- reverse_each
- ignore_interrupts
IgnoredMethods:
- each_with_object
- it
- its
- lambda
- proc
- formula
- mock
- devel
- stable
- head
- assert_raises
- assert_nothing_raised
- resource
- with_build_environment
- ensure_writable
- satisfy
- fetch
- brew
- expand
- env
- recursive_dependencies
- trap
- link_dir
- with_system_path
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
# we won't change backward compatible method names
Style/MethodName:
Exclude:
- 'Homebrew/compat/**/*'
# we won't change backward compatible predicate names
Style/PredicateName:
Exclude:
- 'Homebrew/compat/**/*'
NameWhitelist: is_32_bit?, is_64_bit?

View File

@ -0,0 +1,12 @@
inherit_from:
- .rubocop_common.yml
# counterproductive in formulas, notably within the install method
Style/GuardClause:
Enabled: false
Style/IfUnlessModifier:
Enabled: false
# depends_on foo: :bar looks rubbish
Style/HashSyntax:
Enabled: false

View File

@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --exclude-limit 100`
# on 2016-09-25 02:39:38 +0200 using RuboCop version 0.43.0.
# on 2016-09-27 18:48:13 +0200 using RuboCop version 0.43.0.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@ -37,7 +37,6 @@ Lint/Loop:
# Offense count: 1
Lint/NestedMethodDefinition:
Exclude:
- 'Homebrew/test/**/*'
- 'Homebrew/dev-cmd/bottle.rb'
# Offense count: 28
@ -72,28 +71,26 @@ Metrics/BlockNesting:
# Offense count: 19
# Configuration parameters: CountComments.
Metrics/ModuleLength:
Max: 366
Max: 367
# Offense count: 2
# Configuration parameters: CountKeywordArgs.
Metrics/ParameterLists:
Max: 6
# Offense count: 9
# Offense count: 8
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: percent_q, bare_percent
Style/BarePercentLiterals:
Exclude:
- 'Taps/**/*'
- 'Homebrew/dev-cmd/audit.rb'
- 'Homebrew/test/test_diagnostic.rb'
- 'Homebrew/test/test_exceptions.rb'
- 'Homebrew/test/test_integration_cmds.rb'
- 'Homebrew/test/test_patch.rb'
- 'Homebrew/test/test_string.rb'
# Offense count: 136
# Offense count: 134
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
# SupportedStyles: line_count_based, semantic, braces_for_chaining
@ -102,7 +99,6 @@ Style/BarePercentLiterals:
# IgnoredMethods: lambda, proc, it
Style/BlockDelimiters:
Exclude:
- 'Taps/**/*'
- 'Homebrew/caveats.rb'
- 'Homebrew/cleaner.rb'
- 'Homebrew/cleanup.rb'
@ -157,13 +153,11 @@ Style/BlockDelimiters:
- 'Homebrew/test/lib/config.rb'
- 'Homebrew/test/test_ARGV.rb'
- 'Homebrew/test/test_cleanup.rb'
- 'Homebrew/test/test_cmd_audit.rb'
- 'Homebrew/test/test_dependency_collector.rb'
- 'Homebrew/test/test_formula_installer.rb'
- 'Homebrew/test/test_formula_installer_bottle.rb'
- 'Homebrew/test/test_formulary.rb'
- 'Homebrew/test/test_gpg.rb'
- 'Homebrew/test/test_integration_cmds.rb'
- 'Homebrew/test/test_migrator.rb'
- 'Homebrew/test/test_pathname.rb'
- 'Homebrew/test/test_tap.rb'
@ -188,20 +182,12 @@ Style/GlobalVars:
- 'Homebrew/utils.rb'
# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: SupportedStyles, IndentationWidth.
# SupportedStyles: special_inside_parentheses, consistent, align_brackets
Style/IndentArray:
EnforcedStyle: special_inside_parentheses
# Offense count: 5
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: module_function, extend_self
Style/ModuleFunction:
Exclude:
- 'Homebrew/global.rb'
- 'Homebrew/os/mac/xcode.rb'
- 'Homebrew/os/mac/xquartz.rb'
# Offense count: 8
Style/MultilineBlockChain:
@ -222,7 +208,6 @@ Style/MutableConstant:
- 'Homebrew/tab.rb'
- 'Homebrew/tap.rb'
# Offense count: 9
# Offense count: 8
Style/OpMethod:
Exclude:

View File

@ -19,7 +19,7 @@ require "utils/json"
module Homebrew
def style
target = if ARGV.named.empty?
[HOMEBREW_LIBRARY_PATH]
nil
elsif ARGV.named.any? { |file| File.exist? file }
ARGV.named
elsif ARGV.named.any? { |tap| tap.count("/") == 1 }
@ -49,10 +49,16 @@ module Homebrew
args = %W[
--force-exclusion
--config #{HOMEBREW_LIBRARY}/.rubocop.yml
]
args << "--auto-correct" if fix
args += files
if files.nil?
args << "--config" << HOMEBREW_LIBRARY/".rubocop_core.yml"
args += [HOMEBREW_LIBRARY_PATH]
else
args << "--config" << HOMEBREW_LIBRARY/".rubocop_formula.yml"
args += files
end
HOMEBREW_LIBRARY.cd do
case output_type