gpt4 book ai didi

Ruby:结合 OptionParser 的配置文件解析器

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:22 24 4
gpt4 key购买 nike

我有一个使用 OptionParser 的脚本,我想为该程序添加配置文件,该文件将具有 option = value 格式和 # comments。有没有办法让 OptionParser 解析文件或某些类能够使用 OptionParser 规则和配置文件的开关?

谢谢。

最佳答案

据我所知,您的要求没有内置支持,但这是可以理解的,因为有很多方法可以实现它。我会使用 default_options 哈希 + YAML 配置文件:

default_options = {
:name => nil,
:verbose => false,
}

options = default_options
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-v", "--verbose", "Run verbosely") do
options[:verbose] = true
end
opts.on("-n", "--name NAME", "Set name") do |name|
options[:name] = name
end
opts.on("-f", "--configfile PATH", String, "Set config file") do |path|
options.merge!(Hash[YAML::load(open(path)).map { |k, v| [k.to_sym, v] }])
end
end.parse!
p options

配置 YAML 示例:

# config.yml
verbose: true
name: name_fromconf

这是结果(带有覆盖的示例):

$ ruby example.rb -f config.yml -n "hello"
{:name=>"hello", :verbose=>true}

关于Ruby:结合 OptionParser 的配置文件解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com