[英]Command-line Ruby gem with configuration block
我的名为“ Falcon”的宝石从命令行运行。 使用ARGV
和OptionParser
,我读取了命令行输入并在我的应用程序中运行了主要的Ruby类,没问题。
只要从Rails Console调用它,它就可以在初始化程序文件中包含一个配置块。 遵循此基本模式 ,我使它能够使用户创建类似于以下内容的初始化文件:
# config/initializers/falcon.rb
Falcon.configure do |c|
c.allowed_setting = 'value'
end
然后,在Rails控制台中,我可以这样做:
Falcon.configuration.allowed_setting # => 'value'
但是,当我从命令行运行时,gem类不使用其设置的配置选项工作,而是好像未设置任何配置。 我想这是因为从命令行执行不会通过带有预加载的初始化文件的Rails环境进行。
我试过运行bundle exec falcon [command]
,但这不能解决任何问题。 关于如何解决此问题的任何想法,以便命令行使用Rails配置运行gem?
如果您的项目专注于Rails,则您可能需要考虑构建一个引擎(因为它使集成和测试变得更加简单)。
另外,请检查Application.initialize!
。
Ruby中没有提供自动加载配置文件的功能。 这样做取决于您。 You'need来一直在获得这一行为自由通过Rails环境那里有自动加载配置文件中运行,但你不能依赖这种持续的Rails之外工作。
您应该在程序中添加-c
或--config
选项,该选项使用户可以指定要加载的配置文件的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.