astro-feedzirra 0.0.8.20090419 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. data/README.rdoc +169 -0
  2. data/README.textile +9 -2
  3. data/Rakefile +3 -0
  4. data/lib/feedzirra.rb +11 -10
  5. data/lib/feedzirra/feed.rb +37 -41
  6. data/lib/feedzirra/feed_entry_utilities.rb +6 -0
  7. data/lib/feedzirra/parser/atom.rb +26 -0
  8. data/lib/feedzirra/parser/atom_entry.rb +34 -0
  9. data/lib/feedzirra/parser/atom_feed_burner.rb +27 -0
  10. data/lib/feedzirra/parser/atom_feed_burner_entry.rb +35 -0
  11. data/lib/feedzirra/parser/itunes_rss.rb +50 -0
  12. data/lib/feedzirra/parser/itunes_rss_item.rb +32 -0
  13. data/lib/feedzirra/parser/itunes_rss_owner.rb +12 -0
  14. data/lib/feedzirra/parser/rss.rb +28 -0
  15. data/lib/feedzirra/parser/rss_entry.rb +40 -0
  16. data/lib/feedzirra/push_parser.rb +56 -0
  17. data/spec/feedzirra/feed_spec.rb +40 -32
  18. data/spec/feedzirra/feed_utilities_spec.rb +9 -9
  19. data/spec/feedzirra/{atom_entry_spec.rb → parser/atom_entry_spec.rb} +3 -3
  20. data/spec/feedzirra/{atom_feed_burner_entry_spec.rb → parser/atom_feed_burner_entry_spec.rb} +4 -4
  21. data/spec/feedzirra/{atom_feed_burner_spec.rb → parser/atom_feed_burner_spec.rb} +6 -6
  22. data/spec/feedzirra/{atom_spec.rb → parser/atom_spec.rb} +5 -5
  23. data/spec/feedzirra/{itunes_rss_item_spec.rb → parser/itunes_rss_item_spec.rb} +8 -4
  24. data/spec/feedzirra/{itunes_rss_owner_spec.rb → parser/itunes_rss_owner_spec.rb} +3 -3
  25. data/spec/feedzirra/{itunes_rss_spec.rb → parser/itunes_rss_spec.rb} +5 -5
  26. data/spec/feedzirra/{rss_entry_spec.rb → parser/rss_entry_spec.rb} +3 -3
  27. data/spec/feedzirra/{rss_spec.rb → parser/rss_spec.rb} +5 -5
  28. data/spec/feedzirra/push_parser_spec.rb +16 -0
  29. metadata +28 -25
  30. data/lib/feedzirra/atom.rb +0 -22
  31. data/lib/feedzirra/atom_entry.rb +0 -29
  32. data/lib/feedzirra/atom_feed_burner.rb +0 -22
  33. data/lib/feedzirra/atom_feed_burner_entry.rb +0 -30
  34. data/lib/feedzirra/itunes_rss.rb +0 -46
  35. data/lib/feedzirra/itunes_rss_item.rb +0 -28
  36. data/lib/feedzirra/itunes_rss_owner.rb +0 -8
  37. data/lib/feedzirra/rss.rb +0 -23
  38. data/lib/feedzirra/rss_entry.rb +0 -35
@@ -1,46 +0,0 @@
1
- module Feedzirra
2
- # iTunes is RSS 2.0 + some apple extensions
3
- # Source: http://www.apple.com/itunes/whatson/podcasts/specs.html
4
- class ITunesRSS
5
- include SAXMachine
6
- include FeedUtilities
7
-
8
- attr_accessor :feed_url
9
-
10
- # RSS 2.0 elements that need including
11
- element :copyright
12
- element :description
13
- element :language
14
- element :managingEditor
15
- element :title
16
- element :link, :as => :url
17
-
18
- # If author is not present use managingEditor on the channel
19
- element :"itunes:author", :as => :itunes_author
20
- element :"itunes:block", :as => :itunes_block
21
- element :"itunes:image", :value => :href, :as => :itunes_image
22
- element :"itunes:explicit", :as => :itunes_explicit
23
- element :"itunes:keywords", :as => :itunes_keywords
24
- # New URL for the podcast feed
25
- element :"itunes:new-feed-url", :as => :itunes_new_feed_url
26
- element :"itunes:subtitle", :as => :itunes_subtitle
27
- # If summary is not present, use the description tag
28
- element :"itunes:summary", :as => :itunes_summary
29
-
30
- # iTunes RSS feeds can have multiple main categories...
31
- # ...and multiple sub-categories per category
32
- # TODO subcategories not supported correctly - they are at the same level
33
- # as the main categories
34
- elements :"itunes:category", :as => :itunes_categories, :value => :text
35
-
36
- elements :"itunes:owner", :as => :itunes_owners, :class => ITunesRSSOwner
37
-
38
- elements :item, :as => :entries, :class => ITunesRSSItem
39
-
40
- def self.able_to_parse?(xml)
41
- xml =~ /xmlns:itunes=\"http:\/\/www.itunes.com\/dtds\/podcast-1.0.dtd\"/
42
- end
43
-
44
- end
45
-
46
- end
@@ -1,28 +0,0 @@
1
- module Feedzirra
2
- # iTunes extensions to the standard RSS2.0 item
3
- # Source: http://www.apple.com/itunes/whatson/podcasts/specs.html
4
- class ITunesRSSItem
5
- include SAXMachine
6
- include FeedUtilities
7
- element :author
8
- element :guid
9
- element :title
10
- element :link, :as => :url
11
- element :description, :as => :summary
12
- element :pubDate, :as => :published
13
-
14
- # If author is not present use author tag on the item
15
- element :"itunes:author", :as => :itunes_author
16
- element :"itunes:block", :as => :itunes_block
17
- element :"itunes:duration", :as => :itunes_duration
18
- element :"itunes:explicit", :as => :itunes_explicit
19
- element :"itunes:keywords", :as => :itunes_keywords
20
- element :"itunes:subtitle", :as => :itunes_subtitle
21
- # If summary is not present, use the description tag
22
- element :"itunes:summary", :as => :itunes_summary
23
- element :enclosure, :value => :length, :as => :enclosure_length
24
- element :enclosure, :value => :type, :as => :enclosure_type
25
- element :enclosure, :value => :url, :as => :enclosure_url
26
- end
27
-
28
- end
@@ -1,8 +0,0 @@
1
- module Feedzirra
2
- class ITunesRSSOwner
3
- include SAXMachine
4
- include FeedUtilities
5
- element :"itunes:name", :as => :name
6
- element :"itunes:email", :as => :email
7
- end
8
- end
@@ -1,23 +0,0 @@
1
- module Feedzirra
2
- # == Summary
3
- # Parser for dealing with RSS feeds.
4
- #
5
- # == Attributes
6
- # * title
7
- # * feed_url
8
- # * url
9
- # * entries
10
- class RSS
11
- include SAXMachine
12
- include FeedUtilities
13
- element :title
14
- element :link, :as => :url
15
- elements :item, :as => :entries, :class => RSSEntry
16
-
17
- attr_accessor :feed_url
18
-
19
- def self.able_to_parse?(xml) #:nodoc:
20
- xml =~ /\<rss|rdf/
21
- end
22
- end
23
- end
@@ -1,35 +0,0 @@
1
- module Feedzirra
2
- # == Summary
3
- # Parser for dealing with RDF feed entries.
4
- #
5
- # == Attributes
6
- # * title
7
- # * url
8
- # * author
9
- # * content
10
- # * summary
11
- # * published
12
- # * categories
13
- class RSSEntry
14
- include SAXMachine
15
- include FeedEntryUtilities
16
- element :title
17
- element :link, :as => :url
18
-
19
- element :"dc:creator", :as => :author
20
- element :"content:encoded", :as => :content
21
- element :description, :as => :summary
22
-
23
- element :pubDate, :as => :published
24
- element :"dc:date", :as => :published
25
- element :"dc:Date", :as => :published
26
- element :"dcterms:created", :as => :published
27
-
28
-
29
- element :"dcterms:modified", :as => :updated
30
- element :issued, :as => :published
31
- elements :category, :as => :categories
32
-
33
- element :guid, :as => :id
34
- end
35
- end