It is not a bug, but it is confusing. According the the YAML spec[1] numbers prefixed with a 0 signal an octal base (as does in Ruby). However 08 is not a valid octal number, so it doesn't get quoted.
produces this file:
---
"01": 08
"8": "01"
08: "01"
I do not understand why the 08s are not quoted. I tried it under ruby
1.8.2 and 1.8.4.
Is this expected?
I think so. The quotes are needed to disambiguate the string "01" from
the octal number. If quotes were not added by dump, then 01 would be
loaded as the fixnum 1 rather than the string "01". There's no ambiguity
with 08 because it is not legal octal, so it must be a string.
Well just guessing here, but you don't have to quote 08 because it couldn't be an octal number anyway, so it must be a string. I don't know if this is why this happens or if this is what the YAML spec says but it makes sense to me, sorta.
···
On Mar 22, 2006, at 7:57 PM, Matt R. wrote:
I'm getting some strange behavior with YAML in ruby regarding the
characters '08' in a hash.