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]
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