[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Array disorder in ruby 1.8.6

Frantisek Havluj

4/4/2008 11:58:00 AM

Hello,

I suppose I found a bug in ruby (or behavior that I am unable to
explain). My version is, exactly, ruby 1.8.6 (2007-03-13 patchlevel 0)
[universal-darwin8.0]

problem is in this method:

def plotresults(results,runset)
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

each iterator just prints the items of the runset array out of order.
however, if I just evaluate the array anywhere in the method, everything
is ok:

def plotresults(results,runset)
runset
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

Not much more to say about that. Can anybody explain to me why Ruby
should behave like that?
--
Posted via http://www.ruby-....

3 Answers

Jano Svitok

4/4/2008 12:03:00 PM

0

On Fri, Apr 4, 2008 at 1:57 PM, Frantisek Havluj <moskyt@rozhled.cz> wrote:
> Hello,
>
> I suppose I found a bug in ruby (or behavior that I am unable to
> explain). My version is, exactly, ruby 1.8.6 (2007-03-13 patchlevel 0)
> [universal-darwin8.0]
>
> problem is in this method:
>
> def plotresults(results,runset)
> ...
> runset.each{|k| f.printf("%-*s",ns,k)}
> ...
> end
>
> .each iterator just prints the items of the runset array out of order.
> however, if I just evaluate the array anywhere in the method, everything
> is ok:
>
> def plotresults(results,runset)
> runset
> ...
> runset.each{|k| f.printf("%-*s",ns,k)}
> ...
> end
>
> Not much more to say about that. Can anybody explain to me why Ruby
> should behave like that?

One question: is runset really an Array or a Set? Set doesn't keep the order.

Jano

David A. Black

4/4/2008 12:15:00 PM

0

Hi --

On Fri, 4 Apr 2008, Frantisek Havluj wrote:

> Hello,
>
> I suppose I found a bug in ruby (or behavior that I am unable to
> explain). My version is, exactly, ruby 1.8.6 (2007-03-13 patchlevel 0)
> [universal-darwin8.0]
>
> problem is in this method:
>
> def plotresults(results,runset)
> ...
> runset.each{|k| f.printf("%-*s",ns,k)}
> ...
> end
>
> .each iterator just prints the items of the runset array out of order.
> however, if I just evaluate the array anywhere in the method, everything
> is ok:
>
> def plotresults(results,runset)
> runset
> ...
> runset.each{|k| f.printf("%-*s",ns,k)}
> ...
> end
>
> Not much more to say about that. Can anybody explain to me why Ruby
> should behave like that?

It's impossible to comment without seeing the code where runset is
created.


David

--
Rails training from David A. Black and Ruby Power and Light:
ADVANCING WITH RAILS April 14-17 New York City
INTRO TO RAILS June 9-12 Berlin
ADVANCING WITH RAILS June 16-19 Berlin
See http://www.r... for details and updates!

Robert Klemme

4/4/2008 12:19:00 PM

0

2008/4/4, Frantisek Havluj <moskyt@rozhled.cz>:

> I suppose I found a bug in ruby (or behavior that I am unable to
> explain). My version is, exactly, ruby 1.8.6 (2007-03-13 patchlevel 0)
> [universal-darwin8.0]
>
> problem is in this method:
>
> def plotresults(results,runset)
> ...
> runset.each{|k| f.printf("%-*s",ns,k)}
> ...
> end
>
> .each iterator just prints the items of the runset array out of order.

What exactly do you mean by "out of order"? What order? What type is runset?

> however, if I just evaluate the array anywhere in the method, everything
> is ok:

What do you mean be "evaluate"?

> def plotresults(results,runset)
> runset
> ...
> runset.each{|k| f.printf("%-*s",ns,k)}
> ...
> end
>
> Not much more to say about that. Can anybody explain to me why Ruby
> should behave like that?

You need to say more about that - otherwise we can't say much more about it.

Cheers

robert

--
use.inject do |as, often| as.you_can - without end