我希望rubocop总是只缩进一次。另外,elsif和end根本不应缩进。像这样:
@shop = api
.shop('de')['storefronts']
.find_all do |front|
front['name'] == 'WeeklyStorefront' ||
front['name'] == 'DailyStorefront'
end
.map { |front| font['catalogEntries'] }
.flatten
.map { |item| item['devName'] }
应如下所示:
@shop = api
.shop('de')['storefronts']
.find_all do |front|
front['name'] == 'WeeklyStorefront' ||
front['name'] == 'DailyStorefront'
end
.map { |front| font['catalogEntries'] }
.flatten
.map { |item| item['devName'] }
这:
mode = if key.include? '_p2'
'Solo'
elsif key.include? '_p10'
'Duo'
else
'Squad'
end
应如下所示:
mode = if key.include? '_p2'
'Solo'
elsif key.include? '_p10'
'Duo'
else
'Squad'
end
我尝试了许多不同的配置选项,但我从未使其正常工作。
我尝试过:
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
产生以下结果的
@shop = api
.shop('de')['storefronts']
.find_all do |front|
front['name'] == 'WeeklyStorefront' ||
front['name'] == 'DailyStorefront'
end
.map { |front| front['catalogEntries'] }
.flatten
.map { |item| item['devName'] }
和
mode = if key.include? '_p2'
'Solo'
elsif key.include? '_p10'
'Duo'
else
'Squad'
end
哪个更好,但仍然不是我想要的。
答案 0 :(得分:2)
在第一个示例中,您可以使用.rubocop.yml
文件中的选项Layout/MultilineMethodCallIndentation
来为多行表达式强制采用其他样式。
对于第二个示例,您可以配置Layout/MultilineAssignmentLayout
和Layout/EndAlignment
。
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
Layout/MultilineAssignmentLayout:
EnforcedStyle: same_line
Layout/EndAlignment:
EnforcedStyleAlignWith: variable