Class: FeedParser::Parser

Inherits:
Object
  • Object
show all
Includes:
LogUtils::Logging
Defined in:
lib/feedparser/parser.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xml) ⇒ Parser

Note: lets keep/use same API as RSS::Parser for now



16
17
18
# File 'lib/feedparser/parser.rb', line 16

def initialize( xml )
  @xml = xml
end

Class Method Details

.parse(xml, opts = {}) ⇒ Object

convenience class/factory method



11
12
13
# File 'lib/feedparser/parser.rb', line 11

def self.parse( xml, opts={} )
  self.new( xml ).parse
end

Instance Method Details

#parseObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/feedparser/parser.rb', line 21

def parse
  logger.debug "using stdlib rss/#{RSS::VERSION}"

  parser = RSS::Parser.new( @xml )

  parser.do_validate            = false
  parser.ignore_unknown_element = true

  logger.debug "Parsing feed..."
  feed_wild = parser.parse  # not yet normalized

  logger.debug "  feed.class=#{feed_wild.class.name}"

  if feed_wild.is_a?( RSS::Atom::Feed )
    feed = AtomFeedBuilder.build( feed_wild )
  else  # -- assume RSS::Rss::Feed
    feed = RssFeedBuilder.build( feed_wild )
  end

  logger.debug "== #{feed.format} / #{feed.title} =="
  feed # return new (normalized) feed
end