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.
- 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
@@ -42,19 +42,19 @@ describe Feedzirra::FeedUtilities do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
it "should return a last_modified value from the entry with the most recent published date if the last_modified date hasn't been set" do
|
45
|
-
feed = Feedzirra::Atom.new
|
46
|
-
entry =Feedzirra::AtomEntry.new
|
45
|
+
feed = Feedzirra::Parser::Atom.new
|
46
|
+
entry =Feedzirra::Parser::AtomEntry.new
|
47
47
|
entry.published = Time.now.to_s
|
48
48
|
feed.entries << entry
|
49
49
|
feed.last_modified.should == entry.published
|
50
50
|
end
|
51
51
|
|
52
52
|
it "should not throw an error if one of the entries has published date of nil" do
|
53
|
-
feed = Feedzirra::Atom.new
|
54
|
-
entry = Feedzirra::AtomEntry.new
|
53
|
+
feed = Feedzirra::Parser::Atom.new
|
54
|
+
entry = Feedzirra::Parser::AtomEntry.new
|
55
55
|
entry.published = Time.now.to_s
|
56
56
|
feed.entries << entry
|
57
|
-
feed.entries << Feedzirra::AtomEntry.new
|
57
|
+
feed.entries << Feedzirra::Parser::AtomEntry.new
|
58
58
|
feed.last_modified.should == entry.published
|
59
59
|
end
|
60
60
|
end
|
@@ -64,7 +64,7 @@ describe Feedzirra::FeedUtilities do
|
|
64
64
|
before(:each) do
|
65
65
|
# I'm using the Atom class when I know I should be using a different one. However, this update_from_feed
|
66
66
|
# method would only be called against a feed item.
|
67
|
-
@feed = Feedzirra::Atom.new
|
67
|
+
@feed = Feedzirra::Parser::Atom.new
|
68
68
|
@feed.title = "A title"
|
69
69
|
@feed.url = "http://pauldix.net"
|
70
70
|
@feed.feed_url = "http://feeds.feedburner.com/PaulDixExplainsNothing"
|
@@ -112,16 +112,16 @@ describe Feedzirra::FeedUtilities do
|
|
112
112
|
before(:each) do
|
113
113
|
# I'm using the Atom class when I know I should be using a different one. However, this update_from_feed
|
114
114
|
# method would only be called against a feed item.
|
115
|
-
@feed = Feedzirra::Atom.new
|
115
|
+
@feed = Feedzirra::Parser::Atom.new
|
116
116
|
@feed.title = "A title"
|
117
117
|
@feed.url = "http://pauldix.net"
|
118
118
|
@feed.feed_url = "http://feeds.feedburner.com/PaulDixExplainsNothing"
|
119
119
|
@feed.updated = false
|
120
120
|
@updated_feed = @feed.dup
|
121
|
-
@old_entry = Feedzirra::AtomEntry.new
|
121
|
+
@old_entry = Feedzirra::Parser::AtomEntry.new
|
122
122
|
@old_entry.url = "http://pauldix.net/old.html"
|
123
123
|
@old_entry.published = Time.now.to_s
|
124
|
-
@new_entry = Feedzirra::AtomEntry.new
|
124
|
+
@new_entry = Feedzirra::Parser::AtomEntry.new
|
125
125
|
@new_entry.url = "http://pauldix.net/new.html"
|
126
126
|
@new_entry.published = (Time.now + 10).to_s
|
127
127
|
@feed.entries << @old_entry
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require File.dirname(__FILE__)
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
|
-
describe Feedzirra::AtomEntry do
|
3
|
+
describe Feedzirra::Parser::AtomEntry 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 AtomEntry,
|
6
6
|
# but this is actually how it should work. You would never just pass entry xml straight to the AtomEnry
|
7
|
-
@entry = Feedzirra::Atom.parse(sample_atom_feed).entries.first
|
7
|
+
@entry = Feedzirra::Parser::Atom.parse(sample_atom_feed).entries.first
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should parse the title" do
|
data/spec/feedzirra/{atom_feed_burner_entry_spec.rb → parser/atom_feed_burner_entry_spec.rb}
RENAMED
@@ -1,10 +1,10 @@
|
|
1
|
-
require File.dirname(__FILE__)
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
|
-
describe Feedzirra::AtomFeedBurnerEntry do
|
3
|
+
describe Feedzirra::Parser::AtomFeedBurnerEntry 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 AtomEntry,
|
6
6
|
# but this is actually how it should work. You would never just pass entry xml straight to the AtomEnry
|
7
|
-
@entry = Feedzirra::AtomFeedBurner.parse(sample_feedburner_atom_feed).entries.first
|
7
|
+
@entry = Feedzirra::Parser::AtomFeedBurner.parse(sample_feedburner_atom_feed).entries.first
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should parse the title" do
|
@@ -12,7 +12,7 @@ describe Feedzirra::AtomFeedBurnerEntry do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should be able to fetch a url via the 'alternate' rel if no origLink exists" do
|
15
|
-
entry = Feedzirra::AtomFeedBurner.parse(File.read("#{File.dirname(__FILE__)}
|
15
|
+
entry = Feedzirra::Parser::AtomFeedBurner.parse(File.read("#{File.dirname(__FILE__)}/../../sample_feeds/PaulDixExplainsNothingAlternate.xml")).entries.first
|
16
16
|
entry.url.should == 'http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~3/519925023/making-a-ruby-c-library-even-faster.html'
|
17
17
|
end
|
18
18
|
|
@@ -1,23 +1,23 @@
|
|
1
|
-
require File.dirname(__FILE__)
|
1
|
+
require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
|
2
2
|
|
3
|
-
describe Feedzirra::AtomFeedBurner do
|
3
|
+
describe Feedzirra::Parser::AtomFeedBurner do
|
4
4
|
describe "#will_parse?" do
|
5
5
|
it "should return true for a feedburner atom feed" do
|
6
|
-
Feedzirra::AtomFeedBurner.should be_able_to_parse(sample_feedburner_atom_feed)
|
6
|
+
Feedzirra::Parser::AtomFeedBurner.should be_able_to_parse(sample_feedburner_atom_feed)
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should return false for an rdf feed" do
|
10
|
-
Feedzirra::AtomFeedBurner.should_not be_able_to_parse(sample_rdf_feed)
|
10
|
+
Feedzirra::Parser::AtomFeedBurner.should_not be_able_to_parse(sample_rdf_feed)
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should return false for a regular atom feed" do
|
14
|
-
Feedzirra::AtomFeedBurner.should_not be_able_to_parse(sample_atom_feed)
|
14
|
+
Feedzirra::Parser::AtomFeedBurner.should_not be_able_to_parse(sample_atom_feed)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "parsing" do
|
19
19
|
before(:each) do
|
20
|
-
@feed = Feedzirra::AtomFeedBurner.parse(sample_feedburner_atom_feed)
|
20
|
+
@feed = Feedzirra::Parser::AtomFeedBurner.parse(sample_feedburner_atom_feed)
|
21
21
|
end
|
22
22
|
|
23
23
|
it "should parse the title" 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::Atom do
|
3
|
+
describe Feedzirra::Parser::Atom do
|
4
4
|
describe "#will_parse?" do
|
5
5
|
it "should return true for an atom feed" do
|
6
|
-
Feedzirra::Atom.should be_able_to_parse(sample_atom_feed)
|
6
|
+
Feedzirra::Parser::Atom.should be_able_to_parse(sample_atom_feed)
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should return false for an rdf feed" do
|
10
|
-
Feedzirra::Atom.should_not be_able_to_parse(sample_rdf_feed)
|
10
|
+
Feedzirra::Parser::Atom.should_not be_able_to_parse(sample_rdf_feed)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
describe "parsing" do
|
15
15
|
before(:each) do
|
16
|
-
@feed = Feedzirra::Atom.parse(sample_atom_feed)
|
16
|
+
@feed = Feedzirra::Parser::Atom.parse(sample_atom_feed)
|
17
17
|
end
|
18
18
|
|
19
19
|
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::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
|
@@ -34,7 +34,7 @@ describe Feedzirra::ITunesRSSItem do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "should parse the published date" do
|
37
|
-
@item.published.should == "Wed, 15 Jun 2005 19:00:00 GMT"
|
37
|
+
@item.published.should == Time.parse("Wed, 15 Jun 2005 19:00:00 GMT")
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should parse the duration" do
|
@@ -44,5 +44,9 @@ describe Feedzirra::ITunesRSSItem do
|
|
44
44
|
it "should parse the keywords" do
|
45
45
|
@item.itunes_keywords.should == "salt, pepper, shaker, exciting"
|
46
46
|
end
|
47
|
+
|
48
|
+
it "should parse content:encoded" do
|
49
|
+
@item.summary.should == "<p>This week we talk about salt and pepper shakers, comparing and contrasting pour rates, construction materials, and overall aesthetics. Come and join the party!</p>"
|
50
|
+
end
|
47
51
|
|
48
52
|
end
|
@@ -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,10 +1,10 @@
|
|
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
|
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 AtomEnry
|
7
|
-
@entry = Feedzirra::RSS.parse(sample_rss_feed).entries.first
|
7
|
+
@entry = Feedzirra::Parser::RSS.parse(sample_rss_feed).entries.first
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should parse the title" 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" 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
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe Feedzirra::PushParser do
|
4
|
+
describe "#parse" do
|
5
|
+
it "should parse an atom feed" do
|
6
|
+
pp = Feedzirra::PushParser.new
|
7
|
+
sample_atom_feed.each_char { |c|
|
8
|
+
pp.push(c)
|
9
|
+
}
|
10
|
+
feed = pp.finish
|
11
|
+
feed.title.should == "Amazon Web Services Blog"
|
12
|
+
feed.entries.first.published.to_s.should == "Fri Jan 16 18:21:00 UTC 2009"
|
13
|
+
feed.entries.size.should == 10
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: astro-feedzirra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Dix
|
@@ -83,35 +83,38 @@ extra_rdoc_files: []
|
|
83
83
|
files:
|
84
84
|
- lib/core_ext/date.rb
|
85
85
|
- lib/core_ext/string.rb
|
86
|
-
- lib/feedzirra.rb
|
87
86
|
- 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
|
97
|
-
- lib/feedzirra/feed_utilities.rb
|
98
87
|
- lib/feedzirra/feed_entry_utilities.rb
|
99
|
-
-
|
88
|
+
- lib/feedzirra/feed_utilities.rb
|
89
|
+
- lib/feedzirra/parser/atom.rb
|
90
|
+
- lib/feedzirra/parser/atom_entry.rb
|
91
|
+
- lib/feedzirra/parser/atom_feed_burner.rb
|
92
|
+
- lib/feedzirra/parser/atom_feed_burner_entry.rb
|
93
|
+
- lib/feedzirra/parser/itunes_rss.rb
|
94
|
+
- lib/feedzirra/parser/itunes_rss_item.rb
|
95
|
+
- lib/feedzirra/parser/itunes_rss_owner.rb
|
96
|
+
- lib/feedzirra/parser/rss.rb
|
97
|
+
- lib/feedzirra/parser/rss_entry.rb
|
98
|
+
- lib/feedzirra/push_parser.rb
|
99
|
+
- lib/feedzirra.rb
|
100
100
|
- Rakefile
|
101
|
-
-
|
102
|
-
-
|
101
|
+
- README.rdoc
|
102
|
+
- README.textile
|
103
|
+
- spec/feedzirra/feed_entry_utilities_spec.rb
|
103
104
|
- 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
|
113
105
|
- spec/feedzirra/feed_utilities_spec.rb
|
114
|
-
- spec/feedzirra/
|
106
|
+
- spec/feedzirra/push_parser_spec.rb
|
107
|
+
- spec/feedzirra/parser/atom_entry_spec.rb
|
108
|
+
- spec/feedzirra/parser/atom_feed_burner_entry_spec.rb
|
109
|
+
- spec/feedzirra/parser/atom_feed_burner_spec.rb
|
110
|
+
- spec/feedzirra/parser/atom_spec.rb
|
111
|
+
- spec/feedzirra/parser/itunes_rss_item_spec.rb
|
112
|
+
- spec/feedzirra/parser/itunes_rss_owner_spec.rb
|
113
|
+
- spec/feedzirra/parser/itunes_rss_spec.rb
|
114
|
+
- spec/feedzirra/parser/rss_entry_spec.rb
|
115
|
+
- spec/feedzirra/parser/rss_spec.rb
|
116
|
+
- spec/spec.opts
|
117
|
+
- spec/spec_helper.rb
|
115
118
|
has_rdoc: true
|
116
119
|
homepage: http://github.com/pauldix/feedzirra
|
117
120
|
post_install_message:
|
data/lib/feedzirra/atom.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
module Feedzirra
|
2
|
-
# == Summary
|
3
|
-
# Parser for dealing with Atom feeds.
|
4
|
-
#
|
5
|
-
# == Attributes
|
6
|
-
# * title
|
7
|
-
# * feed_url
|
8
|
-
# * url
|
9
|
-
# * entries
|
10
|
-
class Atom
|
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 => AtomEntry
|
17
|
-
|
18
|
-
def self.able_to_parse?(xml) #:nodoc:
|
19
|
-
xml =~ /(Atom)|(#{Regexp.escape("http://purl.org/atom")})/
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/lib/feedzirra/atom_entry.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module Feedzirra
|
2
|
-
# == Summary
|
3
|
-
# Parser for dealing with Atom feed entries.
|
4
|
-
#
|
5
|
-
# == Attributes
|
6
|
-
# * title
|
7
|
-
# * url
|
8
|
-
# * author
|
9
|
-
# * content
|
10
|
-
# * summary
|
11
|
-
# * published
|
12
|
-
# * categories
|
13
|
-
class AtomEntry
|
14
|
-
include SAXMachine
|
15
|
-
include FeedEntryUtilities
|
16
|
-
element :title
|
17
|
-
element :link, :as => :url, :value => :href, :with => {:type => "text/html", :rel => "alternate"}
|
18
|
-
element :name, :as => :author
|
19
|
-
element :content
|
20
|
-
element :summary
|
21
|
-
element :published
|
22
|
-
element :id
|
23
|
-
element :created, :as => :published
|
24
|
-
element :issued, :as => :published
|
25
|
-
element :updated
|
26
|
-
element :modified, :as => :updated
|
27
|
-
elements :category, :as => :categories, :value => :term
|
28
|
-
end
|
29
|
-
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 => {:type => "text/html", :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
|