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

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

You are overwriting outputHash here.

You probably want outputHash[port_num] = status

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

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