astro-feedzirra 0.0.8.20090419 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +169 -0
- data/README.textile +9 -2
- data/Rakefile +3 -0
- data/lib/feedzirra.rb +11 -10
- data/lib/feedzirra/feed.rb +37 -41
- data/lib/feedzirra/feed_entry_utilities.rb +6 -0
- data/lib/feedzirra/parser/atom.rb +26 -0
- data/lib/feedzirra/parser/atom_entry.rb +34 -0
- data/lib/feedzirra/parser/atom_feed_burner.rb +27 -0
- data/lib/feedzirra/parser/atom_feed_burner_entry.rb +35 -0
- data/lib/feedzirra/parser/itunes_rss.rb +50 -0
- data/lib/feedzirra/parser/itunes_rss_item.rb +32 -0
- data/lib/feedzirra/parser/itunes_rss_owner.rb +12 -0
- data/lib/feedzirra/parser/rss.rb +28 -0
- data/lib/feedzirra/parser/rss_entry.rb +40 -0
- data/lib/feedzirra/push_parser.rb +56 -0
- data/spec/feedzirra/feed_spec.rb +40 -32
- data/spec/feedzirra/feed_utilities_spec.rb +9 -9
- data/spec/feedzirra/{atom_entry_spec.rb → parser/atom_entry_spec.rb} +3 -3
- data/spec/feedzirra/{atom_feed_burner_entry_spec.rb → parser/atom_feed_burner_entry_spec.rb} +4 -4
- data/spec/feedzirra/{atom_feed_burner_spec.rb → parser/atom_feed_burner_spec.rb} +6 -6
- data/spec/feedzirra/{atom_spec.rb → parser/atom_spec.rb} +5 -5
- data/spec/feedzirra/{itunes_rss_item_spec.rb → parser/itunes_rss_item_spec.rb} +8 -4
- data/spec/feedzirra/{itunes_rss_owner_spec.rb → parser/itunes_rss_owner_spec.rb} +3 -3
- data/spec/feedzirra/{itunes_rss_spec.rb → parser/itunes_rss_spec.rb} +5 -5
- data/spec/feedzirra/{rss_entry_spec.rb → parser/rss_entry_spec.rb} +3 -3
- data/spec/feedzirra/{rss_spec.rb → parser/rss_spec.rb} +5 -5
- data/spec/feedzirra/push_parser_spec.rb +16 -0
- metadata +28 -25
- data/lib/feedzirra/atom.rb +0 -22
- data/lib/feedzirra/atom_entry.rb +0 -29
- data/lib/feedzirra/atom_feed_burner.rb +0 -22
- data/lib/feedzirra/atom_feed_burner_entry.rb +0 -30
- data/lib/feedzirra/itunes_rss.rb +0 -46
- data/lib/feedzirra/itunes_rss_item.rb +0 -28
- data/lib/feedzirra/itunes_rss_owner.rb +0 -8
- data/lib/feedzirra/rss.rb +0 -23
- data/lib/feedzirra/rss_entry.rb +0 -35
data/lib/feedzirra/itunes_rss.rb
DELETED
@@ -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
|
data/lib/feedzirra/rss.rb
DELETED
@@ -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
|
data/lib/feedzirra/rss_entry.rb
DELETED
@@ -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
|