diff options
| author | Mike McQuaid | 2017-09-05 18:07:25 +0100 |
|---|---|---|
| committer | GitHub | 2017-09-05 18:07:25 +0100 |
| commit | 4cc8d4737b1c87cdc2d2c9e90d80b3b372bb924c (patch) | |
| tree | 10f2bf1d7f5f198247553d28e90259e3ffcf6b10 /Library/Homebrew/rubocops | |
| parent | c6d5f8cc99981310ea9f2763d9e53eac4eaeef8a (diff) | |
| parent | d45ff9c0fdfa834c55c01f9c95fe18064fabd76a (diff) | |
| download | brew-4cc8d4737b1c87cdc2d2c9e90d80b3b372bb924c.tar.bz2 | |
Merge pull request #2982 from GauthamGoli/audit_class_rubocop_port
audit: Port audit_class to rubocop, add tests and autocorrect
Diffstat (limited to 'Library/Homebrew/rubocops')
| -rw-r--r-- | Library/Homebrew/rubocops/class_cop.rb | 41 | ||||
| -rw-r--r-- | Library/Homebrew/rubocops/extend/formula_cop.rb | 9 |
2 files changed, 49 insertions, 1 deletions
diff --git a/Library/Homebrew/rubocops/class_cop.rb b/Library/Homebrew/rubocops/class_cop.rb new file mode 100644 index 000000000..dad81abfc --- /dev/null +++ b/Library/Homebrew/rubocops/class_cop.rb @@ -0,0 +1,41 @@ +require_relative "./extend/formula_cop" + +module RuboCop + module Cop + module FormulaAudit + class ClassName < FormulaCop + DEPRECATED_CLASSES = %w[ + GithubGistFormula + ScriptFileFormula + AmazonWebServicesFormula + ].freeze + + def audit_formula(_node, _class_node, parent_class_node, _body_node) + parent_class = class_name(parent_class_node) + return unless DEPRECATED_CLASSES.include?(parent_class) + problem "#{parent_class} is deprecated, use Formula instead" + end + + private + + def autocorrect(node) + lambda do |corrector| + corrector.replace(node.source_range, "Formula") + end + end + end + end + + module FormulaAuditStrict + # - `test do ..end` should be defined in the formula + class Test < FormulaCop + MSG = "A `test do` test block should be added".freeze + + def audit_formula(_node, _class_node, _parent_class_node, body_node) + return if find_block(body_node, :test) + problem MSG + end + end + end + end +end diff --git a/Library/Homebrew/rubocops/extend/formula_cop.rb b/Library/Homebrew/rubocops/extend/formula_cop.rb index 7844f7bf2..59ad1aafb 100644 --- a/Library/Homebrew/rubocops/extend/formula_cop.rb +++ b/Library/Homebrew/rubocops/extend/formula_cop.rb @@ -422,7 +422,14 @@ module RuboCop def formula_class?(node) _, class_node, = *node - class_node && string_content(class_node) == "Formula" + class_names = %w[ + Formula + GithubGistFormula + ScriptFileFormula + AmazonWebServicesFormula + ] + + class_node && class_names.include?(string_content(class_node)) end def file_path_allowed?(file_path) |
