开发
此页面描述了开发 Capybara 特定 Cops 时需要考虑的事项。它旨在作为对一般 RuboCop 开发文档 的补充。
创建新的 Cop
克隆仓库并运行 bundle install (如果尚未完成)。以下 rake 任务只能在 rubocop 项目目录本身内运行。
|
使用捆绑的 rake 任务 new_cop
生成 Cop 模板
$ bundle exec rake 'new_cop[Capybara/CopName]'
[create] lib/rubocop/cop/capybara/cop_name.rb
[create] spec/rubocop/cop/capybara/cop_name_spec.rb
[modify] lib/rubocop/cop/capybara_cops.rb - `require_relative 'capybara/cop_name'` was injected.
[modify] A configuration for the cop is added into config/default.yml.
Do 4 steps:
1. Modify the description of Capybara/CopName in config/default.yml
2. Implement your new cop in the generated file!
3. Add an entry about new cop to CHANGELOG.md
4. Commit your new cop with a message such as
e.g. "Add new `#{badge}` cop"
选择名称
使用以下规则为新的 Cop 命名
-
选择一个部门。请参阅 现有部门列表
-
名称具有自解释性
-
名称解释了代码检测到的违规行为,例如
ExtraSpacing
-
名称以名词开头,而不是动词,例如
ArrayAlignment
而不是AlignArray
-
名称易于理解,例如
IndentationStyle
而不是Tab
-
名称具有特异性,例如
DuplicateHashKey
而不是DuplicateKey
-
名称尽可能保持中立,并在可行的情况下适应多种风格,例如
EmptyLineBeforeBegin
。 -
名称使用常用术语,例如
RedundantPercentI
而不是RedundantPercentSymbolArray
-
名称使用正确的术语,例如方法调用中的参数和方法签名中的参数
-
没有符号的行称为“空行”,而不是“空白行”,例如
LeadingEmptyLines
而不是LeadingBlankLines
-
优先使用“冗余”而不是“不必要”,例如
RedundantSelf
而不是UnneededSelf
查看 "config/obsoletion.yml 文件中的重命名部分",以获取良好和不良示例(旧名称在左侧,新名称在右侧)。