Yaml,计算包括空行的行

时间:2014-01-02 09:35:27

标签: ruby-on-rails ruby yaml

我正在解析yaml文件并搜索特定值,搜索匹配后我想获取行号并打印它。我设法做到了这一点,但主要问题是在使用YAML.LOAD解析yaml文件时,空行被忽略。 我可以使用键计算其余行,即每行1个键,但我无法计算空行。请帮忙,现在已经坚持了几天。

这就是我的代码的样子:

hash = YAML.load(IO.read(File.join(File.dirname(__FILE__), 'en.yml')))
def recursive_hash_to_yml_string(input, hash, depth = 0)
  hash.keys.each do |search| 
    @count = @count + 1 
    if hash[search].is_a?(String) && hash[search] == input
      @yml_array.push(@count)  
    elsif hash[search].is_a?(Hash)
      recursive_hash_to_yml_string(input, hash[search], depth + 1)
    end
  end
end

1 个答案:

答案 0 :(得分:0)

我同意@Wukerplank - 解析文件应该忽略空白行。您可能想要考虑使用不同的方法查找行号。

也许你根本不需要解析YAML。如果您只是在文件中搜索某些匹配的文本并返回行号,那么您可以使用File.each_line更好地阅读文件的每一行。

您可以迭代文件中的每一行,直到找到匹配项,然后对行号进行操作。