我正在实施Rubocop,我在代码库中遇到了与此类似的行:
class ThisIsAVerlyLongClassName < JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName
Rubocop在这里抱怨线路长度,但是我无法找到一种方法来创建这个类定义的更紧凑版本,而无需重命名类,这就是我在这里要避免的
一般而言,如果没有对编码风格进行争论,那么让Rubocop停止抱怨行长度而不在.rubocop.yml中编写异常或编辑类和模块名称的最佳方法是什么?
答案 0 :(得分:1)
让rubocop停止抱怨行长度而不在.rubocop.yml中进行异常或编辑类和模块名称的最佳方法是什么?
没有逃脱。如果你想解决这个抱怨,你必须:
答案 1 :(得分:1)
您通常可以通过在该行添加如下注释来禁用特定行上的特定Rubocop警告:
class A < B::C::D # rubocop:disable Metrics/LineLength
答案 2 :(得分:1)
虽然类定义体具有自己的非嵌套词法范围(如方法定义体),但超类表达式在包含范围内进行求值。换句话说:你可以使用局部变量:
superclass = JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName
class ThisIsAVerlyLongClassName < superclass
答案 3 :(得分:1)
我刚刚发现类定义可以分成多行,如下所示:
class ThisIsAVerlyLongClassName <
JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName
它破坏了Atom中第二行的语法高亮,但是代码运行并且所有测试都通过了!