feedzirra 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -46,7 +46,7 @@ module Feedzirra
46
46
  # === Returns
47
47
  # A array of class names.
48
48
  def self.feed_classes
49
- @feed_classes ||= [Feedzirra::Parser::RSS, Feedzirra::Parser::AtomFeedBurner, Feedzirra::Parser::Atom]
49
+ @feed_classes ||= [Feedzirra::Parser::RSSFeedBurner, Feedzirra::Parser::RSS, Feedzirra::Parser::AtomFeedBurner, Feedzirra::Parser::Atom]
50
50
  end
51
51
 
52
52
  # Makes all registered feeds types look for the passed in element to parse.
@@ -129,6 +129,7 @@ module Feedzirra
129
129
  curl.proxy_port = options[:proxy_port] if options.has_key?(:proxy_port)
130
130
  curl.max_redirects = options[:max_redirects] if options[:max_redirects]
131
131
  curl.timeout = options[:timeout] if options[:timeout]
132
+ curl.ssl_verify_host = options[:ssl_verify_host] if options.has_key?(:ssl_verify_host)
132
133
 
133
134
  curl.follow_location = true
134
135
  end
@@ -248,7 +249,7 @@ module Feedzirra
248
249
  end
249
250
 
250
251
  multi.perform
251
- responses.size == 1 ? responses.values.first : responses.values
252
+ responses.is_a?(Array)? responses.values : responses.values.first
252
253
  end
253
254
 
254
255
  # An abstraction for adding a feed by URL to the passed Curb::multi stack.
@@ -325,6 +326,7 @@ module Feedzirra
325
326
  easy = Curl::Easy.new(feed.feed_url) do |curl|
326
327
  setup_easy curl, options
327
328
  curl.headers["If-Modified-Since"] = feed.last_modified.httpdate if feed.last_modified
329
+ curl.headers["If-Modified-Since"] = options[:if_modified_since] if options[:if_modified_since] && (!feed.last_modified || (Time.parse(options[:if_modified_since].to_s) > feed.last_modified))
328
330
  curl.headers["If-None-Match"] = feed.etag if feed.etag
329
331
 
330
332
  curl.on_success do |c|
@@ -1,8 +1,10 @@
1
1
  module Feedzirra
2
2
  module Parser
3
- autoload :RSS, 'feedzirra/parser/rss'
4
- autoload :RSSEntry, 'feedzirra/parser/rss_entry'
5
-
3
+ autoload :RSS, 'feedzirra/parser/rss'
4
+ autoload :RSSEntry, 'feedzirra/parser/rss_entry'
5
+ autoload :RSSFeedBurner, 'feedzirra/parser/rss_feed_burner'
6
+ autoload :RSSFeedBurnerEntry, 'feedzirra/parser/rss_feed_burner_entry'
7
+
6
8
  autoload :ITunesRSS, 'feedzirra/parser/itunes_rss'
7
9
  autoload :ITunesRSSItem, 'feedzirra/parser/itunes_rss_item'
8
10
  autoload :ITunesRSSOwner, 'feedzirra/parser/itunes_rss_owner'
@@ -12,7 +12,7 @@ module Feedzirra
12
12
  elements :entry, :as => :entries, :class => AtomFeedBurnerEntry
13
13
 
14
14
  def self.able_to_parse?(xml) #:nodoc:
15
- ((/Atom/ =~ xml) && (/feedburner/ =~ xml)) || false
15
+ ((/Atom/ =~ xml) && (/feedburner/ =~ xml) && !(/\<rss|\<rdf/ =~ xml)) || false
16
16
  end
17
17
  end
18
18
 
@@ -13,7 +13,7 @@ module Feedzirra
13
13
  attr_accessor :feed_url
14
14
 
15
15
  def self.able_to_parse?(xml) #:nodoc:
16
- /\<rss|\<rdf/ =~ xml
16
+ (/\<rss|\<rdf/ =~ xml) && !(/feedburner/ =~ xml)
17
17
  end
18
18
  end
19
19
 
@@ -0,0 +1,22 @@
1
+ module Feedzirra
2
+
3
+ module Parser
4
+ # Parser for dealing with RSS feeds.
5
+ class RSSFeedBurner
6
+ include SAXMachine
7
+ include FeedUtilities
8
+ element :title
9
+ element :description
10
+ element :link, :as => :url
11
+ elements :item, :as => :entries, :class => RSSFeedBurnerEntry
12
+
13
+ attr_accessor :feed_url
14
+
15
+ def self.able_to_parse?(xml) #:nodoc:
16
+ (/\<rss|\<rdf/ =~ xml) && (/feedburner/ =~ xml)
17
+ end
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,40 @@
1
+ module Feedzirra
2
+
3
+ module Parser
4
+ # Parser for dealing with RDF feed entries.
5
+ class RSSFeedBurnerEntry
6
+ include SAXMachine
7
+ include FeedEntryUtilities
8
+
9
+ element :title
10
+
11
+ element :"feedburner:origLink", :as => :url
12
+ element :link, :as => :url
13
+
14
+ element :"dc:creator", :as => :author
15
+ element :author, :as => :author
16
+ element :"content:encoded", :as => :content
17
+ element :description, :as => :summary
18
+
19
+ element :pubDate, :as => :published
20
+ element :pubdate, :as => :published
21
+ element :"dc:date", :as => :published
22
+ element :"dc:Date", :as => :published
23
+ element :"dcterms:created", :as => :published
24
+
25
+
26
+ element :"dcterms:modified", :as => :updated
27
+ element :issued, :as => :published
28
+ elements :category, :as => :categories
29
+
30
+ element :guid, :as => :entry_id
31
+
32
+ def url
33
+ @url || @link
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -1,3 +1,3 @@
1
1
  module Feedzirra
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
@@ -90,9 +90,9 @@ describe Feedzirra::Feed do
90
90
 
91
91
  it "should parse an feedburner rss feed" do
92
92
  feed = Feedzirra::Feed.parse(sample_rss_feed_burner_feed)
93
- feed.title.should == "Sam Harris: Author, Philosopher, Essayist, Atheist"
94
- feed.entries.first.published.to_s.should == "Tue Jan 13 17:20:28 UTC 2009"
95
- feed.entries.size.should == 10
93
+ feed.title.should == "TechCrunch"
94
+ feed.entries.first.published.to_s.should == "Wed Nov 02 17:25:27 UTC 2011"
95
+ feed.entries.size.should == 20
96
96
  end
97
97
  end
98
98
 
@@ -109,8 +109,8 @@ describe Feedzirra::Feed do
109
109
  Feedzirra::Feed.determine_feed_parser_for_xml(sample_rdf_feed).should == Feedzirra::Parser::RSS
110
110
  end
111
111
 
112
- it "should return the Feedzirra::Parser::RSS class for an rss feedburner feed" do
113
- Feedzirra::Feed.determine_feed_parser_for_xml(sample_rss_feed_burner_feed).should == Feedzirra::Parser::RSS
112
+ it "should return the Feedzirra::Parser::RSSFeedBurner class for an rss feedburner feed" do
113
+ Feedzirra::Feed.determine_feed_parser_for_xml(sample_rss_feed_burner_feed).should == Feedzirra::Parser::RSSFeedBurner
114
114
  end
115
115
 
116
116
  it "should return the Feedzirra::Parser::RSS object for an rss 2.0 feed" do
@@ -254,7 +254,7 @@ describe Feedzirra::Feed do
254
254
 
255
255
  describe "#add_url_to_multi" do
256
256
  before(:each) do
257
- @multi = Curl::Multi.new
257
+ @multi = Curl::Multi.get([@paul_feed[:url]], {:follow_location => true}, {:pipeline => true})
258
258
  @multi.stub!(:add)
259
259
  @easy_curl = Curl::Easy.new(@paul_feed[:url])
260
260
 
@@ -396,7 +396,7 @@ describe Feedzirra::Feed do
396
396
 
397
397
  describe "#add_feed_to_multi" do
398
398
  before(:each) do
399
- @multi = Curl::Multi.new
399
+ @multi = Curl::Multi.get([@paul_feed[:url]], {:follow_location => true}, {:pipeline => true})
400
400
  @multi.stub!(:add)
401
401
  @easy_curl = Curl::Easy.new(@paul_feed[:url])
402
402
  @feed = Feedzirra::Feed.parse(sample_feedburner_atom_feed)
@@ -414,7 +414,13 @@ describe Feedzirra::Feed do
414
414
  @easy_curl.headers["User-Agent"].should == Feedzirra::Feed::USER_AGENT
415
415
  end
416
416
 
417
- it "should set if modified since as an option if passed"
417
+ it "should set if modified since as an option if passed" do
418
+ modified_time = Time.parse("Wed, 28 Jan 2009 04:10:32 GMT")
419
+ Feedzirra::Feed.add_feed_to_multi(@multi, @feed, [], {}, {:if_modified_since => modified_time})
420
+ modified_time.should be > @feed.last_modified
421
+
422
+ @easy_curl.headers["If-Modified-Since"].should == modified_time
423
+ end
418
424
 
419
425
  it 'should set follow location to true' do
420
426
  @easy_curl.should_receive(:follow_location=).with(true)
@@ -528,6 +534,14 @@ describe Feedzirra::Feed do
528
534
  it 'should slice the feeds into groups of thirty for processing'
529
535
  it "should return a feed object if a single feed is passed in"
530
536
  it "should return an return an array of feed objects if multiple feeds are passed in"
537
+
538
+ it "should set if modified since as an option if passed" do
539
+ modified_time = Time.parse("Wed, 28 Jan 2009 04:10:32 GMT")
540
+ Feedzirra::Feed.should_receive(:add_url_to_multi).with(anything, anything, anything, anything, {:if_modified_since => modified_time}).any_number_of_times
541
+
542
+ @feed = Feedzirra::Feed.fetch_and_parse(sample_feedburner_atom_feed, {:if_modified_since => modified_time})
543
+ end
544
+
531
545
  end
532
546
 
533
547
  describe "#decode_content" do
@@ -13,6 +13,10 @@ describe Feedzirra::Parser::AtomFeedBurner do
13
13
  it "should return false for a regular atom feed" do
14
14
  Feedzirra::Parser::AtomFeedBurner.should_not be_able_to_parse(sample_atom_feed)
15
15
  end
16
+
17
+ it "should return false for an rss feedburner feed" do
18
+ Feedzirra::Parser::AtomFeedBurner.should_not be_able_to_parse(sample_rss_feed_burner_feed)
19
+ end
16
20
  end
17
21
 
18
22
  describe "parsing" do
@@ -9,6 +9,10 @@ describe Feedzirra::Parser::Atom do
9
9
  it "should return false for an rdf feed" do
10
10
  Feedzirra::Parser::Atom.should_not be_able_to_parse(sample_rdf_feed)
11
11
  end
12
+
13
+ it "should return false for an rss feedburner feed" do
14
+ Feedzirra::Parser::Atom.should_not be_able_to_parse(sample_rss_feed_burner_feed)
15
+ end
12
16
  end
13
17
 
14
18
  describe "parsing" do
@@ -9,6 +9,10 @@ describe Feedzirra::Parser::ITunesRSS do
9
9
  it "should return fase for an atom feed" do
10
10
  Feedzirra::Parser::ITunesRSS.should_not be_able_to_parse(sample_atom_feed)
11
11
  end
12
+
13
+ it "should return false for an rss feedburner feed" do
14
+ Feedzirra::Parser::ITunesRSS.should_not be_able_to_parse(sample_rss_feed_burner_feed)
15
+ end
12
16
  end
13
17
 
14
18
  describe "parsing" do
@@ -0,0 +1,85 @@
1
+ # coding: utf-8
2
+ require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
3
+
4
+ describe Feedzirra::Parser::RSSFeedBurnerEntry do
5
+ before(:each) do
6
+ # I don't really like doing it this way because these unit test should only rely on RSSEntry,
7
+ # but this is actually how it should work. You would never just pass entry xml straight to the AtomEnry
8
+ @entry = Feedzirra::Parser::RSSFeedBurner.parse(sample_rss_feed_burner_feed).entries.first
9
+ end
10
+
11
+ after(:each) do
12
+ # We change the title in one or more specs to test []=
13
+ if @entry.title != "Angie’s List Sets Price Range IPO At $11 To $13 Per Share; Valued At Over $600M"
14
+ @entry.title = Feedzirra::Parser::RSS.parse(sample_rss_feed_burner_feed).entries.first.title
15
+ end
16
+ end
17
+
18
+ it "should parse the title" do
19
+ @entry.title.should == "Angie’s List Sets Price Range IPO At $11 To $13 Per Share; Valued At Over $600M"
20
+ end
21
+
22
+ it "should parse the original url" do
23
+ @entry.url.should == "http://techcrunch.com/2011/11/02/angies-list-prices-ipo-at-11-to-13-per-share-valued-at-over-600m/"
24
+ end
25
+
26
+ it "should parse the author" do
27
+ @entry.author.should == "Leena Rao"
28
+ end
29
+
30
+ it "should parse the content" do
31
+ @entry.content.should == sample_rss_feed_burner_entry_content
32
+ end
33
+
34
+ it "should provide a summary" do
35
+ @entry.summary.should == sample_rss_feed_burner_entry_description
36
+ end
37
+
38
+ it "should parse the published date" do
39
+ @entry.published.to_s.should == "Wed Nov 02 17:25:27 UTC 2011"
40
+ end
41
+
42
+ it "should parse the categories" do
43
+ @entry.categories.should == ["TC", "angie\\'s list"]
44
+ end
45
+
46
+ it "should parse the guid as id" do
47
+ @entry.id.should == "http://techcrunch.com/?p=446154"
48
+ end
49
+
50
+ it "should support each" do
51
+ @entry.respond_to? :each
52
+ end
53
+
54
+ it "should be able to list out all fields with each" do
55
+ all_fields = []
56
+ @entry.each do |field, value|
57
+ all_fields << field
58
+ end
59
+ all_fields.sort == ['author', 'categories', 'content', 'id', 'published', 'summary', 'title', 'url']
60
+ end
61
+
62
+ it "should be able to list out all values with each" do
63
+ title_value = ''
64
+ @entry.each do |field, value|
65
+ title_value = value if field == 'title'
66
+ end
67
+ title_value.should == "Angie’s List Sets Price Range IPO At $11 To $13 Per Share; Valued At Over $600M"
68
+ end
69
+
70
+ it "should support checking if a field exists in the entry" do
71
+ @entry.include?('title') && @entry.include?('author')
72
+ end
73
+
74
+ it "should allow access to fields with hash syntax" do
75
+ @entry['title'] == @entry.title
76
+ @entry['title'].should == "Angie’s List Sets Price Range IPO At $11 To $13 Per Share; Valued At Over $600M"
77
+ @entry['author'] == @entry.author
78
+ @entry['author'].should == "Leena Rao"
79
+ end
80
+
81
+ it "should allow setting field values with hash syntax" do
82
+ @entry['title'] = "Foobar"
83
+ @entry.title.should == "Foobar"
84
+ end
85
+ end
@@ -0,0 +1,52 @@
1
+ require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])
2
+
3
+ describe Feedzirra::Parser::RSSFeedBurner do
4
+ describe "#will_parse?" do
5
+ it "should return true for a feedburner rss feed" do
6
+ Feedzirra::Parser::RSSFeedBurner.should be_able_to_parse(sample_rss_feed_burner_feed)
7
+ end
8
+
9
+ it "should return false for a regular RSS feed" do
10
+ Feedzirra::Parser::RSSFeedBurner.should_not be_able_to_parse(sample_rss_feed)
11
+ end
12
+
13
+ it "should return false for a feedburner atom feed" do
14
+ Feedzirra::Parser::RSSFeedBurner.should_not be_able_to_parse(sample_feedburner_atom_feed)
15
+ end
16
+
17
+ it "should return false for an rdf feed" do
18
+ Feedzirra::Parser::RSSFeedBurner.should_not be_able_to_parse(sample_rdf_feed)
19
+ end
20
+
21
+ it "should return false for a regular atom feed" do
22
+ Feedzirra::Parser::RSSFeedBurner.should_not be_able_to_parse(sample_atom_feed)
23
+ end
24
+ end
25
+
26
+ describe "parsing" do
27
+ before(:each) do
28
+ @feed = Feedzirra::Parser::RSSFeedBurner.parse(sample_rss_feed_burner_feed)
29
+ end
30
+
31
+ it "should parse the title" do
32
+ @feed.title.should == "TechCrunch"
33
+ end
34
+
35
+ it "should parse the description" do
36
+ @feed.description.should == "TechCrunch is a group-edited blog that profiles the companies, products and events defining and transforming the new web."
37
+ end
38
+
39
+ it "should parse the url" do
40
+ @feed.url.should == "http://techcrunch.com"
41
+ end
42
+
43
+ it "should provide an accessor for the feed_url" do
44
+ @feed.respond_to?(:feed_url).should == true
45
+ @feed.respond_to?(:feed_url=).should == true
46
+ end
47
+
48
+ it "should parse entries" do
49
+ @feed.entries.size.should == 20
50
+ end
51
+ end
52
+ end
@@ -11,9 +11,13 @@ describe Feedzirra::Parser::RSS do
11
11
  # Feedzirra::RSS.should_not be_able_to_parse(sample_rdf_feed)
12
12
  # end
13
13
 
14
- it "should return fase for an atom feed" do
14
+ it "should return false for an atom feed" do
15
15
  Feedzirra::Parser::RSS.should_not be_able_to_parse(sample_atom_feed)
16
16
  end
17
+
18
+ it "should return false for an rss feedburner feed" do
19
+ Feedzirra::Parser::RSS.should_not be_able_to_parse(sample_rss_feed_burner_feed)
20
+ end
17
21
  end
18
22
 
19
23
  describe "parsing" do
data/spec/spec_helper.rb CHANGED
@@ -34,7 +34,15 @@ def sample_rdf_entry_content
34
34
  end
35
35
 
36
36
  def sample_rss_feed_burner_feed
37
- load_sample("SamHarrisAuthorPhilosopherEssayistAtheist.xml")
37
+ load_sample("TechCrunch.xml")
38
+ end
39
+
40
+ def sample_rss_feed_burner_entry_content
41
+ load_sample("TechCrunchFirstEntry.xml")
42
+ end
43
+
44
+ def sample_rss_feed_burner_entry_description
45
+ load_sample("TechCrunchFirstEntryDescription.xml")
38
46
  end
39
47
 
40
48
  def sample_rss_feed
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feedzirra
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 1
9
- - 1
10
- version: 0.1.1
8
+ - 2
9
+ version: 0.1.2
11
10
  platform: ruby
12
11
  authors:
13
12
  - Paul Dix
@@ -16,7 +15,8 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2011-09-30 00:00:00 Z
18
+ date: 2011-09-30 00:00:00 -04:00
19
+ default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: nokogiri
@@ -24,9 +24,8 @@ dependencies:
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ~>
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
- hash: 15
30
29
  segments:
31
30
  - 1
32
31
  - 4
@@ -42,7 +41,6 @@ dependencies:
42
41
  requirements:
43
42
  - - ~>
44
43
  - !ruby/object:Gem::Version
45
- hash: 27
46
44
  segments:
47
45
  - 0
48
46
  - 1
@@ -58,7 +56,6 @@ dependencies:
58
56
  requirements:
59
57
  - - ~>
60
58
  - !ruby/object:Gem::Version
61
- hash: 29
62
59
  segments:
63
60
  - 0
64
61
  - 7
@@ -72,9 +69,8 @@ dependencies:
72
69
  requirement: &id004 !ruby/object:Gem::Requirement
73
70
  none: false
74
71
  requirements:
75
- - - ~>
72
+ - - ">="
76
73
  - !ruby/object:Gem::Version
77
- hash: 15
78
74
  segments:
79
75
  - 2
80
76
  - 1
@@ -88,9 +84,8 @@ dependencies:
88
84
  requirement: &id005 !ruby/object:Gem::Requirement
89
85
  none: false
90
86
  requirements:
91
- - - ">="
87
+ - - ~>
92
88
  - !ruby/object:Gem::Version
93
- hash: 23
94
89
  segments:
95
90
  - 3
96
91
  - 0
@@ -106,7 +101,6 @@ dependencies:
106
101
  requirements:
107
102
  - - ~>
108
103
  - !ruby/object:Gem::Version
109
- hash: 31
110
104
  segments:
111
105
  - 1
112
106
  - 2
@@ -122,7 +116,6 @@ dependencies:
122
116
  requirements:
123
117
  - - ~>
124
118
  - !ruby/object:Gem::Version
125
- hash: 23
126
119
  segments:
127
120
  - 3
128
121
  - 8
@@ -137,12 +130,11 @@ dependencies:
137
130
  requirements:
138
131
  - - ">="
139
132
  - !ruby/object:Gem::Version
140
- hash: 63
141
133
  segments:
142
134
  - 0
143
- - 9
144
- - 2
145
- version: 0.9.2
135
+ - 8
136
+ - 7
137
+ version: 0.8.7
146
138
  type: :runtime
147
139
  version_requirements: *id008
148
140
  - !ruby/object:Gem::Dependency
@@ -153,7 +145,6 @@ dependencies:
153
145
  requirements:
154
146
  - - ">="
155
147
  - !ruby/object:Gem::Version
156
- hash: 11
157
148
  segments:
158
149
  - 0
159
150
  - 5
@@ -169,7 +160,6 @@ dependencies:
169
160
  requirements:
170
161
  - - ~>
171
162
  - !ruby/object:Gem::Version
172
- hash: 23
173
163
  segments:
174
164
  - 2
175
165
  - 6
@@ -201,6 +191,8 @@ files:
201
191
  - lib/feedzirra/parser/itunes_rss_owner.rb
202
192
  - lib/feedzirra/parser/rss.rb
203
193
  - lib/feedzirra/parser/rss_entry.rb
194
+ - lib/feedzirra/parser/rss_feed_burner.rb
195
+ - lib/feedzirra/parser/rss_feed_burner_entry.rb
204
196
  - lib/feedzirra/parser.rb
205
197
  - lib/feedzirra/version.rb
206
198
  - lib/feedzirra.rb
@@ -220,12 +212,15 @@ files:
220
212
  - spec/feedzirra/parser/itunes_rss_owner_spec.rb
221
213
  - spec/feedzirra/parser/itunes_rss_spec.rb
222
214
  - spec/feedzirra/parser/rss_entry_spec.rb
215
+ - spec/feedzirra/parser/rss_feed_burner_entry_spec.rb
216
+ - spec/feedzirra/parser/rss_feed_burner_spec.rb
223
217
  - spec/feedzirra/parser/rss_spec.rb
224
218
  - spec/sample_feeds/run_against_sample.rb
225
219
  - spec/spec_helper.rb
226
220
  - README.rdoc
227
221
  - Rakefile
228
222
  - .rspec
223
+ has_rdoc: true
229
224
  homepage: http://github.com/pauldix/feedzirra
230
225
  licenses: []
231
226
 
@@ -239,7 +234,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
239
234
  requirements:
240
235
  - - ">="
241
236
  - !ruby/object:Gem::Version
242
- hash: 3
243
237
  segments:
244
238
  - 0
245
239
  version: "0"
@@ -248,14 +242,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
248
242
  requirements:
249
243
  - - ">="
250
244
  - !ruby/object:Gem::Version
251
- hash: 3
252
245
  segments:
253
246
  - 0
254
247
  version: "0"
255
248
  requirements: []
256
249
 
257
250
  rubyforge_project:
258
- rubygems_version: 1.8.5
251
+ rubygems_version: 1.3.7
259
252
  signing_key:
260
253
  specification_version: 3
261
254
  summary: A feed fetching and parsing library
@@ -276,6 +269,8 @@ test_files:
276
269
  - spec/feedzirra/parser/itunes_rss_owner_spec.rb
277
270
  - spec/feedzirra/parser/itunes_rss_spec.rb
278
271
  - spec/feedzirra/parser/rss_entry_spec.rb
272
+ - spec/feedzirra/parser/rss_feed_burner_entry_spec.rb
273
+ - spec/feedzirra/parser/rss_feed_burner_spec.rb
279
274
  - spec/feedzirra/parser/rss_spec.rb
280
275
  - spec/sample_feeds/run_against_sample.rb
281
276
  - spec/spec_helper.rb