如何解析配置文件中的变量

时间:2016-02-26 12:07:30

标签: ruby variables

我有一个配置文件,我想以不同的格式解析和写入新文件。

我得到这种格式的变量

include 'includes/foo.inc';
include 'inlcudes/bar.whatever';

键都是字符串,值可以是string,bool,int。

有没有办法以有效的方式解析这个?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,可以使用以下代码:

ar = ["-key1 val1", "-key2 2", "-key3  true" ]
ar.map { |e| e =~ /\A-(\S+)\s+(.*)\z/ && [$1, $2] }.compact.to_h
#⇒ {
#  "key1" => "val1",
#  "key2" => "2",
#  "key3" => "true"
# }

除了猜测它们之外,没有能力转换类型。当-key value行存储在文件中时:

File.readlines("path/to/file.cfg").map do |e|
  e =~ /\A-(\S+)\s+(.*)\z/ && [$1, $2]
end.compact.to_h