Hi --

On Tue, 25 Jul 2006, Javier Valencia wrote:

> I have this piece of simple code:
>
> ----------------------------------------------
> def foo
>   return 5
> end
>
> a = {:gr => false, :und => false, :det => true, :sta => false, :inv => false}
> puts a.inspect
> ----------------------------------------------
>
> when I execute it i get a totally unordered hash:
>
> ----------------------------------------------
> ruby pro.rb
> {:inv=>false, :gr=>false, :und=>false, :det=>true, :sta=>false}
> ----------------------------------------------
>
> Now, i delete the foo function from the code (the foo function don't do 
> nothing at all), and i get a well ordered hash:
>
> ----------------------------------------------
> ruby pro.rb
> {:gr=>false, :und=>false, :det=>true, :sta=>false, :inv=>false}
> ----------------------------------------------
>
>
> What's happening? all my code is behaving wrong because of that.

Hashes are unordered.  If you need an ordered collection, you'll need
to use an array.


David

-- 
http://www.rubypowerandlight.com => Ruby/Rails training & consultancy
http://www.manning.com/black     => RUBY FOR RAILS (reviewed on
                                     Slashdot, 7/12/2006!)
http://dablog.rubypal.com        => D[avid ]A[. ]B[lack's][ Web]log
dblack / wobblini.net              => me