Feature #9445

Support emitting 1.9 Symbol keyword Hash syntax when pretty printing Hashes

Added by postmodern (Hal Brodigan) over 3 years ago. Updated over 3 years ago.

Target version:


Ruby 1.9 first introduced support for keyword Hash syntax for simple Symbol keys. However, Hash#inspect and pp do not emit the same syntax when printing Symbol keys. This patch adds support for "foo: " syntax to the pp_hash method, iff the key is a Symbol and does not contain any spaces or special characters. While the patch is probably not perfect, I hope to start a discussion.

pp.patch View - Patches the pp_hash method to emit "foo: " syntax for Symbol Hash keys (529 Bytes) postmodern (Hal Brodigan), 01/24/2014 02:11 AM


#1 [ruby-core:60051] Updated by nobu (Nobuyoshi Nakada) over 3 years ago

Mixing foo: and bar => doesn't seem pretty to me.

#2 [ruby-core:60053] Updated by postmodern (Hal Brodigan) over 3 years ago

While it may not be pretty, it is still valid Ruby syntax. If others disagree with mixing the two syntaxes, I can adjust the patch.

#3 [ruby-core:60054] Updated by phluid61 (Matthew Kerwin) over 3 years ago

I think it's better to not add unnecessary complexity. After all, we don't represent strings with single quotes, even when they don't contain escaped characters, and even when they do contain double-quote characters.

Also available in: Atom PDF