存储过程集合的Ruby最佳实践

时间:2015-05-18 15:56:44

标签: ruby

我正在为我的应用程序编写回归测试,并使用类Page。每个页面都有一个nav_to方法,需要在初始化实例时使用proc设置。

我目前在全球范围内列出了40个一些触发器,对我来说这似乎很草率。存储这些过程的最佳做法是什么?我应该将它们存储在模块中吗?哈希?类?请帮忙!

1 个答案:

答案 0 :(得分:1)

考虑将它们存储在模块(或类)常量中,以便可以对它们进行分组和清晰命名。您选择的数据结构(数组与散列)可能最大程度上取决于您所需的接口(它们是否与某些键相关联,或者仅仅是订购?)和性能问题(如果相关):

module MyTests # ...or "class"

  NAV_TO_PROCS = [
    Proc.new { ... },
    Proc.new { ... },
  ]

  # ... or ...

  NAV_TO_BY_PAGE_NAME = {
    "page1" => Proc.new { ... },
    "page2" => Proc.new { ... },
  }

end

顺便说一下,当使用模块常量时,我​​喜欢“冻结”它们以避免在使用过程中意外突变(例如NAV_TO_PROCS = [...].freeze)。