Я использую Watir и Ruby, чтобы попытаться перегрузить загрузку данных из веб-приложения в хеш:
def getOrders( )
return orders = slurpOrders()
end
def containsOrderNumber( orderNumber )
puts orderNumber
orders = getOrders
puts orders[orderNumber]
#puts orders.keys
puts "orders has_key? = " + orders.has_key?(orderNumber).to_s
return orders.has_key?(orderNumber)
end
private
def slurpOrders( )
puts @browser.tables[6].row_count
rows = @browser.tables[6].rows
orders = Hash.new
for row in rows do
#puts row.column_count
if row.column_count == 8 then
order = {
:sales_channel => row[2],
:customer => row[3],
:country => row[4],
:total => row[5],
:time => row[6],
:highlight => row[7],
:credit_hold => row[8],
}
orders[ row[1] ] = order
#puts row[1]
end
end
return orders
end
Поэтому я вызываю containsOrderNumber ('1136050') в другом сценарии, ноorders.has_key?возвращает false, а orders [orderNumber] возвращает nil.
Однако, если я раскомментирую, помещает orders.keys, он появляется как один из ключей в хеше ...?Я очень запутался - что я делаю не так?Что-то странное происходит с типом данных?
Cheers