Rubocop конфигурация отступов
Я хотел бы, чтобы 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
что лучше, но все же не то, что я хотел.
1 ответ
Решение
Вы можете использовать опцию Layout/MultilineMethodCallIndentation
в вашем .rubocop.yml
файл для применения другого стиля для многострочных выражений в первом примере.
Для вашего второго примера вы можете настроить Layout/MultilineAssignmentLayout
а также Layout/EndAlignment
,
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
Layout/MultilineAssignmentLayout:
EnforcedStyle: same_line
Layout/EndAlignment:
EnforcedStyleAlignWith: variable