6 ms·
I love the simplicity of YAML::Store. It was introduced in Ruby 1.8, almost 20 years ago (https://github.com/ruby/ruby/commit/55f4dc4c9a5345c28d0da750d1ee00fbb0
by brunno 4y ago
I love the simplicity of YAML::Store. It was introduced in Ruby 1.8, almost 20 years ago (https://github.com/ruby/ruby/commit/55f4dc4c9a5345c28d0da750d1ee00fbb0870885 https://github.com/ruby/ruby/commit/55f4dc4c9a5345c28d0da750...).
I even created a little gem when I was starting with Ruby, 10 years ago, that was a very thin wrapper around it so that I could play around using an ActiveRecord like syntax (https://github.com/brunnogomes/active_yaml https://github.com/brunnogomes/active_yaml). I used in some pet projects so I could do stuff like:
p = Post.new
p.title = "Great post!"
p.body = "Lorem ipsum..."
p.save
Post.all # => [#<Post:0x895bb38 @title="Great post!", @body="Lorem ipsum...", @id=1>]
Post.find(1) # => #<Post:0x954bc69 @title="Great post!", @body="Lorem ipsum...", @id=1>
Post.where(author: 'Brunno', visibility: 'public')
# => [#<Post:0x895bb38 @author="Brunno", @visibility="public", @id=1>, #<Post:0x457pa36 @author="Brunno", @visibility="public", @id=2>]
And have access to the data directly in the YAML files.
Good times!
- 3pt14159 4y agoThe problem with YAML is that meaningful whitespace means that the size grows quickly for highly nested documents. I don't love XML, but there is a reason I recommended Ox. I've used it for real projects and it never fell over like so many of the alternatives I've tried where databases were not in the cards.
- fny 4y agoThe problem with XML is that angle bracket expressions take up too much space because you need to duplicate element names. I don't love JSON, but there is a reason I recommend OJ. ... The problem with JSON is that the keys take up too much space because they are duplicated. I don't love BSON, but there's a reason why I recommend bson-ruby. And I could keep going... ;) The benefit of using YAML is precisely that there's meaningful whitespace. Different strokes for different folks.