我的宝石名为" Falcon"从命令行运行。使用ARGV
和OptionParser
,我读取命令行输入并在我的应用程序中运行主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?
答案 0 :(得分:1)
如果您的项目专注于Rails,您可能需要考虑构建引擎(因为它使集成和测试变得更加简单)。
另外,请查看Application.initialize!
。
答案 1 :(得分:1)
Ruby中没有自动加载配置文件的工具。你可以这样做。您需要通过在 自动加载的配置文件的Rails环境中运行来免费获得此行为,但您不能依赖于此继续在轨。
您应该在程序中添加-c
或--config
选项,以便用户指定配置文件的路径,您可以加载该文件。