用于多行参数的Ruby样式练习,后跟一个块

时间:2015-01-21 18:35:12

标签: ruby coding-style

当你有一个方法调用,多行参数和一个块时,ruby中样式和缩进的一般推荐是什么。例如

collection :available_surveys,
  exec_context: :decorator,
  class: Survey,
  skip_render: lambda {|object, opts| opts[:show_all_surveys] != true } do
    property :name, as: :survey_name
    property :id
  end

该方法是集合,它有4个参数分布在多行,然后是一个块参数。我的一位同事认为上面的缩进样式使得块看起来像是与最后一个参数相关联,而不是收集方法。我无法在互联网上找到任何明确的风格建议。

1 个答案:

答案 0 :(得分:3)

对于这样一个复杂的方法调用,我会单独构建参数并将它们展开:

collection_args = [
  :available_surveys,
  {
    exec_context: :decorator,
    class: Survey,
    skip_render: lambda {|object, opts| opts[:show_all_surveys] != true }
  }
]
collection *collection_args do
  property :name, as: :survey_name
  property :id
end