2013-02-14 92 views
1

我正在寻找将运行时参数传递给我的Ruby代码。我有一个Java背景,在大多数情况下,如果我想重写一个配置,我会使用一个具有理智默认值的系统属性。设置Ruby运行时配置参数?

例如,如果我写了一个测试对一个REST API为localhost,然后要运行它针对的集成环境,并要调整的基础URL:

$ rake -Cbaseurl=https://i-env.company.com/tbse/ test 

是否有一个等同于系统特性在Ruby中? 有没有人们使用的标准模式?

我知道如何使用/加载YAML配置以及参考环境变量。

+0

根据您的示例,不要忘记命令行参数。 [Trollop](http://trollop.rubyforge.org/)是一个很好的宝石。 – maerics 2013-02-14 22:42:25

回答

1

来自UNIX世界的Ruby,其中这是命令行参数和环境变量。

命令行参数应该用于通常更改并且依赖运行的事物。这些都是详细标志,输出文件或目标URL。用Ruby stdlib OptionParser访问它们。

环境变量适用于变化较小的情况,通常是跨应用程序。像系统可执行文件路径($PATH)。使用内置的Ruby env对象来访问这些对象。

对于其他的东西,比如配置,使用配置文件。在Ruby中,这些通常是YAML格式。使用Ruby stdlib yaml这些库。