kete-feedzirra 0.0.8.1 → 0.0.16.1
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.
- data/README.textile +11 -2
- data/Rakefile +3 -0
- data/lib/feedzirra.rb +10 -10
- data/lib/feedzirra/feed.rb +45 -42
- data/lib/feedzirra/parser/atom.rb +47 -0
- data/lib/feedzirra/parser/atom_entry.rb +51 -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 +31 -0
- data/lib/feedzirra/parser/itunes_rss_owner.rb +12 -0
- data/lib/feedzirra/parser/rss.rb +40 -0
- data/lib/feedzirra/parser/rss_entry.rb +55 -0
- data/spec/feedzirra/feed_spec.rb +30 -27
- data/spec/feedzirra/feed_utilities_spec.rb +9 -9
- data/spec/feedzirra/{atom_entry_spec.rb → parser/atom_entry_spec.rb} +7 -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} +16 -8
- data/spec/feedzirra/{itunes_rss_item_spec.rb → parser/itunes_rss_item_spec.rb} +3 -3
- 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} +14 -14
- data/spec/feedzirra/{rss_spec.rb → parser/rss_spec.rb} +17 -18
- metadata +22 -21
- data/lib/feedzirra/atom.rb +0 -35
- data/lib/feedzirra/atom_entry.rb +0 -41
- 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 -36
- data/lib/feedzirra/rss_entry.rb +0 -48
@@ -1,10 +1,10 @@
|
|
1
|
-
require File.dirname(__FILE__)
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
|
-
describe Feedzirra::ITunesRSSItem do
|
3
|
+
describe Feedzirra::Parser::ITunesRSSItem do
|
4
4
|
before(:each) do
|
5
5
|
# I don't really like doing it this way because these unit test should only rely on ITunesRssItem,
|
6
6
|
# but this is actually how it should work. You would never just pass entry xml straight to the ITunesRssItem
|
7
|
-
@item = Feedzirra::ITunesRSS.parse(sample_itunes_feed).entries.first
|
7
|
+
@item = Feedzirra::Parser::ITunesRSS.parse(sample_itunes_feed).entries.first
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should parse the title" do
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require File.dirname(__FILE__)
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
|
-
describe Feedzirra::ITunesRSSOwner do
|
3
|
+
describe Feedzirra::Parser::ITunesRSSOwner do
|
4
4
|
before(:each) do
|
5
5
|
# I don't really like doing it this way because these unit test should only rely on RSSEntry,
|
6
6
|
# but this is actually how it should work. You would never just pass entry xml straight to the ITunesRssOwner
|
7
|
-
@owner = Feedzirra::ITunesRSS.parse(sample_itunes_feed).itunes_owners.first
|
7
|
+
@owner = Feedzirra::Parser::ITunesRSS.parse(sample_itunes_feed).itunes_owners.first
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should parse the name" do
|
@@ -1,19 +1,19 @@
|
|
1
|
-
require File.dirname(__FILE__)
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
|
-
describe Feedzirra::ITunesRSS do
|
3
|
+
describe Feedzirra::Parser::ITunesRSS do
|
4
4
|
describe "#will_parse?" do
|
5
5
|
it "should return true for an itunes RSS feed" do
|
6
|
-
Feedzirra::ITunesRSS.should be_able_to_parse(sample_itunes_feed)
|
6
|
+
Feedzirra::Parser::ITunesRSS.should be_able_to_parse(sample_itunes_feed)
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should return fase for an atom feed" do
|
10
|
-
Feedzirra::ITunesRSS.should_not be_able_to_parse(sample_atom_feed)
|
10
|
+
Feedzirra::Parser::ITunesRSS.should_not be_able_to_parse(sample_atom_feed)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
describe "parsing" do
|
15
15
|
before(:each) do
|
16
|
-
@feed = Feedzirra::ITunesRSS.parse(sample_itunes_feed)
|
16
|
+
@feed = Feedzirra::Parser::ITunesRSS.parse(sample_itunes_feed)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should parse the subtitle" do
|
@@ -1,33 +1,33 @@
|
|
1
|
-
require File.dirname(__FILE__)
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
|
-
describe Feedzirra::RSSEntry do
|
3
|
+
describe Feedzirra::Parser::RSSEntry do
|
4
4
|
describe "parsing of simple rss feed item" do
|
5
5
|
before(:each) do
|
6
6
|
# I don't really like doing it this way because these unit test should only rely on RSSEntry,
|
7
7
|
# but this is actually how it should work. You would never just pass entry xml straight to the AtomEnry
|
8
|
-
@entry = Feedzirra::RSS.parse(sample_rss_feed).entries.first
|
8
|
+
@entry = Feedzirra::Parser::RSS.parse(sample_rss_feed).entries.first
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
it "should parse the title" do
|
12
12
|
@entry.title.should == "Nokogiri’s Slop Feature"
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
it "should parse the url" do
|
16
16
|
@entry.url.should == "http://tenderlovemaking.com/2008/12/04/nokogiris-slop-feature/"
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
it "should parse the author" do
|
20
20
|
@entry.author.should == "Aaron Patterson"
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it "should parse the content" do
|
24
24
|
@entry.content.should == sample_rss_entry_content
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
it "should provide a summary" do
|
28
28
|
@entry.summary.should == "Oops! When I released nokogiri version 1.0.7, I totally forgot to talk about Nokogiri::Slop() feature that was added. Why is it called \"slop\"? It lets you sloppily explore documents. Basically, it decorates your document with method_missing() that allows you to search your document via method calls.\nGiven this document:\n\ndoc = Nokogiri::Slop(<<-eohtml)\n<html>\n  <body>\n  [...]"
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
it "should parse the published date" do
|
32
32
|
@entry.published.to_s.should == "Thu Dec 04 17:17:49 UTC 2008"
|
33
33
|
end
|
@@ -35,7 +35,7 @@ describe Feedzirra::RSSEntry do
|
|
35
35
|
it "should parse the categories" do
|
36
36
|
@entry.categories.should == ['computadora', 'nokogiri', 'rails']
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
it "should parse the guid as id" do
|
40
40
|
@entry.id.should == "http://tenderlovemaking.com/?p=198"
|
41
41
|
end
|
@@ -45,7 +45,7 @@ describe Feedzirra::RSSEntry do
|
|
45
45
|
before(:each) do
|
46
46
|
# I don't really like doing it this way because these unit test should only rely on RSSEntry,
|
47
47
|
# but this is actually how it should work. You would never just pass entry xml straight to the AtomEnry
|
48
|
-
@entry = Feedzirra::RSS.parse(sample_media_rss_feed).entries.first
|
48
|
+
@entry = Feedzirra::Parser::RSS.parse(sample_media_rss_feed).entries.first
|
49
49
|
end
|
50
50
|
|
51
51
|
it "should parse the title" do
|
@@ -63,11 +63,11 @@ describe Feedzirra::RSSEntry do
|
|
63
63
|
it "should provide a summary" do
|
64
64
|
@entry.summary.should == sample_media_rss_entry_content
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
it "should parse the published date" do
|
68
68
|
@entry.published.to_s.should == "Mon Mar 23 07:55:43 UTC 2009"
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
it "should parse the guid as id" do
|
72
72
|
@entry.id.should == "http://horowhenua.kete.net.nz/site/images/show/15535-the-new-boy-on-the-block"
|
73
73
|
end
|
@@ -77,7 +77,7 @@ describe Feedzirra::RSSEntry do
|
|
77
77
|
end
|
78
78
|
|
79
79
|
it "should parse media:description as media_description" do
|
80
|
-
@entry.media_description.should == "big crane from
|
80
|
+
@entry.media_description.should == "big crane from Wellington visits the site for the week"
|
81
81
|
end
|
82
82
|
|
83
83
|
it "should parse media:thumbnail url as media_thumbnail" do
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require File.dirname(__FILE__)
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
|
-
describe Feedzirra::RSS do
|
3
|
+
describe Feedzirra::Parser::RSS do
|
4
4
|
describe "#will_parse?" do
|
5
5
|
it "should return true for an RSS feed" do
|
6
|
-
Feedzirra::RSS.should be_able_to_parse(sample_rss_feed)
|
6
|
+
Feedzirra::Parser::RSS.should be_able_to_parse(sample_rss_feed)
|
7
7
|
end
|
8
8
|
|
9
9
|
# this is no longer true. combined rdf and rss into one
|
@@ -12,13 +12,13 @@ describe Feedzirra::RSS do
|
|
12
12
|
# end
|
13
13
|
|
14
14
|
it "should return fase for an atom feed" do
|
15
|
-
Feedzirra::RSS.should_not be_able_to_parse(sample_atom_feed)
|
15
|
+
Feedzirra::Parser::RSS.should_not be_able_to_parse(sample_atom_feed)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
describe "parsing of simple rss feed" do
|
20
20
|
before(:each) do
|
21
|
-
@feed = Feedzirra::RSS.parse(sample_rss_feed)
|
21
|
+
@feed = Feedzirra::Parser::RSS.parse(sample_rss_feed)
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should parse the title" do
|
@@ -41,49 +41,48 @@ describe Feedzirra::RSS do
|
|
41
41
|
|
42
42
|
describe "parsing of media rss feed" do
|
43
43
|
before(:each) do
|
44
|
-
@feed = Feedzirra::RSS.parse(sample_media_rss_feed)
|
44
|
+
@feed = Feedzirra::Parser::RSS.parse(sample_media_rss_feed)
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
it "should parse the title" do
|
48
48
|
@feed.title.should == "horowhenua.kete.net.nz - Latest 50 Results in images"
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
it "should parse the url" do
|
52
52
|
@feed.url.should == "http://horowhenua.kete.net.nz/site/all/images/rss.xml?search_terms=wellington"
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
it "should parse link rel='related' as related" do
|
56
56
|
@feed.related.should == ["http://horowhenua.kete.net.nz/", "http://horowhenua.kete.net.nz/site/all/images"]
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
it "should parse the description" do
|
60
60
|
@feed.description.should == "Showing 1 - 50 results of 368"
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
it "should parse the language" do
|
64
64
|
@feed.language.should == "en-nz"
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
it "should provide an accessor for the feed_url" do
|
68
68
|
@feed.respond_to?(:feed_url).should == true
|
69
69
|
@feed.respond_to?(:feed_url=).should == true
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
it "should parse the prev atom:link" do
|
73
|
-
@feed.prev_page.should == "http://
|
73
|
+
@feed.prev_page.should == "http://aws.typepad.com/aws/atom.xml?page=1"
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should parse the next atom:link" do
|
77
|
-
@feed.next_page.should == "http://
|
77
|
+
@feed.next_page.should == "http://aws.typepad.com/aws/atom.xml?page=3"
|
78
78
|
end
|
79
79
|
|
80
80
|
it "should parse the last atom:link" do
|
81
|
-
@feed.last_page.should == "http://
|
81
|
+
@feed.last_page.should == "http://aws.typepad.com/aws/atom.xml?page=5"
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
it "should parse entries" do
|
85
85
|
@feed.entries.size.should == 50
|
86
86
|
end
|
87
87
|
end
|
88
|
-
|
89
88
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kete-feedzirra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Dix
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-03 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -85,15 +85,15 @@ files:
|
|
85
85
|
- lib/core_ext/string.rb
|
86
86
|
- lib/feedzirra.rb
|
87
87
|
- lib/feedzirra/feed.rb
|
88
|
-
- lib/feedzirra/atom.rb
|
89
|
-
- lib/feedzirra/atom_entry.rb
|
90
|
-
- lib/feedzirra/atom_feed_burner.rb
|
91
|
-
- lib/feedzirra/atom_feed_burner_entry.rb
|
92
|
-
- lib/feedzirra/itunes_rss.rb
|
93
|
-
- lib/feedzirra/itunes_rss_item.rb
|
94
|
-
- lib/feedzirra/itunes_rss_owner.rb
|
95
|
-
- lib/feedzirra/rss.rb
|
96
|
-
- lib/feedzirra/rss_entry.rb
|
88
|
+
- lib/feedzirra/parser/atom.rb
|
89
|
+
- lib/feedzirra/parser/atom_entry.rb
|
90
|
+
- lib/feedzirra/parser/atom_feed_burner.rb
|
91
|
+
- lib/feedzirra/parser/atom_feed_burner_entry.rb
|
92
|
+
- lib/feedzirra/parser/itunes_rss.rb
|
93
|
+
- lib/feedzirra/parser/itunes_rss_item.rb
|
94
|
+
- lib/feedzirra/parser/itunes_rss_owner.rb
|
95
|
+
- lib/feedzirra/parser/rss.rb
|
96
|
+
- lib/feedzirra/parser/rss_entry.rb
|
97
97
|
- lib/feedzirra/feed_utilities.rb
|
98
98
|
- lib/feedzirra/feed_entry_utilities.rb
|
99
99
|
- README.textile
|
@@ -101,19 +101,20 @@ files:
|
|
101
101
|
- spec/spec.opts
|
102
102
|
- spec/spec_helper.rb
|
103
103
|
- spec/feedzirra/feed_spec.rb
|
104
|
-
- spec/feedzirra/atom_spec.rb
|
105
|
-
- spec/feedzirra/atom_entry_spec.rb
|
106
|
-
- spec/feedzirra/atom_feed_burner_spec.rb
|
107
|
-
- spec/feedzirra/atom_feed_burner_entry_spec.rb
|
108
|
-
- spec/feedzirra/itunes_rss_spec.rb
|
109
|
-
- spec/feedzirra/itunes_rss_item_spec.rb
|
110
|
-
- spec/feedzirra/itunes_rss_owner_spec.rb
|
111
|
-
- spec/feedzirra/rss_spec.rb
|
112
|
-
- spec/feedzirra/rss_entry_spec.rb
|
104
|
+
- spec/feedzirra/parser/atom_spec.rb
|
105
|
+
- spec/feedzirra/parser/atom_entry_spec.rb
|
106
|
+
- spec/feedzirra/parser/atom_feed_burner_spec.rb
|
107
|
+
- spec/feedzirra/parser/atom_feed_burner_entry_spec.rb
|
108
|
+
- spec/feedzirra/parser/itunes_rss_spec.rb
|
109
|
+
- spec/feedzirra/parser/itunes_rss_item_spec.rb
|
110
|
+
- spec/feedzirra/parser/itunes_rss_owner_spec.rb
|
111
|
+
- spec/feedzirra/parser/rss_spec.rb
|
112
|
+
- spec/feedzirra/parser/rss_entry_spec.rb
|
113
113
|
- spec/feedzirra/feed_utilities_spec.rb
|
114
114
|
- spec/feedzirra/feed_entry_utilities_spec.rb
|
115
115
|
has_rdoc: true
|
116
116
|
homepage: http://github.com/pauldix/feedzirra
|
117
|
+
licenses:
|
117
118
|
post_install_message:
|
118
119
|
rdoc_options: []
|
119
120
|
|
@@ -134,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
135
|
requirements: []
|
135
136
|
|
136
137
|
rubyforge_project:
|
137
|
-
rubygems_version: 1.
|
138
|
+
rubygems_version: 1.3.5
|
138
139
|
signing_key:
|
139
140
|
specification_version: 2
|
140
141
|
summary: "A feed fetching and parsing library that treats the internet like Godzilla treats Japan: it dominates and eats all."
|
data/lib/feedzirra/atom.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
module Feedzirra
|
2
|
-
# == Summary
|
3
|
-
# Parser for dealing with Atom feeds.
|
4
|
-
#
|
5
|
-
# == Attributes
|
6
|
-
# * prev_page
|
7
|
-
# * next_page
|
8
|
-
# * last_page
|
9
|
-
# * title
|
10
|
-
# * subtitle
|
11
|
-
# * updated
|
12
|
-
# * feed_url
|
13
|
-
# * url
|
14
|
-
# * related
|
15
|
-
# * entries
|
16
|
-
class Atom
|
17
|
-
include SAXMachine
|
18
|
-
include FeedUtilities
|
19
|
-
element :"atom:link", :as => :prev_page, :value => :href, :with => {:rel => 'prev'}
|
20
|
-
element :"atom:link", :as => :next_page, :value => :href, :with => {:rel => 'next'}
|
21
|
-
element :"atom:link", :as => :last_page, :value => :href, :with => {:rel => 'last'}
|
22
|
-
element :title
|
23
|
-
element :subtitle
|
24
|
-
element :updated
|
25
|
-
element :link, :as => :url, :value => :href, :with => {:type => "text/html"}
|
26
|
-
element :link, :as => :feed_url, :value => :href, :with => {:type => "application/atom+xml"}
|
27
|
-
elements :link, :as => :related, :value => :href, :with => {:rel => "related"}
|
28
|
-
|
29
|
-
elements :entry, :as => :entries, :class => AtomEntry
|
30
|
-
|
31
|
-
def self.able_to_parse?(xml) #:nodoc:
|
32
|
-
xml =~ /(Atom)|(#{Regexp.escape("http://purl.org/atom")})/
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
data/lib/feedzirra/atom_entry.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
module Feedzirra
|
2
|
-
# == Summary
|
3
|
-
# Parser for dealing with Atom feed entries.
|
4
|
-
#
|
5
|
-
# == Attributes
|
6
|
-
# * title
|
7
|
-
# * url
|
8
|
-
# * related
|
9
|
-
# * author
|
10
|
-
# * content
|
11
|
-
# * summary
|
12
|
-
# * published
|
13
|
-
# * categories
|
14
|
-
# * media_content
|
15
|
-
# * media_description
|
16
|
-
# * media_thumbnail
|
17
|
-
# * enclosure
|
18
|
-
class AtomEntry
|
19
|
-
include SAXMachine
|
20
|
-
include FeedEntryUtilities
|
21
|
-
element :title
|
22
|
-
element :link, :as => :url, :value => :href, :with => {:rel => "alternate"}
|
23
|
-
elements :link, :as => :related, :value => :href, :with => {:rel => "related"}
|
24
|
-
element :name, :as => :author
|
25
|
-
element :content
|
26
|
-
element :summary
|
27
|
-
element :published
|
28
|
-
element :id
|
29
|
-
element :created, :as => :published
|
30
|
-
element :issued, :as => :published
|
31
|
-
element :updated
|
32
|
-
element :modified, :as => :updated
|
33
|
-
elements :category, :as => :categories, :value => :term
|
34
|
-
|
35
|
-
element :"media:content", :as => :media_content, :value => :url
|
36
|
-
element :"media:description", :as => :media_description
|
37
|
-
element :"media:thumbnail", :as => :media_thumbnail, :value => :url
|
38
|
-
|
39
|
-
element :enclosure, :value => :url
|
40
|
-
end
|
41
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Feedzirra
|
2
|
-
# == Summary
|
3
|
-
# Parser for dealing with Feedburner Atom feeds.
|
4
|
-
#
|
5
|
-
# == Attributes
|
6
|
-
# * title
|
7
|
-
# * feed_url
|
8
|
-
# * url
|
9
|
-
# * entries
|
10
|
-
class AtomFeedBurner
|
11
|
-
include SAXMachine
|
12
|
-
include FeedUtilities
|
13
|
-
element :title
|
14
|
-
element :link, :as => :url, :value => :href, :with => {:type => "text/html"}
|
15
|
-
element :link, :as => :feed_url, :value => :href, :with => {:type => "application/atom+xml"}
|
16
|
-
elements :entry, :as => :entries, :class => AtomFeedBurnerEntry
|
17
|
-
|
18
|
-
def self.able_to_parse?(xml) #:nodoc:
|
19
|
-
(xml =~ /Atom/ && xml =~ /feedburner/) || false
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Feedzirra
|
2
|
-
# == Summary
|
3
|
-
# Parser for dealing with Feedburner Atom feed entries.
|
4
|
-
#
|
5
|
-
# == Attributes
|
6
|
-
# * title
|
7
|
-
# * url
|
8
|
-
# * author
|
9
|
-
# * content
|
10
|
-
# * summary
|
11
|
-
# * published
|
12
|
-
# * categories
|
13
|
-
class AtomFeedBurnerEntry
|
14
|
-
include SAXMachine
|
15
|
-
include FeedEntryUtilities
|
16
|
-
element :title
|
17
|
-
element :name, :as => :author
|
18
|
-
element :link, :as => :url, :value => :href, :with => {:rel => "alternate"}
|
19
|
-
element :"feedburner:origLink", :as => :url
|
20
|
-
element :summary
|
21
|
-
element :content
|
22
|
-
element :published
|
23
|
-
element :id
|
24
|
-
element :issued, :as => :published
|
25
|
-
element :created, :as => :published
|
26
|
-
element :updated
|
27
|
-
element :modified, :as => :updated
|
28
|
-
elements :category, :as => :categories, :value => :term
|
29
|
-
end
|
30
|
-
end
|
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
|