lancepantz/clj-yaml — pull request #17 by elliot42 (2013-12-11 06:30:15+00:00)
Title: Use raw map key when it cannot be keywordized

YAML allows the keys in a map to be arbitrary nodes: scalar, sequence
or mapping. [1] Prior to this commit, the *keywordize* option was
incorrectly setting map keys to `nil` for any keys that could not be
keywordized via `(keyword k)`. For example, a valid integer key
"123: 456" would be parsed as {nil 456}, because `(keyword 123)`
evals to nil.

This commit fixes the issue by keywordizing any map key that can be
keyworded, and otherwise using the raw key if `(keyword k)` is nil.

This fixes Github lancepantz/clj-yaml issue #15. [2]

[1] http://www.yaml.org/spec/1.2/spec.html#id2764044
[2] https://github.com/lancepantz/clj-yaml/issues/15