2016-08-27 3 views
2

Ruby에서 프로그래밍 방식으로 YAML 파일을 편집해야한다는 요구가 있습니다. 불행히도 둘러싼 인용 문자를 유지해야합니다. 코멘트를 유지할 수 있다는 것은 보너스가 될 것입니다.Ruby에서 따옴표 나 주석을 잃지 않고 YAML 파일로드 및 저장

나는 파일이 있으면 말을하는 것입니다

:

--- 
foo: 'bar' 

또는

이 이
--- 
foo: "bar" 

내 스크립트가 다시 등을 쓸해야 언급 한 바와 같이

--- 
foo: bar 

과, 이상적 나는 또한 의견을 보존 할 필요가있다.

전체 파일을 텍스트 스트림으로 처리하는 과정을 거치지 않고 이러한 문제 중 하나 또는 둘 모두를 해결할 수있는 편리한 방법이 있습니까?

+0

[여기] (http://stackoverflow.com/questions/14532959/how-do-you-save-values-into-a-yaml-file) 지침을 따르지 않고 대신 문자열을 사용할 수 있습니까? 정수의? – Polyov

+0

주석 텍스트를 무시한 경우 루비에 존재하지 않으면 자신의 파서가 필요합니다. 따옴표를 지우는 파일은 yaml 스펙에 따라 문자열을 묶을 필요는 없지만 보통 문자열을 덜 모호하게 만들 때 포함됩니다 (예 :'[',']',',',' 그 안에''') – Rogue

답변

1

글을 쓰는 시점에서, 독자가 YAML 파서를 작성할 준비가되어 있지 않다면 루비에서 구현하는 것이 불가능한 것 같습니다. Perl과 Python을 포함한 다른 언어를 조사한 결과, Ruamel이라는 Python 라이브러리가 존재한다는 것을 알게되었습니다. 더 정확하게 말하자면, 모든 버그가 수정되었을 때이를 수행 할 수 있습니다! 그래서 파이썬으로 내 응용 프로그램을 다시 작성했습니다. 이 답변 here도 참조하십시오.

관련 문제