Hash of Arrays nItems problem

H

hoyhoy

I'm having a bit of problem using a hash of arrays. It appears that
nitems are wrong for the individual elements are wrong when I do this:

#!/usr/bin/env ruby
$:.unshift(File.join('..', 'lib'))
require 'http-access2'

h = HTTPAccess2::Client.new()
element = Hash.new([])

while urlstr = ARGV.shift
response = h.get(urlstr) { |data|

data.gsub(/<(description|title|link)>(.+)<\/(description|title|link)>/)
{
print $1,"\n"
element[$1].push($2.gsub(/\s\s+/m," "))
}
}
end

print "site description ---> ", site_description, "\n"
print "site title ---------> ", site_title, "\n"
print "description.nitems -> ", element['description'].nitems, "\n"
print "title.nitems -------> ", element['title'].nitems, "\n"

site_description = element['description'].shift
site_title = element['title'].shift

while element['description'].nitems > 0
print element['title'].shift.gsub(/\n+/, ""),"\n"
print element['description'].shift.gsub(/\n+/, ""),"\n\n"
end

% ruby rss.rb http://involution.com/rss.php
site description ---> involution.com
site title ---------> http://involution.com
description.nitems -> 30
title.nitems -------> 30

There are 10 of each links, putting a print in the hget enclosure shows
that only 10 descriptions, links, and titles are added, but the
individual array sizes are reported as 30. What am I doing wrong?

Tony
 
R

Robert Klemme

I'm having a bit of problem using a hash of arrays. It appears that
nitems are wrong for the individual elements are wrong when I do this:

#!/usr/bin/env ruby
$:.unshift(File.join('..', 'lib'))
require 'http-access2'

h = HTTPAccess2::Client.new()
element = Hash.new([])

You want

element = Hash.new {|h,k| h[k] = []}

Otherwise you'll be adding to the *same* single array instance for *all*
elements.

Kind regards

robert
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,188
Latest member
Crypto TaxSoftware

Latest Threads

Top