我正在寻找将运行时参数传递给我的Ruby代码。我有Java背景,在大多数情况下,如果我想覆盖配置,我会使用具有理智默认值的系统属性。
例如,如果我针对localhost编写针对REST API的测试,那么希望针对集成环境运行它并想要调整基本URL:
$ rake -Cbaseurl=https://i-env.company.com/tbse/ test
Ruby中是否存在等效的系统属性? 人们正在使用标准模式吗?
我知道如何使用/加载YAML配置以及参考环境变量。
答案 0 :(得分:1)
Ruby来自UNIX世界,这是命令行参数和环境变量。
命令行参数应该用于通常更改且依赖于运行的事物。这些类似于详细标志,输出文件或目标URL。使用Ruby stdlib OptionParser访问它们。
环境变量适用于频率变化较少且通常跨应用程序的变量。系统可执行路径($PATH
)之类的东西。使用内置的Ruby env
对象来访问它们。
对于其他内容,例如配置,请使用配置文件。在Ruby中,这些通常是YAML格式。使用Ruby stdlib yaml
库来实现这些目的。