Insert dynamic values into a hash

I have a loop that I am trying to put key values pairs into a hash
from. There are 6 rows of data,
when I do a outputHash.inspect all I get is the last value. Where do
the other values go or what I am I doing wrong?
row.each {|line|
line =~ /^\s*\d+\s*\S+\s*\S+\s*(\d+)\s*\D+(\d+)/
port_num = $1
if $1
status = $2 =~ /0/ ? “Available” : “Not Available”
outputHash = {port_num => status}
}
outputHash.inspect

On Tue, Jul 29, 2008 at 10:04 PM, Me [email protected] wrote:

                      outputHash =  {port_num => status

You are overwriting outputHash here.

You probably want outputHash[port_num] = status

On 30 Jul 2008, at 04:04, Me wrote:

     outputHash =  {port_num => status}

}
outputHash.inspect

outputHash = {port_num => status}

This creates a new hash each time. You want outputHash[port_num]=status
(and the variable needs to exist before the block (becaused of scoping)

Fred

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