繁体   English   中英

带有配置块的命令行Ruby gem

[英]Command-line Ruby gem with configuration block

我的名为“ Falcon”的宝石从命令行运行。 使用ARGVOptionParser ,我读取了命令行输入并在我的应用程序中运行了主要的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM