Problem with array ... object inside disappear

Hi dudes,

I am becoming crazy with an array behaviour.

Here is the stuff.

I have an objet PackageList that keep an internal list of packages
inside an array.

class PackageList
def initialize
@list = Array.new
end

def refresh
p @list # show list first time
@list.each do |item|
p item.name # show list second time
end
end

end

The problem here is that when I show the list for the first time I
didn’t get the same result than the second time depiste I didn’t change
anything in my list.

extract from first time
[#<Package:0x435e504 @maj_number=3, @min_number=2, @name=“test1”>,
#<Package:0x435d604 @maj_number=3, @min_number=1, @name=“test2”>,
#<Package:0x435cb64 @maj_number=1, @min_number=2, @name=“test3”>, …]

extract from second time
“test1”
“test3”

The “test2” object disappeared depiste I didn’t change anything. Now if
I call the method for ‘each’ latter in the software, the “test2” object
appears again.

I can’t find why the list is changing even if I didn’t touch anything.

MR Damien wrote:

OK, the problem seems to be with rake tasks. Inside one of them, there
is some delay between what it prints and the changes made to the list.

Weird.

Finally, I got it. I was modifying the array where I was iterating from
that was causing weird issues.

I use 2 array now, problem solved.

MR Damien wrote:

MR Damien wrote:

OK, the problem seems to be with rake tasks. Inside one of them, there
is some delay between what it prints and the changes made to the list.

Weird.

Finally, I got it. I was modifying the array where I was iterating from
that was causing weird issues.

I use 2 array now, problem solved.

And Yes, I like to speak alone !!! :slight_smile:

OK, the problem seems to be with rake tasks. Inside one of them, there
is some delay between what it prints and the changes made to the list.

Weird.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs