[#407882] Ruby extremely slow compared to PHP — Mick Jagger <lists@...>

Hello there, how are you? Hope you are fine. I am a PHP programmer

17 messages 2013/06/02

[#407908] TCPServer/Socket and Marshal problem — Panagiotis Atmatzidis <atma@...>

Hello,

18 messages 2013/06/03

[#407946] Is rubyquiz.com dead? — Alphonse 23 <lists@...>

Thread title says everything.

18 messages 2013/06/04

[#408012] Need help understanding recursion. — pedro oliva <lists@...>

Ive been reading Chris Pine's book 'Learn to Program' and its been going

11 messages 2013/06/06

[#408129] Getting Started With Development — Chamila Wijayarathna <cdwijayarathna@...>

I'm new to Ruby Development. I downloaded source from Github, but couldn't

24 messages 2013/06/11
[#408131] Re: Getting Started With Development — Per-erik Martin <lists@...> 2013/06/11

Ruby is often installed on linux, or can be easily installed with the

[#408146] Re: Getting Started With Development — "Chamila W." <lists@...> 2013/06/11

Per-erik Martin wrote in post #1112021:

[#408149] Re: Getting Started With Development — "Carlo E. Prelz" <fluido@...> 2013/06/11

Subject: Re: Getting Started With Development

[#408198] NokoGiri XML Parser — "Devender P." <lists@...>

Hi,

11 messages 2013/06/13

[#408201] trying to load a .rb file in irb — "Eric D." <lists@...>

I am trying to load a ruby program into irb and it will not load.

12 messages 2013/06/13

[#408205] Can I use Sinatra to render dynamic pages? — Ruby Student <ruby.student@...>

Hell Team,

18 messages 2013/06/13
[#408219] Re: Can I use Sinatra to render dynamic pages? — Nicholas Van Weerdenburg <vanweerd@...> 2013/06/14

You should be able to do this without JavaScript by using streaming.

[#408228] Re: Can I use Sinatra to render dynamic pages? — Ruby Student <ruby.student@...> 2013/06/14

Well, I got some good suggestions from everyone here. I thank you all for

[#408275] Compare and sort one array according to another. — masta Blasta <lists@...>

I have two arrays of objects that look something like this:

14 messages 2013/06/17

[#408276] Comparing objects — "Thom T." <lists@...>

How do I compare two objects in Ruby, considering only attributes

15 messages 2013/06/17

[#408307] getting the most out of Ruby — robin wood <lists@...>

I write a lot of scripts in Ruby, most are small simple things but some

13 messages 2013/06/18

[#408309] Creating ruby script exe — Rochit Sen <lists@...>

Hi All,

17 messages 2013/06/18

[#408357] Beginners problem with database and datamapper — cristian cristian <lists@...>

Hi all!

28 messages 2013/06/20

[#408437] How do I input a variable floating point number into Ruby Programs — "Michael P F." <lists@...>

I want to evaluate the following interactively:

10 messages 2013/06/23

[#408518] #!/usr/bin/env: No such file or directory — Todd Sterben <lists@...>

I am new to both linux and ruby. I am using Ubuntu and Ruby 1.9

17 messages 2013/06/27

[#408528] Designing a Cabinet class — Mike Vezzani <lists@...>

Hello all,

12 messages 2013/06/27

[#408561] Find elment in array of hashes — Rodrigo Lueneberg <lists@...>

array = {:id=>1, :price =>0.25} # index[0]

23 messages 2013/06/28

Re: Confusin with Hash default

From: Mike Stok <mike@...>
Date: 2013-06-23 14:41:49 UTC
List: ruby-talk #408434
On 2013-06-23, at 3:33 AM, Love U Ruby <lists@ruby-forum.com> wrote:

> Humm.. Great catch.. Thanks for your help ;
>=20
> h =3D {}
> h[:a] =3D 2
> h # =3D> {:a=3D>2}
>=20
> h =3D Hash.new([])
> h[:a] =3D h[:a] << 2
> h # =3D> {:a=3D>[2]}
>=20
> --=20
> Posted via http://www.ruby-forum.com/.

Watch out using Hash.new([]) - you have to be aware of what it does.  It =
sets the hash's default object, and there is only one of them per hash, =
and you might not see the expected list of keys because you are updating =
the Hash's default object:

ratdog:tmp mike$ pry
[1] pry(main)> h =3D Hash.new([])
=3D> {}
[2] pry(main)> h[:a] << 2
=3D> [2]
[3] pry(main)> h[:b] << 3
=3D> [2, 3]
[4] pry(main)> h[:a].object_id
=3D> 70203880282800
[5] pry(main)> h[:b].object_id
=3D> 70203880282800
[6] pry(main)> h.default
=3D> [2, 3]
[7] pry(main)> h.keys
=3D> []
[8] pry(main)> h
=3D> {}

If you specify a block then you can get a new object for each time you =
need a default, and get the kind of behaviour most people expect:

[9] pry(main)> h2 =3D Hash.new { |h, k| h[k] =3D [] }
=3D> {}
[10] pry(main)> h2[:a] << 2
=3D> [2]
[11] pry(main)> h2[:b] << 3
=3D> [3]
[12] pry(main)> h2[:a].object_id
=3D> 70203901671420
[13] pry(main)> h2[:b].object_id
=3D> 70203903870340
[14] pry(main)> h2
=3D> {:a=3D>[2], :b=3D>[3]}

Hope this helps,

Mike

--=20

Mike Stok <mike@stok.ca>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.







In This Thread