gpt4 book ai didi

ruby - 允许返回的 block 用大括号

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:13 25 4
gpt4 key购买 nike

当我编写返回值的多行 block 时,我喜欢使用大括号而不是 do-end 以表明block 是返回东西,而不是做东西。

Rubocop 的标准配置不允许这样做,rubocop -a 将任何多行 block 转换为 do-end block 。

# I like but Rubocop hates.
expect {
delete :destroy, id: thing.to_param
}.to change(Thing, :count).by(-1)

# I don't like but Rubocop does.
expect do
delete :destroy, id: thing.to_param
end.to change(Thing, :count).by(-1)

# That, we both like.
before do
stub_api_calls
admin_sign_in create(:super_admin)
end

Rubocop 中是否有任何配置参数允许这种区分?

编辑:或者,至少,如果右括号后有一个点 (.),则可以避免更改括号 block 。

最佳答案

我发现有一个警察叫 Style/BlockDelimiters这样就可以了。配置为语义,它在功能 block 周围强制使用大括号,并在命令代码周围执行..end。

这是我添加到 .rubocop.yml 中的内容:

# Allow curly braces for functional blocks
BlockDelimiters:
EnforcedStyle: semantic

关于ruby - 允许返回的 block 用大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34506691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com