Class FeedParser::AtomItem
In: lib/feedparser/feedparser.rb
Parent: FeedItem
RuntimeError UnknownFeedTypeException FeedItem\n[lib/feedparser/feedparser.rb\nlib/feedparser/html-output.rb\nlib/feedparser/text-output.rb] AtomItem RSSItem SGMLParser HTML2TextParser Feed\n[lib/feedparser/feedparser.rb\nlib/feedparser/html-output.rb\nlib/feedparser/text-output.rb] lib/feedparser/feedparser.rb lib/feedparser/sgml-parser.rb lib/feedparser/text-output.rb lib/feedparser/html2text-parser.rb FeedParser dot/m_7_0.png

Methods

parse  

Public Instance methods

[Source]

     # File lib/feedparser/feedparser.rb, line 257
257:     def parse(item)
258:       # Title
259:       if (e = item.elements['title']) && e.text
260:         @title = e.text.unescape_html.toUTF8(@feed.encoding).html2text.rmWhiteSpace!
261:       end
262:       # Link
263:       item.each_element('link') do |e|
264:         if (h = e.attribute('href')) && h.value
265:           @link = h.value
266:         end
267:       end
268:       # Content
269:       if e = item.elements['content'] || item.elements['summary']
270:         if (e.attribute('mode') and e.attribute('mode').value == 'escaped') &&
271:           e.text
272:           @content = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
273:         else
274:           @content = FeedParser::getcontent(e, @feed)
275:         end
276:       end
277:       # Date
278:       if (e = item.elements['issued'] || e = item.elements['created'] || e = item.elements['updated'] || e = item.elements['published']) && e.text
279:         begin
280:           @date = Time::xmlschema(e.text)
281:         rescue
282:           begin
283:             @date = Time::rfc2822(e.text)
284:           rescue
285:             begin
286:               @date = Time::parse(e.text)
287:             rescue
288:               @date = nil
289:             end
290:           end
291:         end
292:       end
293:       # Creator
294:       item.each_element('author/name') do |e|
295:         if e.text
296:           @creators << e.text.unescape_html.toUTF8(@feed.encoding).rmWhiteSpace!
297:         end
298:       end
299: 
300:       @creators << @feed.creator if @creators.empty? and @feed.creator
301: 
302:       # Categories
303:       item.each_element('category') do |e|
304:         if (h = e.attribute('term')) && h.value
305:           # Use human-readable label if it is provided
306:           if (l = e.attribute('label')) && l.value
307:             cat = l.value
308:           else
309:             cat = h.value
310:           end
311: 
312:           @categories << cat.unescape_html.toUTF8(@feed.encoding).rmWhiteSpace!
313:         end
314:       end
315:     end

[Validate]