feedjira 3.2.0 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/general-issue.md +8 -0
  3. data/.rubocop.yml +32 -0
  4. data/Gemfile +0 -3
  5. data/feedjira.gemspec +6 -1
  6. data/lib/feedjira/core_ext/date.rb +1 -1
  7. data/lib/feedjira/core_ext/time.rb +1 -1
  8. data/lib/feedjira/date_time_utilities/date_time_language_parser.rb +1 -1
  9. data/lib/feedjira/feed_utilities.rb +3 -3
  10. data/lib/feedjira/parser/atom_feed_burner.rb +1 -1
  11. data/lib/feedjira/parser/atom_google_alerts_entry.rb +2 -0
  12. data/lib/feedjira/parser/atom_youtube.rb +2 -2
  13. data/lib/feedjira/parser/google_docs_atom.rb +1 -1
  14. data/lib/feedjira/parser/itunes_rss_category.rb +2 -2
  15. data/lib/feedjira/parser/podlove_chapter.rb +2 -2
  16. data/lib/feedjira/parser/rss.rb +1 -1
  17. data/lib/feedjira/parser/rss_feed_burner.rb +2 -2
  18. data/lib/feedjira/version.rb +1 -1
  19. data/lib/feedjira.rb +2 -2
  20. data/spec/feedjira/feed_spec.rb +11 -10
  21. data/spec/feedjira/{date_time_utilities_spec.rb → feed_utilities_date_time_spec.rb} +7 -7
  22. data/spec/feedjira/{feed_entry_utilities_spec.rb → feed_utilities_entry_spec.rb} +8 -8
  23. data/spec/feedjira/feed_utilities_spec.rb +35 -40
  24. data/spec/feedjira/parser/atom_entry_spec.rb +16 -16
  25. data/spec/feedjira/parser/atom_feed_burner_entry_spec.rb +10 -10
  26. data/spec/feedjira/parser/atom_feed_burner_spec.rb +26 -26
  27. data/spec/feedjira/parser/atom_google_alerts_entry_spec.rb +6 -6
  28. data/spec/feedjira/parser/atom_google_alerts_spec.rb +13 -13
  29. data/spec/feedjira/parser/atom_spec.rb +23 -23
  30. data/spec/feedjira/parser/atom_youtube_entry_spec.rb +19 -19
  31. data/spec/feedjira/parser/atom_youtube_spec.rb +13 -13
  32. data/spec/feedjira/parser/google_docs_atom_entry_spec.rb +3 -3
  33. data/spec/feedjira/parser/google_docs_atom_spec.rb +8 -8
  34. data/spec/feedjira/parser/{itunes_rss_item_spec.rb → i_tunes_rss_item_spec.rb} +18 -18
  35. data/spec/feedjira/parser/{itunes_rss_owner_spec.rb → i_tunes_rss_owner_spec.rb} +3 -3
  36. data/spec/feedjira/parser/itunes_rss_spec.rb +26 -26
  37. data/spec/feedjira/parser/json_feed_item_spec.rb +11 -11
  38. data/spec/feedjira/parser/json_feed_spec.rb +13 -13
  39. data/spec/feedjira/parser/podlove_chapter_spec.rb +7 -7
  40. data/spec/feedjira/parser/rss_entry_spec.rb +19 -19
  41. data/spec/feedjira/parser/rss_feed_burner_entry_spec.rb +15 -15
  42. data/spec/feedjira/parser/rss_feed_burner_spec.rb +17 -17
  43. data/spec/feedjira/parser/rss_spec.rb +24 -24
  44. data/spec/feedjira/preprocessor_spec.rb +3 -3
  45. data/spec/feedjira_spec.rb +41 -41
  46. metadata +69 -11
@@ -3,7 +3,7 @@
3
3
  require "spec_helper"
4
4
 
5
5
  describe Feedjira::Parser::RSSEntry do
6
- before(:each) do
6
+ before do
7
7
  # I don't really like doing it this way because these unit test should only
8
8
  # rely on RSSEntry, but this is actually how it should work. You would
9
9
  # never just pass entry xml straight to the AtomEnry
@@ -12,7 +12,7 @@ describe Feedjira::Parser::RSSEntry do
12
12
  Feedjira::Feed.add_common_feed_entry_element tag, as: :comment_rss
13
13
  end
14
14
 
15
- after(:each) do
15
+ after do
16
16
  # We change the title in one or more specs to test []=
17
17
  if @entry.title != "Nokogiri’s Slop Feature"
18
18
  feed = Feedjira::Parser::RSS.parse sample_rss_feed
@@ -20,45 +20,45 @@ describe Feedjira::Parser::RSSEntry do
20
20
  end
21
21
  end
22
22
 
23
- it "should parse the title" do
23
+ it "parses the title" do
24
24
  expect(@entry.title).to eq "Nokogiri’s Slop Feature"
25
25
  end
26
26
 
27
- it "should parse the url" do
27
+ it "parses the url" do
28
28
  expect(@entry.url).to eq "http://tenderlovemaking.com/2008/12/04/nokogiris-slop-feature/"
29
29
  end
30
30
 
31
- it "should parse the author" do
31
+ it "parses the author" do
32
32
  expect(@entry.author).to eq "Aaron Patterson"
33
33
  end
34
34
 
35
- it "should parse the content" do
35
+ it "parses the content" do
36
36
  expect(@entry.content).to eq sample_rss_entry_content
37
37
  end
38
38
 
39
- it "should provide a summary" do
39
+ it "provides a summary" do
40
40
  summary = "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  [...]"
41
41
  expect(@entry.summary).to eq summary
42
42
  end
43
43
 
44
- it "should parse the published date" do
44
+ it "parses the published date" do
45
45
  published = Time.parse_safely "Thu Dec 04 17:17:49 UTC 2008"
46
46
  expect(@entry.published).to eq published
47
47
  end
48
48
 
49
- it "should parse the categories" do
49
+ it "parses the categories" do
50
50
  expect(@entry.categories).to eq %w[computadora nokogiri rails]
51
51
  end
52
52
 
53
- it "should parse the guid as id" do
53
+ it "parses the guid as id" do
54
54
  expect(@entry.id).to eq "http://tenderlovemaking.com/?p=198"
55
55
  end
56
56
 
57
- it "should support each" do
57
+ it "supports each" do
58
58
  expect(@entry).to respond_to :each
59
59
  end
60
60
 
61
- it "should be able to list out all fields with each" do
61
+ it "is able to list out all fields with each" do
62
62
  all_fields = []
63
63
  title_value = ""
64
64
  @entry.each do |field, value|
@@ -82,37 +82,37 @@ describe Feedjira::Parser::RSSEntry do
82
82
  expect(all_fields.sort).to eq expected_fields
83
83
  end
84
84
 
85
- it "should support checking if a field exists in the entry" do
85
+ it "supports checking if a field exists in the entry" do
86
86
  expect(@entry).to include "title"
87
87
  expect(@entry).to include "author"
88
88
  end
89
89
 
90
- it "should allow access to fields with hash syntax" do
90
+ it "allows access to fields with hash syntax" do
91
91
  expect(@entry["title"]).to eq "Nokogiri’s Slop Feature"
92
92
  expect(@entry["author"]).to eq "Aaron Patterson"
93
93
  end
94
94
 
95
- it "should allow setting field values with hash syntax" do
95
+ it "allows setting field values with hash syntax" do
96
96
  @entry["title"] = "Foobar"
97
97
  expect(@entry.title).to eq "Foobar"
98
98
  end
99
99
 
100
- it "should ignore urls from guids with isPermaLink='false'" do
100
+ it "ignores urls from guids with isPermaLink='false'" do
101
101
  feed = Feedjira.parse(sample_rss_feed_permalinks)
102
102
  expect(feed.entries[0].url).to eq nil
103
103
  end
104
104
 
105
- it "should get urls from guids with isPermaLink='true'" do
105
+ it "gets urls from guids with isPermaLink='true'" do
106
106
  feed = Feedjira.parse(sample_rss_feed_permalinks)
107
107
  expect(feed.entries[1].url).to eq "http://example.com/2"
108
108
  end
109
109
 
110
- it "should get urls from guid where isPermaLink is unspecified" do
110
+ it "gets urls from guid where isPermaLink is unspecified" do
111
111
  feed = Feedjira.parse(sample_rss_feed_permalinks)
112
112
  expect(feed.entries[2].url).to eq "http://example.com/3"
113
113
  end
114
114
 
115
- it "should prefer urls from <link> when both guid and link are specified" do
115
+ it "prefers urls from <link> when both guid and link are specified" do
116
116
  feed = Feedjira.parse(sample_rss_feed_permalinks)
117
117
  expect(feed.entries[3].url).to eq "http://example.com/4"
118
118
  end
@@ -3,7 +3,7 @@
3
3
  require "spec_helper"
4
4
 
5
5
  describe Feedjira::Parser::RSSFeedBurnerEntry do
6
- before(:each) do
6
+ before do
7
7
  tag = "wfw:commentRss"
8
8
  Feedjira::Feed.add_common_feed_entry_element(tag, as: :comment_rss)
9
9
  # I don't really like doing it this way because these unit test should only
@@ -13,7 +13,7 @@ describe Feedjira::Parser::RSSFeedBurnerEntry do
13
13
  @entry = feed.entries.first
14
14
  end
15
15
 
16
- after(:each) do
16
+ after do
17
17
  # We change the title in one or more specs to test []=
18
18
  if @entry.title != "Angie’s List Sets Price Range IPO At $11 To $13 Per Share; Valued At Over $600M"
19
19
  feed = Feedjira::Parser::RSS.parse sample_rss_feed_burner_feed
@@ -21,45 +21,45 @@ describe Feedjira::Parser::RSSFeedBurnerEntry do
21
21
  end
22
22
  end
23
23
 
24
- it "should parse the title" do
24
+ it "parses the title" do
25
25
  title = "Angie’s List Sets Price Range IPO At $11 To $13 Per Share; Valued At Over $600M"
26
26
  expect(@entry.title).to eq title
27
27
  end
28
28
 
29
- it "should parse the original url" do
29
+ it "parses the original url" do
30
30
  expect(@entry.url).to eq "http://techcrunch.com/2011/11/02/angies-list-prices-ipo-at-11-to-13-per-share-valued-at-over-600m/"
31
31
  end
32
32
 
33
- it "should parse the author" do
33
+ it "parses the author" do
34
34
  expect(@entry.author).to eq "Leena Rao"
35
35
  end
36
36
 
37
- it "should parse the content" do
37
+ it "parses the content" do
38
38
  expect(@entry.content).to eq sample_rss_feed_burner_entry_content
39
39
  end
40
40
 
41
- it "should provide a summary" do
41
+ it "provides a summary" do
42
42
  expect(@entry.summary).to eq sample_rss_feed_burner_entry_description
43
43
  end
44
44
 
45
- it "should parse the published date" do
45
+ it "parses the published date" do
46
46
  published = Time.parse_safely "Wed Nov 02 17:25:27 UTC 2011"
47
47
  expect(@entry.published).to eq published
48
48
  end
49
49
 
50
- it "should parse the categories" do
50
+ it "parses the categories" do
51
51
  expect(@entry.categories).to eq ["TC", "angie\\'s list"]
52
52
  end
53
53
 
54
- it "should parse the guid as id" do
54
+ it "parses the guid as id" do
55
55
  expect(@entry.id).to eq "http://techcrunch.com/?p=446154"
56
56
  end
57
57
 
58
- it "should support each" do
58
+ it "supports each" do
59
59
  expect(@entry).to respond_to :each
60
60
  end
61
61
 
62
- it "should be able to list out all fields with each" do
62
+ it "is able to list out all fields with each" do
63
63
  all_fields = []
64
64
  title_value = ""
65
65
 
@@ -86,18 +86,18 @@ describe Feedjira::Parser::RSSFeedBurnerEntry do
86
86
  expect(all_fields.sort).to eq expected_fields
87
87
  end
88
88
 
89
- it "should support checking if a field exists in the entry" do
89
+ it "supports checking if a field exists in the entry" do
90
90
  expect(@entry).to include "author"
91
91
  expect(@entry).to include "title"
92
92
  end
93
93
 
94
- it "should allow access to fields with hash syntax" do
94
+ it "allows access to fields with hash syntax" do
95
95
  expect(@entry["author"]).to eq "Leena Rao"
96
96
  title = "Angie’s List Sets Price Range IPO At $11 To $13 Per Share; Valued At Over $600M"
97
97
  expect(@entry["title"]).to eq title
98
98
  end
99
99
 
100
- it "should allow setting field values with hash syntax" do
100
+ it "allows setting field values with hash syntax" do
101
101
  @entry["title"] = "Foobar"
102
102
  expect(@entry.title).to eq "Foobar"
103
103
  end
@@ -5,60 +5,60 @@ require "spec_helper"
5
5
  module Feedjira
6
6
  module Parser
7
7
  describe "#will_parse?" do
8
- it "should return true for a feedburner rss feed" do
8
+ it "returns true for a feedburner rss feed" do
9
9
  expect(RSSFeedBurner).to be_able_to_parse sample_rss_feed_burner_feed
10
10
  end
11
11
 
12
- it "should return false for a regular RSS feed" do
13
- expect(RSSFeedBurner).to_not be_able_to_parse sample_rss_feed
12
+ it "returns false for a regular RSS feed" do
13
+ expect(RSSFeedBurner).not_to be_able_to_parse sample_rss_feed
14
14
  end
15
15
 
16
- it "should return false for a feedburner atom feed" do
17
- expect(RSSFeedBurner).to_not be_able_to_parse sample_feedburner_atom_feed
16
+ it "returns false for a feedburner atom feed" do
17
+ expect(RSSFeedBurner).not_to be_able_to_parse sample_feedburner_atom_feed
18
18
  end
19
19
 
20
- it "should return false for an rdf feed" do
21
- expect(RSSFeedBurner).to_not be_able_to_parse sample_rdf_feed
20
+ it "returns false for an rdf feed" do
21
+ expect(RSSFeedBurner).not_to be_able_to_parse sample_rdf_feed
22
22
  end
23
23
 
24
- it "should return false for a regular atom feed" do
25
- expect(RSSFeedBurner).to_not be_able_to_parse sample_atom_feed
24
+ it "returns false for a regular atom feed" do
25
+ expect(RSSFeedBurner).not_to be_able_to_parse sample_atom_feed
26
26
  end
27
27
  end
28
28
 
29
29
  describe "parsing" do
30
- before(:each) do
30
+ before do
31
31
  @feed = RSSFeedBurner.parse(sample_rss_feed_burner_feed)
32
32
  end
33
33
 
34
- it "should parse the title" do
34
+ it "parses the title" do
35
35
  expect(@feed.title).to eq "TechCrunch"
36
36
  end
37
37
 
38
- it "should parse the description" do
38
+ it "parses the description" do
39
39
  description = "TechCrunch is a group-edited blog that profiles the companies, products and events defining and transforming the new web."
40
40
  expect(@feed.description).to eq description
41
41
  end
42
42
 
43
- it "should parse the url" do
43
+ it "parses the url" do
44
44
  expect(@feed.url).to eq "http://techcrunch.com"
45
45
  end
46
46
 
47
- it "should parse the last build date" do
47
+ it "parses the last build date" do
48
48
  expect(@feed.last_built).to eq "Wed, 02 Nov 2011 17:29:59 +0000"
49
49
  end
50
50
 
51
- it "should parse the hub urls" do
51
+ it "parses the hub urls" do
52
52
  expect(@feed.hubs.count).to eq 2
53
53
  expect(@feed.hubs.first).to eq "http://pubsubhubbub.appspot.com/"
54
54
  end
55
55
 
56
- it "should provide an accessor for the feed_url" do
56
+ it "provides an accessor for the feed_url" do
57
57
  expect(@feed).to respond_to :feed_url
58
58
  expect(@feed).to respond_to :feed_url=
59
59
  end
60
60
 
61
- it "should parse entries" do
61
+ it "parses entries" do
62
62
  expect(@feed.entries.size).to eq 20
63
63
  end
64
64
  end
@@ -4,88 +4,88 @@ require "spec_helper"
4
4
 
5
5
  describe Feedjira::Parser::RSS do
6
6
  describe "#will_parse?" do
7
- it "should return true for an RSS feed" do
8
- expect(Feedjira::Parser::RSS).to be_able_to_parse(sample_rss_feed)
7
+ it "returns true for an RSS feed" do
8
+ expect(described_class).to be_able_to_parse(sample_rss_feed)
9
9
  end
10
10
 
11
- it "should return false for an atom feed" do
12
- expect(Feedjira::Parser::RSS).to_not be_able_to_parse(sample_atom_feed)
11
+ it "returns false for an atom feed" do
12
+ expect(described_class).not_to be_able_to_parse(sample_atom_feed)
13
13
  end
14
14
 
15
- it "should return false for an rss feedburner feed" do
16
- able = Feedjira::Parser::RSS.able_to_parse? sample_rss_feed_burner_feed
15
+ it "returns false for an rss feedburner feed" do
16
+ able = described_class.able_to_parse? sample_rss_feed_burner_feed
17
17
  expect(able).to eq false
18
18
  end
19
19
  end
20
20
 
21
21
  describe "parsing" do
22
- before(:each) do
23
- @feed = Feedjira::Parser::RSS.parse(sample_rss_feed)
22
+ before do
23
+ @feed = described_class.parse(sample_rss_feed)
24
24
  end
25
25
 
26
- it "should parse the version" do
26
+ it "parses the version" do
27
27
  expect(@feed.version).to eq "2.0"
28
28
  end
29
29
 
30
- it "should parse the title" do
30
+ it "parses the title" do
31
31
  expect(@feed.title).to eq "Tender Lovemaking"
32
32
  end
33
33
 
34
- it "should parse the description" do
34
+ it "parses the description" do
35
35
  expect(@feed.description).to eq "The act of making love, tenderly."
36
36
  end
37
37
 
38
- it "should parse the url" do
38
+ it "parses the url" do
39
39
  expect(@feed.url).to eq "http://tenderlovemaking.com"
40
40
  end
41
41
 
42
- it "should parse the ttl" do
42
+ it "parses the ttl" do
43
43
  expect(@feed.ttl).to eq "60"
44
44
  end
45
45
 
46
- it "should parse the last build date" do
46
+ it "parses the last build date" do
47
47
  expect(@feed.last_built).to eq "Sat, 07 Sep 2002 09:42:31 GMT"
48
48
  end
49
49
 
50
- it "should parse the hub urls" do
50
+ it "parses the hub urls" do
51
51
  expect(@feed.hubs.count).to eq 1
52
52
  expect(@feed.hubs.first).to eq "http://pubsubhubbub.appspot.com/"
53
53
  end
54
54
 
55
- it "should provide an accessor for the feed_url" do
55
+ it "provides an accessor for the feed_url" do
56
56
  expect(@feed).to respond_to :feed_url
57
57
  expect(@feed).to respond_to :feed_url=
58
58
  end
59
59
 
60
- it "should parse the language" do
60
+ it "parses the language" do
61
61
  expect(@feed.language).to eq "en"
62
62
  end
63
63
 
64
- it "should parse the image url" do
64
+ it "parses the image url" do
65
65
  expect(@feed.image.url).to eq "https://tenderlovemaking.com/images/header-logo-text-trimmed.png"
66
66
  end
67
67
 
68
- it "should parse the image title" do
68
+ it "parses the image title" do
69
69
  expect(@feed.image.title).to eq "Tender Lovemaking"
70
70
  end
71
71
 
72
- it "should parse the image link" do
72
+ it "parses the image link" do
73
73
  expect(@feed.image.link).to eq "http://tenderlovemaking.com"
74
74
  end
75
75
 
76
- it "should parse the image width" do
76
+ it "parses the image width" do
77
77
  expect(@feed.image.width).to eq "766"
78
78
  end
79
79
 
80
- it "should parse the image height" do
80
+ it "parses the image height" do
81
81
  expect(@feed.image.height).to eq "138"
82
82
  end
83
83
 
84
- it "should parse the image description" do
84
+ it "parses the image description" do
85
85
  expect(@feed.image.description).to eq "The act of making love, tenderly."
86
86
  end
87
87
 
88
- it "should parse entries" do
88
+ it "parses entries" do
89
89
  expect(@feed.entries.size).to eq 10
90
90
  end
91
91
  end
@@ -6,14 +6,14 @@ describe Feedjira::Preprocessor do
6
6
  it "returns the xml as parsed by Nokogiri" do
7
7
  xml = "<xml></xml>"
8
8
  doc = Nokogiri::XML(xml).remove_namespaces!
9
- processor = Feedjira::Preprocessor.new xml
9
+ processor = described_class.new xml
10
10
  escaped = processor.to_xml
11
11
 
12
12
  expect(escaped).to eq doc.to_xml
13
13
  end
14
14
 
15
15
  it "escapes markup in xhtml content" do
16
- processor = Feedjira::Preprocessor.new sample_atom_xhtml_feed
16
+ processor = described_class.new sample_atom_xhtml_feed
17
17
  escaped = processor.to_xml
18
18
  escaped_parts = escaped.split "\n"
19
19
 
@@ -23,7 +23,7 @@ describe Feedjira::Preprocessor do
23
23
  end
24
24
 
25
25
  it "leaves escaped html within pre tag" do
26
- processor = Feedjira::Preprocessor.new(sample_atom_xhtml_with_escpaed_html_in_pre_tag_feed)
26
+ processor = described_class.new(sample_atom_xhtml_with_escpaed_html_in_pre_tag_feed)
27
27
  escaped = processor.to_xml
28
28
  expected_pre_tag = " &lt;pre&gt;&amp;lt;b&amp;gt;test&amp;lt;b&amp;gt;&lt;/pre&gt;"
29
29
  expect(escaped.split("\n")[7]).to eq(expected_pre_tag)
@@ -4,10 +4,10 @@ require "spec_helper"
4
4
 
5
5
  RSpec.describe Feedjira do
6
6
  describe ".parse" do
7
- context "allows the parser to be specified" do
8
- it "should parse an rss feed" do
9
- parser = Feedjira.parser_for_xml(sample_rss_feed)
10
- feed = Feedjira.parse(sample_rss_feed, parser: parser)
7
+ context "when the parser is specified" do
8
+ it "parses an rss feed" do
9
+ parser = described_class.parser_for_xml(sample_rss_feed)
10
+ feed = described_class.parse(sample_rss_feed, parser: parser)
11
11
 
12
12
  expect(feed.title).to eq "Tender Lovemaking"
13
13
  published = Time.parse_safely "Thu Dec 04 17:17:49 UTC 2008"
@@ -17,40 +17,40 @@ RSpec.describe Feedjira do
17
17
  end
18
18
 
19
19
  context "when there's an available parser" do
20
- it "should parse an rdf feed" do
21
- feed = Feedjira.parse(sample_rdf_feed)
20
+ it "parses an rdf feed" do
21
+ feed = described_class.parse(sample_rdf_feed)
22
22
  expect(feed.title).to eq "HREF Considered Harmful"
23
23
  published = Time.parse_safely("Tue Sep 02 19:50:07 UTC 2008")
24
24
  expect(feed.entries.first.published).to eq published
25
25
  expect(feed.entries.size).to eq 10
26
26
  end
27
27
 
28
- it "should parse an rss feed" do
29
- feed = Feedjira.parse(sample_rss_feed)
28
+ it "parses an rss feed" do
29
+ feed = described_class.parse(sample_rss_feed)
30
30
  expect(feed.title).to eq "Tender Lovemaking"
31
31
  published = Time.parse_safely "Thu Dec 04 17:17:49 UTC 2008"
32
32
  expect(feed.entries.first.published).to eq published
33
33
  expect(feed.entries.size).to eq 10
34
34
  end
35
35
 
36
- it "should parse an atom feed" do
37
- feed = Feedjira.parse(sample_atom_feed)
36
+ it "parses an atom feed" do
37
+ feed = described_class.parse(sample_atom_feed)
38
38
  expect(feed.title).to eq "Amazon Web Services Blog"
39
39
  published = Time.parse_safely "Fri Jan 16 18:21:00 UTC 2009"
40
40
  expect(feed.entries.first.published).to eq published
41
41
  expect(feed.entries.size).to eq 10
42
42
  end
43
43
 
44
- it "should parse an feedburner atom feed" do
45
- feed = Feedjira.parse(sample_feedburner_atom_feed)
44
+ it "parses an feedburner atom feed" do
45
+ feed = described_class.parse(sample_feedburner_atom_feed)
46
46
  expect(feed.title).to eq "Paul Dix Explains Nothing"
47
47
  published = Time.parse_safely "Thu Jan 22 15:50:22 UTC 2009"
48
48
  expect(feed.entries.first.published).to eq published
49
49
  expect(feed.entries.size).to eq 5
50
50
  end
51
51
 
52
- it "should parse an itunes feed" do
53
- feed = Feedjira.parse(sample_itunes_feed)
52
+ it "parses an itunes feed" do
53
+ feed = described_class.parse(sample_itunes_feed)
54
54
  expect(feed.title).to eq "All About Everything"
55
55
  published = Time.parse_safely "Wed, 15 Jun 2005 19:00:00 GMT"
56
56
  expect(feed.entries.first.published).to eq published
@@ -58,7 +58,7 @@ RSpec.describe Feedjira do
58
58
  end
59
59
 
60
60
  it "with nested dc:identifier it does not overwrite entry_id" do
61
- feed = Feedjira.parse(sample_rss_feed_huffpost_ca)
61
+ feed = described_class.parse(sample_rss_feed_huffpost_ca)
62
62
  expect(feed.title.strip).to eq "HuffPost Canada - Athena2 - All Posts"
63
63
  expect(feed.entries.size).to eq 2
64
64
  expect(feed.entries.first.id).to eq "23246627"
@@ -66,9 +66,9 @@ RSpec.describe Feedjira do
66
66
  end
67
67
 
68
68
  it "does not fail if multiple published dates exist and some are unparseable" do
69
- expect(Feedjira.logger).to receive(:warn).twice
69
+ expect(described_class.logger).to receive(:warn).twice
70
70
 
71
- feed = Feedjira.parse(sample_invalid_date_format_feed)
71
+ feed = described_class.parse(sample_invalid_date_format_feed)
72
72
  expect(feed.title).to eq "Invalid date format feed"
73
73
  published = Time.parse_safely "Mon, 16 Oct 2017 15:10:00 GMT"
74
74
  expect(feed.entries.first.published).to eq published
@@ -77,23 +77,23 @@ RSpec.describe Feedjira do
77
77
  end
78
78
 
79
79
  context "when there's no available parser" do
80
- it "raises Feedjira::NoParserAvailable" do
80
+ it "raises described_class::NoParserAvailable" do
81
81
  expect do
82
- Feedjira.parse("I'm an invalid feed")
83
- end.to raise_error(Feedjira::NoParserAvailable)
82
+ described_class.parse("I'm an invalid feed")
83
+ end.to raise_error(described_class::NoParserAvailable)
84
84
  end
85
85
  end
86
86
 
87
- it "should parse an feedburner rss feed" do
88
- feed = Feedjira.parse(sample_rss_feed_burner_feed)
87
+ it "parses an feedburner rss feed" do
88
+ feed = described_class.parse(sample_rss_feed_burner_feed)
89
89
  expect(feed.title).to eq "TechCrunch"
90
90
  published = Time.parse_safely "Wed Nov 02 17:25:27 UTC 2011"
91
91
  expect(feed.entries.first.published).to eq published
92
92
  expect(feed.entries.size).to eq 20
93
93
  end
94
94
 
95
- it "should parse an RSS feed with an a10 namespace" do
96
- feed = Feedjira.parse(sample_rss_feed_with_a10_namespace)
95
+ it "parses an RSS feed with an a10 namespace" do
96
+ feed = described_class.parse(sample_rss_feed_with_a10_namespace)
97
97
  expect(feed.url).to eq "http://www.example.com/"
98
98
  expect(feed.entries.first.url).to eq "http://www.example.com/5"
99
99
  expect(feed.entries.first.updated).to eq Time.parse_safely("2020-05-14T10:00:18Z")
@@ -105,44 +105,44 @@ RSpec.describe Feedjira do
105
105
  describe ".parser_for_xml" do
106
106
  it "with Google Docs atom feed it returns the GoogleDocsAtom parser" do
107
107
  xml = sample_google_docs_list_feed
108
- actual_parser = Feedjira.parser_for_xml(xml)
109
- expect(actual_parser).to eq Feedjira::Parser::GoogleDocsAtom
108
+ actual_parser = described_class.parser_for_xml(xml)
109
+ expect(actual_parser).to eq described_class::Parser::GoogleDocsAtom
110
110
  end
111
111
 
112
112
  it "with an atom feed it returns the Atom parser" do
113
113
  xml = sample_atom_feed
114
- actual_parser = Feedjira.parser_for_xml(xml)
115
- expect(actual_parser).to eq Feedjira::Parser::Atom
114
+ actual_parser = described_class.parser_for_xml(xml)
115
+ expect(actual_parser).to eq described_class::Parser::Atom
116
116
  end
117
117
 
118
118
  it "with an atom feedburner feed it returns the AtomFeedBurner parser" do
119
119
  xml = sample_feedburner_atom_feed
120
- actual_parser = Feedjira.parser_for_xml(xml)
121
- expect(actual_parser).to eq Feedjira::Parser::AtomFeedBurner
120
+ actual_parser = described_class.parser_for_xml(xml)
121
+ expect(actual_parser).to eq described_class::Parser::AtomFeedBurner
122
122
  end
123
123
 
124
124
  it "with an rdf feed it returns the RSS parser" do
125
125
  xml = sample_rdf_feed
126
- actual_parser = Feedjira.parser_for_xml(xml)
127
- expect(actual_parser).to eq Feedjira::Parser::RSS
126
+ actual_parser = described_class.parser_for_xml(xml)
127
+ expect(actual_parser).to eq described_class::Parser::RSS
128
128
  end
129
129
 
130
130
  it "with an rss feedburner feed it returns the RSSFeedBurner parser" do
131
131
  xml = sample_rss_feed_burner_feed
132
- actual_parser = Feedjira.parser_for_xml(xml)
133
- expect(actual_parser).to eq Feedjira::Parser::RSSFeedBurner
132
+ actual_parser = described_class.parser_for_xml(xml)
133
+ expect(actual_parser).to eq described_class::Parser::RSSFeedBurner
134
134
  end
135
135
 
136
136
  it "with an rss 2.0 feed it returns the RSS parser" do
137
137
  xml = sample_rss_feed
138
- actual_parser = Feedjira.parser_for_xml(xml)
139
- expect(actual_parser).to eq Feedjira::Parser::RSS
138
+ actual_parser = described_class.parser_for_xml(xml)
139
+ expect(actual_parser).to eq described_class::Parser::RSS
140
140
  end
141
141
 
142
142
  it "with an itunes feed it returns the RSS parser" do
143
143
  xml = sample_itunes_feed
144
- actual_parser = Feedjira.parser_for_xml(xml)
145
- expect(actual_parser).to eq Feedjira::Parser::ITunesRSS
144
+ actual_parser = described_class.parser_for_xml(xml)
145
+ expect(actual_parser).to eq described_class::Parser::ITunesRSS
146
146
  end
147
147
 
148
148
  context "when parsers are configured" do
@@ -154,12 +154,12 @@ RSpec.describe Feedjira do
154
154
  end
155
155
  end
156
156
 
157
- Feedjira.configure { |config| config.parsers = [new_parser] }
157
+ described_class.configure { |config| config.parsers = [new_parser] }
158
158
 
159
- parser = Feedjira.parser_for_xml(xml)
159
+ parser = described_class.parser_for_xml(xml)
160
160
  expect(parser).to eq(new_parser)
161
161
 
162
- Feedjira.reset_configuration!
162
+ described_class.reset_configuration!
163
163
  end
164
164
  end
165
165
  end