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/text-output.rb lib/feedparser/sgml-parser.rb lib/feedparser/html2text-parser.rb FeedParser dot/m_7_0.png

Methods

parse  

Public Instance methods

[Source]

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

[Validate]