diff options
| author | Gautham Goli | 2017-07-14 21:11:53 +0530 |
|---|---|---|
| committer | Gautham Goli | 2017-07-14 21:43:16 +0530 |
| commit | f3923f23efd8632e6cbf68e510843b3d44cdfa3d (patch) | |
| tree | d5d770b1fba59ae654012fca67fd318a3b0c93ca /Library/Homebrew/rubocops/options_cop.rb | |
| parent | 20db5470e3325d3a64e16c785c22c25581e03b52 (diff) | |
| download | brew-f3923f23efd8632e6cbf68e510843b3d44cdfa3d.tar.bz2 | |
audit: Port audit_options strict rules to rubocop and add tests
Diffstat (limited to 'Library/Homebrew/rubocops/options_cop.rb')
| -rw-r--r-- | Library/Homebrew/rubocops/options_cop.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Library/Homebrew/rubocops/options_cop.rb b/Library/Homebrew/rubocops/options_cop.rb index 83d853f10..eb2a837be 100644 --- a/Library/Homebrew/rubocops/options_cop.rb +++ b/Library/Homebrew/rubocops/options_cop.rb @@ -16,5 +16,32 @@ module RuboCop end end end + + module FormulaAuditStrict + class Options < FormulaCop + DEPRECATION_MSG = "macOS has been 64-bit only since 10.6 so universal options are deprecated.".freeze + + def audit_formula(_node, _class_node, _parent_class_node, body_node) + option_call_nodes = find_every_method_call_by_name(body_node, :option) + option_call_nodes.each do |option_call| + offending_node(option_call) + option = string_content(parameters(option_call).first) + problem DEPRECATION_MSG if option == "universal" + + if option !~ /with(out)?-/ && + option != "cxx11" && + option != "universal" + problem "Options should begin with with/without."\ + " Migrate '--#{option}' with `deprecated_option`." + end + + next unless option =~ /^with(out)?-(?:checks?|tests)$/ + next if depends_on?("check", :optional, :recommended) + problem "Use '--with#{Regexp.last_match(1)}-test' instead of '--#{option}'."\ + " Migrate '--#{option}' with `deprecated_option`." + end + end + end + end end end |
