[#36034] [Backport92 - Backport #4651][Open] Bus Error using continuation on x86_64-darwin11.0.0 (Lion) — Erik Michaels-Ober <sferik@...>

17 messages 2011/05/07

[#36058] draft schedule of Ruby 1.9.3 — "Yuki Sonoda (Yugui)" <yugui@...>

-----BEGIN PGP SIGNED MESSAGE-----

18 messages 2011/05/09

[#36131] Re: [ruby-cvs:38172] Ruby:r30989 (trunk): * include/ruby/win32.h: define WIN32 if neither _WIN64 nor WIN32 defined. it forces to use push/pop for pack(4) pragma. — "Yuki Sonoda (Yugui)" <yugui@...>

Hi arton,

7 messages 2011/05/12

[#36156] [Ruby 1.9 - Bug #4683][Open] [PATCH] io.c: copy_stream execute interrupts and retry — Eric Wong <normalperson@...>

11 messages 2011/05/12

[#36316] [Ruby 1.9 - Bug #4731][Open] ruby -S irb fails with mingw/msys vanilla builds — Roger Pack <rogerpack2005@...>

12 messages 2011/05/18

[#36329] [Ruby 1.9 - Bug #4738][Open] gem install fails with "Encoding::ConverterNotFoundError" on windows 7 greek — Ilias Lazaridis <ilias@...>

11 messages 2011/05/19

[#36390] [Ruby 1.9 - Feature #4766][Open] Range#bsearch — Yusuke Endoh <mame@...>

23 messages 2011/05/22

[#36406] 1.8.7 release next month — Urabe Shyouhei <shyouhei@...>

Hello core people,

18 messages 2011/05/23
[#36414] Re: 1.8.7 release next month — Luis Lavena <luislavena@...> 2011/05/23

2011/5/23 Urabe Shyouhei <shyouhei@ruby-lang.org>:

[#36487] Re: 1.8.7 release next month — Urabe Shyouhei <shyouhei@...> 2011/05/26

Hi Luis,

[#36488] Re: 1.8.7 release next month — Hidetoshi NAGAI <nagai@...> 2011/05/26

From: Urabe Shyouhei <shyouhei@ruby-lang.org>

[#36496] Re: 1.8.7 release next month — Hidetoshi NAGAI <nagai@...> 2011/05/26

From: Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>

[#36712] Re: 1.8.7 release next month — Urabe Shyouhei <shyouhei@...> 2011/06/03

Ping Luis, how's it going?

[#36748] Re: 1.8.7 release next month — Luis Lavena <luislavena@...> 2011/06/05

On Fri, Jun 3, 2011 at 5:18 AM, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:

[#36434] [Ruby 1.9 - Feature #4774][Open] User Friendly Handling of "Encoding::ConverterNotFoundError" — Lazaridis Ilias <ilias@...>

11 messages 2011/05/24

[#36447] [Ruby 1.9 - Bug #4777][Open] Ruby 1.9.2-p180 ignoring INT, TERM, and QUIT until it receives CONT — Nathan Sobo <nathansobo@...>

10 messages 2011/05/25

[#36559] [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Tom Wardrop <tom@...>

48 messages 2011/05/30
[#36560] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Yukihiro Matsumoto <matz@...> 2011/05/30

Hi,

[#36571] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Anurag Priyam <anurag08priyam@...> 2011/05/30

> Iff 'key': 'value'} means {:key => 'value'} I have no objection.

[#36573] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Yukihiro Matsumoto <matz@...> 2011/05/30

Hi,

[#36578] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Cezary <cezary.baginski@...> 2011/05/30

On Mon, May 30, 2011 at 04:21:32PM +0900, Yukihiro Matsumoto wrote:

[#36580] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2011/05/30

Em 30-05-2011 07:58, Cezary escreveu:

[#36581] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Michael Edgar <adgar@...> 2011/05/30

Since :"#{abc}" is allowed in Ruby, I imagine that any such substitute syntax would preserve that property.

[#36587] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings — Cezary <cezary.baginski@...> 2011/05/30

On Mon, May 30, 2011 at 09:05:04PM +0900, Michael Edgar wrote:

[ruby-core:36580] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings

From: Rodrigo Rosenfeld Rosas <rr.rosas@...>
Date: 2011-05-30 11:58:54 UTC
List: ruby-core #36580
Em 30-05-2011 07:58, Cezary escreveu:
> On Mon, May 30, 2011 at 04:21:32PM +0900, Yukihiro Matsumoto wrote:
>> Hi,
>>
>> In message "Re: [ruby-core:36571] Re: [Ruby 1.9 - Feature #4801][Open] Shorthand Hash Syntax for Strings"
>>      on Mon, 30 May 2011 16:12:35 +0900, Anurag Priyam<anurag08priyam@gmail.com>  writes:
>> |Won't that be misleading? I think the OP wants {'key': 'value'} to
>> |mean {'key' =>  'value}.
>>
>> I don't disagree here.  But considering the fact that {key: "value"}
>> is a shorthand for {:key =>  "value"}, {"key": "value"} should be a
>> shorthand for {:"key" =>  "value"}.  Besides that, since it reminds me
>> JSON so much, making a: and "a": different could cause more confusion
>> than the above misleading.
>>
>> 							matz.
> Misleading, yes - but I think this is only a symptom of a bigger
> problem.
>
> In Rails projects I can never be sure if the Hash object I am working
> accepts symbols (usually), strings (sometimes) or is a
> HashWithIndifferentAccess and doesn't matter until a plugin builds its
> own Hash from the contents.
>
> The current Hash behavior is the most generic and flexible, but
> unfortunately both the most surprising for novices and least
> practical, IMHO.
>
> My thought: warn when mixing string and symbol access in a Hash,
> because it is most likely an error. It becomes too easy to
> accidentally mix external data (String based hashes, though not
> always) with code/language constructs (usually Symbol based hashes).
>
> With a warning, you won't guess the syntax wrong and not know
> immediately.
>
> I am wondering: is having strings as keys instead of symbols in a Hash
> actually useful? Aside from obscure string/symbol optimization cases?
>
> Another idea would be a Ruby SymbolHash, StringHash accessible
> from C API that raises when used incorrectly. And methods for
> conversion between the two would probably clean up a lot of code.
>
> HashWithIndifferentAccess is cool, but it is only a workaround to
> reduce surprise, not to prevent the root cause of it.
> ...

While on the subject, I really wished that hash constructor ({}) was an 
instance of HashWithIndiferentAccess from the beginning in Ruby. 
Actually, it should still be Hash, but should work like 
HashWithIndiferentAccess.

It is very misleading that my_hash[:something] != my_hash['something']. 
Also, I never found any useful on allowing that. Most of times an 
HashWithIndiferentAccess is what you really want.

Changing back to the subject (kind of), in Groovy, here is what happens:

a = [abc: 'some text']; a['abc'] == 'some text'
a = [1: 'some text']; a.keySet()*.class == [java.lang.Integer]

In Ruby, {1: 'some text'} will raise an error. It would be great if it 
allowed numer indexing of hashes with the same syntax.

About {'abc': 'some text'}, it is ok to me to return {:'abc' => 'some 
text'}. But I think this should also be possible:

abc = 'cba'
{"#{abc}": 'some text'} == {:'cba' => 'some text'}

This is also possible in Groovy.

Here are my 2 cents.

In This Thread