Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中缩短很长的类定义_Ruby_Class_Rubocop - Fatal编程技术网

在Ruby中缩短很长的类定义

在Ruby中缩短很长的类定义,ruby,class,rubocop,Ruby,Class,Rubocop,我正在努力实现Rubocop,我在代码库中遇到了一行类似的代码: class ThisIsAVerlyLongClassName < JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName class这是一个非常长的类名

我正在努力实现Rubocop,我在代码库中遇到了一行类似的代码:

class ThisIsAVerlyLongClassName < JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName
class这是一个非常长的类名
Rubocop抱怨这里的行长度,但我想不出一种方法来创建这个类定义的更紧凑的版本,而不重命名这些类,这正是我在这里试图避免的

在不讨论一般的编码风格的情况下,让Rubocop停止抱怨行长度而不在.rubocp.yml中破例或编辑类和模块名称的最佳方法是什么

让Rubocop停止抱怨行长度而不在.rubocp.yml中出现异常或编辑类和模块名称的最佳方法是什么

无法逃脱。如果您想解决该投诉,您必须:

  • 通过在.rubocop.yml或该特定文件中设置覆盖
  • 解决该问题,因此重命名该类
让Rubocop停止抱怨行长度而不在.rubocp.yml中出现异常或编辑类和模块名称的最佳方法是什么

无法逃脱。如果您想解决该投诉,您必须:

  • 通过在.rubocop.yml或该特定文件中设置覆盖
  • 解决该问题,因此重命名该类

您通常可以通过在特定行上添加如下注释来禁用特定行上的特定Rubocop警告:

class A < B::C::D # rubocop:disable Metrics/LineLength
A类
您通常可以通过在特定行中添加如下注释来禁用特定行上的特定Rubocop警告:

class A < B::C::D # rubocop:disable Metrics/LineLength
A类虽然类定义体有自己的非嵌套词法范围(如方法定义体),但超类表达式在包含范围内求值。换句话说,您可以只使用局部变量:

superclass = JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName
class ThisIsAVerlyLongClassName < superclass
superclass=JSONAPI::SomeOtherModule::另一个带有sanename的类
类ThisIsAVerlyLongClassName<超类

虽然类定义体有自己的非嵌套词法范围(如方法定义体),但超类表达式在包含范围内求值。换句话说,您可以只使用局部变量:

superclass = JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName
class ThisIsAVerlyLongClassName < superclass
superclass=JSONAPI::SomeOtherModule::另一个带有sanename的类
类ThisIsAVerlyLongClassName<超类

我刚刚发现一个类定义可以分成多行,如下所示:

class ThisIsAVerlyLongClassName <
  JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName
class这是一个非常长的类名<
JSONAPI::SomeOtherModule::另一个带有saneName的类

它在第二行中断了Atom中的语法高亮显示,但是代码运行并且所有测试都通过了

我刚刚发现一个类定义可以分成多行,如下所示:

class ThisIsAVerlyLongClassName <
  JSONAPI::SomeOtherModule::AnotherClassWithAnInsaneName
class这是一个非常长的类名<
JSONAPI::SomeOtherModule::另一个带有saneName的类

它在第二行中断了Atom中的语法高亮显示,但是代码运行并且所有测试都通过了

这是一种挑战性的方法!谢谢这是一种挑战性的方法!谢谢您可以在
@Jordan之前或之后添加换行符,谢谢!这就是我在自己的回答中所描述的,你可以在
@Jordan之前或之后添加换行符,谢谢!这就是我在自己的回答中所描述的