[#64517] Fw: Re: Ruby and Rails to become Apache Incubator Project — Tetsuya Kitahata <[email protected]>

What do you think? >> Ruby developers

13 messages 2014/08/23

[#64615] [ruby-trunk - Feature #10181] [Open] New method File.openat() — oss-ruby-lang@...

Issue #10181 has been reported by Technorama Ltd..

10 messages 2014/08/28
[#64616] Re: [ruby-trunk - Feature #10181] [Open] New method File.openat() — Eric Wong <normalperson@...> 2014/08/28

I like this feature.

[#64671] Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...>

Why this fix solve your problem?

9 messages 2014/08/30
[#64672] Re: Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...> 2014/08/30

(2014/08/30 8:50), SASADA Koichi wrote:

[ruby-core:64270] [ruby-trunk - Feature #10118] Double splat for non-symbol keys

From: rr.rosas@...
Date: 2014-08-08 15:08:59 UTC
List: ruby-core #64270
Issue #10118 has been updated by Rodrigo Rosenfeld Rosas.


From my point of view the same issues that come from introducing incompatibility come from keeping this confusing behavior where both strings and symbols can be used as identifiers but one have to understand that they are different and not interchangeable.

If you introduce a few incompatibilities (I don't think there are that many that couldn't be easily fixed for good) then you force a few users to update their code to not expect symbols from behaving differently from strings. I'm still to hear a good use case where this wouldn't be feasible/desired.

On the other hand, if you don't introduce this small compatibility issue you end up with an increased number of confusion caused by them being different. I counted already a ton of issues in Redmine related to confusions due to symbols and strings not being compatible to each other.

There's no free solution that would fix all confusions and avoid introducing any backward incompatibilities.

----------------------------------------
Feature #10118: Double splat for non-symbol keys
https://bugs.ruby-lang.org/issues/10118#change-48259

* Author: Tsuyoshi Sawada
* Status: Feedback
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
The double splat operator ** only seems to work with hashes whose keys are symbols. It will not work when a key is a string, for example. This is true for both ways; for construction:

    def foo **; end
    foo(:a => 3) #=> nil
    foo("a" => 3) #=> ArgumentError: wrong number of arguments (1 for 0)

and destruction:

    def bar *; end
    bar(**{:a => 3}) #=> nil
    bar(**{"a" => 3}) #=> TypeError: wrong argument type String (expected Symbol)

This is confusing. I propose that the double splat syntax should be extended so that it works even when the keys are not symbols.



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

In This Thread

Prev Next