Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is there a triple dash (---) in some of my (Rails) locale files? [duplicate]

Tags:

ruby

yaml

hash

I am modifying a YAML file in Ruby. After I write back the modified YAML, I see a --- added on top of the file. How is this getting added and how do I get rid of it?

like image 846
Ava Avatar asked Jan 21 '14 07:01

Ava


1 Answers

YAML spec says:

YAML uses three dashes (“---”) to separate directives from document content. This also serves to signal the start of a document if no directives are present.

Example:

# Ranking of 1998 home runs
---
- Mark McGwire
- Sammy Sosa
- Ken Griffey

# Team ranking
---
- Chicago Cubs
- St Louis Cardinals

So if you have multiple documents per YAML file, you have to separate them by three dashes. If you only have one document, you can remove/omit it (I never had a problem with YAML in ruby if three-dashes was missing). The reason why it's added when you yamlify your object is that, I guess, the dumper is written "by the spec" and doesn't care to implement such "shortcuts" (omit three-dashes when it's only one document).

like image 57
Sergio Tulentsev Avatar answered Nov 11 '22 10:11

Sergio Tulentsev