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 在rubocp中强制第一个散列和数组元素位于同一行_Ruby_Rubocop - Fatal编程技术网

Ruby 在rubocp中强制第一个散列和数组元素位于同一行

Ruby 在rubocp中强制第一个散列和数组元素位于同一行,ruby,rubocop,Ruby,Rubocop,我正在寻找一种方法来强制使用rubocop编写哈希和数组: a = { first: 'a', second: 'b' } 我找到了强制使用大括号和缩进的规则。但无法强制第一个元素与左大括号内联。可能吗 到目前为止,我发现了Style/FirstHashElementLineBreak,但它的作用正好相反 要强制闭合大括号与最后一个键位于同一行,我使用以下命令: Style/MultilineHashBraceLayout: EnforcedStyle: same_line

我正在寻找一种方法来强制使用rubocop编写哈希和数组:

a = { first: 'a',
      second: 'b' }
我找到了强制使用大括号和缩进的规则。但无法强制第一个元素与左大括号内联。可能吗

到目前为止,我发现了
Style/FirstHashElementLineBreak
,但它的作用正好相反

要强制闭合大括号与最后一个键位于同一行,我使用以下命令:

Style/MultilineHashBraceLayout:
  EnforcedStyle: same_line
但是,如果不强制打开大括号与第一个关键点位于同一条线上,这种设置就没有意义


我在问那些曾经尝试过做类似事情的人,或者对rubocop的配置有很好的了解的人,有没有可能这样做,如果有,怎么做?

首先,
Style/multilehashbracelayout
已重命名为
Layout/multilehashbracelayout
,现在它的默认配置
symmetric
正是您想要的

:

使用对称(默认)样式时:

如果散列的左大括号与 散列,则右大括号应与 散列的最后一个元素

如果散列的左大括号位于 散列,则右大括号应位于最后一行的下方 散列的元素


因此,在上面的代码上运行
rubocop——只有Layout/multilehashbracelayout
才会产生攻击。

通常,我们将所有内容放在一行中进行短哈希,或者用大括号分隔成多行。Rubocop以一种特定的方式来满足Ruby社区的编码准则。更改它将破坏这种兼容性。我建议您习惯于编写符合指导原则的代码,否则您会发现代码审查可能会非常尴尬。Rubocop可配置为强制执行不同的可能规则集。不同的公司开发出更适合其环境的风格。我从GitHub和ThoughtBot等公司的互联网上发现了许多不同的配置。我正在寻找一种方法,将其配置为使用公司认可的编码风格,这种风格不太可能改变。这是真的。公司是不同的,尽管即使在我们的公司,我们也接受常规形式,因为我们使用并创建了开源。问你这样的问题的堆栈溢出方式是展示你尝试了什么,并解释为什么它不起作用。这有助于缩小问题范围,加快回答速度。请参阅“”及其链接页面,以及“”。我认为问题很简单:是否可以强制执行我在示例中提出的样式。我还写了我尝试过的和找不到的。Rubocop文档非常庞大,缺少一些实际实现的特性。所以我在问那些曾经尝试过做类似事情的人,或者对Rubocp的配置有很好的了解的人,有没有可能做到这一点,如果有,如何做到。“Rubocp以一种特定的方式来做事情,以符合Ruby社区的编码准则。”虽然过去是这样,但现在已经不是这样了。RuboCop现在希望实现完全的可配置性,使人们能够执行公司的指导方针。