如何点击YAML文件,而不必将其上传到http://yamllint.com?
例如,如果我有
people:
1:
:name: John Smith
:name: Jane Smith
如何让它警告我最后:name
覆盖了第一个:name
?
我正在使用Ruby 2.1和Ubuntu 12.04。
答案 0 :(得分:2)
这是你之后的事吗?
require 'yaml'
def check_yaml(filename)
unless YAML.dump(YAML.load_file(filename)) == File.read(filename).gsub(/\s*#.*/, '')
raise 'problem'
end
end
check_yaml 'somefile.yml'
答案 1 :(得分:2)
yamllint命令行工具可以完成您的工作 想:
sudo pip install yamllint
具体来说,它有一个检测重复和键的规则key-duplicates
相互叠加:
$ yamllint test.yml
test.yml
1:1 warning missing document start "---" (document-start)
4:5 error duplication of key ":name" in mapping (key-duplicates)
(它有许多其他规则可以启用/禁用或调整。)
答案 2 :(得分:0)
如何导入1.yaml
,然后导出到2.yaml
和diff 1.yaml 2.yaml
呢?
无法提供代码 - 在这台机器上没有nix utils,但你已经有了这个想法。