带有配置块

时间:2015-10-09 18:46:24

标签: ruby-on-rails ruby command-line gem

我的宝石名为" Falcon"从命令行运行。使用ARGVOptionParser,我读取命令行输入并在我的应用程序中运行主Ruby类,没问题。

只要从Rails控制台调用它,就可以在初始化程序文件中使用配置块。在this basic pattern之后,我创建了以下内容,以便用户可以创建如下的初始化文件:

# config/initializers/falcon.rb

Falcon.configure do |c|
  c.allowed_setting = 'value'
end

然后,在Rails控制台中,我可以这样做:

Falcon.configuration.allowed_setting # => 'value'

但是,当我从命令行运行时,gem类不使用它们的set配置选项,但好像没有设置配置。我想这是因为从命令行执行并没有通过预先加载的初始化文件通过Rails环境。

我尝试过bundle exec falcon [command],但这并没有解决任何问题。有关如何解决此问题的任何想法,以便命令行使用Rails配置运行gem?

2 个答案:

答案 0 :(得分:1)

如果您的项目专注于Rails,您可能需要考虑构建引擎(因为它使集成和测试变得更加简单)。

另外,请查看Application.initialize!

答案 1 :(得分:1)

Ruby中没有自动加载配置文件的工具。你可以这样做。您需要通过在 自动加载的配置文件的Rails环境中运行来免费获得此行为,但您不能依赖于此继续在轨。

您应该在程序中添加-c--config选项,以便用户指定配置文件的路径,您可以加载该文件。