Class FeedParser::RSSItem
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/html2text-parser.rb FeedParser Module: FeedParser

Methods

parse  

Attributes

enclosures  [RW]  The item’s enclosures childs. An array of (url, length, type) triplets.

Public Instance methods

[Source]

     # File lib/feedparser/feedparser.rb, line 159
159:     def parse(item)
160:       # Title. If no title, use the pubDate as fallback.
161:       if ((e = item.elements['title'] || item.elements['rss:title']) &&
162:           e.text)  ||
163:           ((e = item.elements['pubDate'] || item.elements['rss:pubDate']) &&
164:            e.text)
165:         @title = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
166:       end
167:       # Link
168:       if ((e = item.elements['link'] || item.elements['rss:link']) && e.text)||
169:           (e = item.elements['guid'] || item.elements['rss:guid'] and
170:           not (e.attribute('isPermaLink') and
171:           e.attribute('isPermaLink').value == 'false'))
172:         @link = e.text.rmWhiteSpace!
173:       end
174:       # Content
175:       if (e = item.elements['content:encoded']) ||
176:         (e = item.elements['description'] || item.elements['rss:description'])
177:         @content = FeedParser::getcontent(e, @feed)
178:       end
179:       # Date
180:       if e = item.elements['dc:date'] || item.elements['pubDate'] || 
181:           item.elements['rss:pubDate']
182:         begin
183:           @date = Time::xmlschema(e.text)
184:         rescue
185:           begin
186:             @date = Time::rfc2822(e.text)
187:           rescue
188:             begin
189:               @date = Time::parse(e.text)
190:             rescue
191:               @date = nil
192:             end
193:           end
194:         end
195:       end
196:       # Creator
197:       @creator = @feed.creator
198:       if (e = item.elements['dc:creator'] || item.elements['author'] ||
199:           item.elements['rss:author']) && e.text
200:         @creator = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
201:       end
202:       # Subject
203:       if (e = item.elements['dc:subject']) && e.text
204:         @subject = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
205:       end
206:       # Category
207:       if (e = item.elements['dc:category'] || item.elements['category'] ||
208:           item.elements['rss:category']) && e.text
209:         @category = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
210:       end
211:       # Enclosures
212:       @enclosures = []
213:       item.each_element('enclosure') do |e|
214:         url = e.attribute('url').value if e.attribute('url')
215:         length = e.attribute('length').value if e.attribute('length')
216:         type = e.attribute('type').value if e.attribute('type')
217:         @enclosures << [ url, length, type ]
218:       end
219:     end

[Validate]