Feature #13045
closed
Passing a Hash with String keys as keyword arguments
Added by ch1c0t (Anatoly Chernow) over 7 years ago.
Updated about 7 years ago.
Description
To the following method
def new request:, response:
end
I'd like to be able to pass both
hash_with_symbol_keys = { request: another_hash, response: another_hash2 }
hash_with_string_keys = { 'request' => another_hash, 'response' => another_hash2 }
I would make a lot cleaner parsing many things returned with string keys(like the output of YAML.load
).
If you don't like the above feature, could you please at least consider adding Hash#symbolize_keys
(like you did with Hash#transform_values
)?
- Description updated (diff)
- Description updated (diff)
I'm not a fun for this idea, since Symbol
and String
are different.
Nobuyoshi Nakada wrote:
I'm not a fun for this idea, since Symbol
and String
are different.
They are different. However, sometimes they are treated as the same(for example, when passed as a method name to BasicObject#send
).
Hashes with string keys are ubiquitous. Should this idea be accepted, processing them would become a lot simpler.
(Thank you for your corrections of my initial message.)
I would agree with a way/method to convert string-keys into symbol-keys.
I have no idea if this should be Hash#symbolize_keys or another name - perhaps
#transform_keys and allow either to_string or to_symbol conversion - but I
agree with a convenience method that could turn keys into one or the other.
Perhaps this would also reduce the need for strange things such as
HashWithIndifferentAccess. Newcomers will always wonder whether they should
use strings or symbols (or even worse, both at the same time in the same
hash).
Robert A. Heiler wrote:
Perhaps this would also reduce the need for strange things such as
HashWithIndifferentAccess. Newcomers will always wonder whether they should
use strings or symbols (or even worse, both at the same time in the same
hash).
First of all, why do you want to access them indifferently?
It just sounds a diabolical habit, to me.
- Status changed from Open to Rejected
Rejected. method to convert string-keys into symbol-keys or transform_keys
may be good ideas.
Matz.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0