[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

undefined method `string'

Comfort Eagle

11/13/2006 10:08:00 PM

Why does this work:

require 'rubygems'
require 'rubyful_soup'

sourceFile = 'lists.php'
desFile = 'parsedtext.txt'


open(sourceFile).each { |x|
soup = BeautifulSoup.new(x)
puts soup.a
}

but adding .string a la:

require 'rubygems'
require 'rubyful_soup'

sourceFile = 'lists.php'
desFile = 'parsedtext.txt'


open(sourceFile).each { |x|
soup = BeautifulSoup.new(x)
puts soup.a.string
}

results in:
undefined method `string' for nil:NilClass (NoMethodError) ??

Thanks in advance.

--
Posted via http://www.ruby-....

1 Answer

David Vallner

11/13/2006 10:20:00 PM

0

Comfort Eagle wrote:
> Why does this work:
>
> require 'rubygems'
> require 'rubyful_soup'
>
> sourceFile = 'lists.php'
> desFile = 'parsedtext.txt'
>
>
> open(sourceFile).each { |x|
> soup = BeautifulSoup.new(x)
> puts soup.a
> }
>
> but adding .string a la:
>
> require 'rubygems'
> require 'rubyful_soup'
>
> sourceFile = 'lists.php'
> desFile = 'parsedtext.txt'
>
>
> open(sourceFile).each { |x|
> soup = BeautifulSoup.new(x)
> puts soup.a.string
> }
>
> results in:
> undefined method `string' for nil:NilClass (NoMethodError) ??
>

Because soup.a is nil?
As the interpreter obediently informs you of.

"puts soup.a" works because to_s is defined on nil to return the empty
string.

David Vallner