Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Trying to parse an array of rss feeds without success
Louis-pierre Lp.dahito
1/14/2009 7:03:00 AM
hey folks,
I'm trying to make a basic feeds parser... It works fine when I have one
feed only but as soon as I try to parse an array of feeds, it's gonna
parse it correctly but I won't be able to fetch any data out of it...
Here is my code...
class Site
attr_accessor :domain, :name
def initialize
@domain = domain
@name = name
end
end
a = Site.new
a.domain = "
http://www.mininova.org/rss...
a.name = "mininova"
b = Site.new
b.domain = "
http://static.demonoid.com/rss/0...
b.name = "demonoid"
c = Site.new
c.domain = "
http://rss.thepiratebay.o...
c.name = "thepiratebay"
allfeeds = [ a, b, c ]
require 'rss/1.0'
require 'rss/2.0'
require 'open-uri'
def parse_torrents(source)
# source = self.domain # url or local file
content = "" # raw content of rss feed will be loaded here
open(source) do |s| content = s.read end
RSS::Parser.parse(content, false)
end
torrents = allfeeds.each { |feed| parse_torrents(feed.domain) }
torrents.each { |t| puts t.channel.title }
The error message I get is only on the last line of code... removing the
last line doesn't show any error message.
Here is the message i get from RubyMate:
NoMethodError: undefined method â??channelâ?? for #<Site:0x8a520>
at top level in global.rb at line 38
method each in global.rb at line 38
at top level in global.rb at line 38
Program exited.
I need help even though it's a pretty basic question...
Thank you guys...
--
Posted via
http://www.ruby-...
.
2 Answers
Jan-Erik R.
1/14/2009 1:37:00 PM
0
Louis-pierre Lp.dahito schrieb:
> hey folks,
>
> I'm trying to make a basic feeds parser... It works fine when I have one
> feed only but as soon as I try to parse an array of feeds, it's gonna
> parse it correctly but I won't be able to fetch any data out of it...
> Here is my code...
>
> class Site
> attr_accessor :domain, :name
>
> def initialize
> @domain = domain
> @name = name
> end
> end
>
>
> a = Site.new
> a.domain = "
http://www.mininova.org/rss...
> a.name = "mininova"
>
> b = Site.new
> b.domain = "
http://static.demonoid.com/rss/0...
> b.name = "demonoid"
>
> c = Site.new
> c.domain = "
http://rss.thepiratebay.o...
> c.name = "thepiratebay"
>
> allfeeds = [ a, b, c ]
>
> require 'rss/1.0'
> require 'rss/2.0'
> require 'open-uri'
>
> def parse_torrents(source)
> # source = self.domain # url or local file
> content = "" # raw content of rss feed will be loaded here
> open(source) do |s| content = s.read end
> RSS::Parser.parse(content, false)
> end
>
> torrents = allfeeds.each { |feed| parse_torrents(feed.domain) }
>
> torrents.each { |t| puts t.channel.title }
>
> The error message I get is only on the last line of code... removing the
> last line doesn't show any error message.
>
> Here is the message i get from RubyMate:
>
> NoMethodError: undefined method â??channelâ?? for #<Site:0x8a520>
>
> at top level in global.rb at line 38
> method each in global.rb at line 38
> at top level in global.rb at line 38
> Program exited.
>
> I need help even though it's a pretty basic question...
>
> Thank you guys...
the error message has all you need to get rid of this mistake.
"...for #<Site...>"
Now start irb and type something like:
irb> myarray = [1,2,3]
irb> newarray = myarray.each { |i| i * 10 }
irb> p newarray
do you see it?
now try Array#map:
irb> myarray = [1,2,3]
irb> newarray = myarray.map { |i| i * 10 }
irb> p newarray
see the difference?
Louis-pierre Lp.dahito
1/14/2009 2:06:00 PM
0
badboy wrote:
> Louis-pierre Lp.dahito schrieb:
>> def initialize
>> b = Site.new
>> require 'rss/2.0'
>>
>> method each in global.rb at line 38
>> at top level in global.rb at line 38
>> Program exited.
>>
>> I need help even though it's a pretty basic question...
>>
>> Thank you guys...
> the error message has all you need to get rid of this mistake.
> "...for #<Site...>"
>
> Now start irb and type something like:
> irb> myarray = [1,2,3]
> irb> newarray = myarray.each { |i| i * 10 }
> irb> p newarray
> do you see it?
> now try Array#map:
> irb> myarray = [1,2,3]
> irb> newarray = myarray.map { |i| i * 10 }
> irb> p newarray
>
> see the difference?
I do see the difference... Thank a lot you fixed my problem... I thought
that the each iterator would do the exact same thing the map method
did...
Anyway thank you very much for your time :)
--
Posted via
http://www.ruby-...
.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Trying to parse an array of rss feeds without success
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password