Issue #16985 has been updated by sawa (Tsuyoshi Sawada).


shyouhei (Shyouhei Urabe) wrote in #note-4:
> There are lots of debatable points on String#inspect (for instance its re=
turn value depends on runtime locale, why?).  Improving it can quite easily=
 jump into a bikeshed.  You might want to separate Hash's and String's disc=
ussions and focus on the Hash side, because almost nobody would against tha=
t part I guess.

Actually, the issue on hash and that on string are related. If a symbol key=
 needs quotation, should that be single quotes or double quotes?

```ruby
# =3D> {'3': 1}
# =3D> {"3": 1}
```

And as for me, I am rather against the proposal here regarding hash, but no=
t so much on string.

----------------------------------------
Feature #16985: Improve `pp` for `Hash` and `String`
https://bugs.ruby-lang.org/issues/16985#change-86322

* Author: marcandre (Marc-Andre Lafortune)
* Status: Open
* Priority: Normal
* Assignee: akr (Akira Tanaka)
----------------------------------------
Could we improve `pp` for `Hash` and `String`:

```ruby
pp({hello: 'My name is "Marc-Andr=E9"'})
# =3D>
{hello: 'My name is "Marc-Andr=E9"'} =

# instead of
{:hello=3D>"My name is \"Marc-Andr=E9\""}
```

If any key is non-symbol, they would continue to be output as `<key> =3D> <=
value>`. If a string contains single quotes, or characters that need escapi=
ng (e.g. `"\n"`), current format would be used.

I'll gladly provide a PR if this is deemed acceptable.

I would even like this for `String#inspect` and `Hash#inspect` but it's not=
 clear if this could lead to much incompatibility (maybe test suites?)



-- =

https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=3Dunsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>