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
@@ -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
|