feedjira 4.0.1 → 4.0.2
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +5 -5
- data/lib/feedjira/parser/atom_google_alerts.rb +1 -1
- data/lib/feedjira/parser/itunes_rss.rb +2 -1
- data/lib/feedjira/version.rb +1 -1
- data/lib/feedjira.rb +2 -1
- data/spec/feedjira/parser/itunes_rss_spec.rb +4 -0
- data/spec/feedjira_spec.rb +6 -0
- data/spec/sample_feeds/AtomWithITunesInCDATA.xml +17 -0
- data/spec/sample_feeds.rb +2 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cb65081b36daffe6b574820cdfba4b0e444854e8e72b3b6f6f82f2efc80befd2
|
|
4
|
+
data.tar.gz: 14d58fb668a54606e0b03e0f8f9a6748681a562902955120937f0cb6cd62c0b7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 39be37b94a2c07856bee078fa641015ce78c19336797dbf1403d731db27b6c2ab44ad834e2b691c63b9d473462e1794b228e949e7b87d7647a04c198ab514274
|
|
7
|
+
data.tar.gz: 0c9237598fd8d7cea5be2201169925d30983298b02612d2812fd1ab196337be4b5a5054eb5f58430b8a4f3bfe6465f4a8018064539bcb93779d12802d9371248
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
|
@@ -4,13 +4,13 @@ source "https://rubygems.org/"
|
|
|
4
4
|
|
|
5
5
|
gemspec
|
|
6
6
|
|
|
7
|
-
gem "faraday", "~> 2.
|
|
8
|
-
gem "pry", "~> 0.
|
|
7
|
+
gem "faraday", "~> 2.14.0"
|
|
8
|
+
gem "pry", "~> 0.16.0"
|
|
9
9
|
gem "rspec", "~> 3.13.0"
|
|
10
|
-
gem "rubocop", "~> 1.
|
|
11
|
-
gem "rubocop-performance", "~> 1.
|
|
10
|
+
gem "rubocop", "~> 1.86.0"
|
|
11
|
+
gem "rubocop-performance", "~> 1.26.0"
|
|
12
12
|
gem "rubocop-rake", "~> 0.7.1"
|
|
13
|
-
gem "rubocop-rspec", "~> 3.
|
|
13
|
+
gem "rubocop-rspec", "~> 3.9.0"
|
|
14
14
|
gem "simplecov", "~> 0.22.0"
|
|
15
15
|
gem "yard", "~> 0.9.34"
|
|
16
16
|
|
|
@@ -15,7 +15,7 @@ module Feedjira
|
|
|
15
15
|
elements :entry, as: :entries, class: AtomGoogleAlertsEntry
|
|
16
16
|
|
|
17
17
|
def self.able_to_parse?(xml)
|
|
18
|
-
Atom.able_to_parse?(xml) && (%r{<id>tag:google\.com,2005:[^<]+/com\.google/alerts/} === xml)
|
|
18
|
+
Atom.able_to_parse?(xml) && (%r{<id>tag:google\.com,2005:[^<]+/com\.google/alerts/} === xml)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def self.preprocess(xml)
|
|
@@ -63,7 +63,8 @@ module Feedjira
|
|
|
63
63
|
elements :item, as: :entries, class: ITunesRSSItem
|
|
64
64
|
|
|
65
65
|
def self.able_to_parse?(xml)
|
|
66
|
-
|
|
66
|
+
xml_without_cdata = xml.gsub(/<!\[CDATA\[.*?\]\]>/m, "")
|
|
67
|
+
%r{xmlns:itunes\s?=\s?["']http://www\.itunes\.com/dtds/podcast-1\.0\.dtd["']}i =~ xml_without_cdata
|
|
67
68
|
end
|
|
68
69
|
end
|
|
69
70
|
end
|
data/lib/feedjira/version.rb
CHANGED
data/lib/feedjira.rb
CHANGED
|
@@ -24,6 +24,10 @@ module Feedjira
|
|
|
24
24
|
it "returns false for an rss feedburner feed" do
|
|
25
25
|
expect(ITunesRSS).not_to be_able_to_parse(sample_rss_feed_burner_feed)
|
|
26
26
|
end
|
|
27
|
+
|
|
28
|
+
it "returns false for an atom feed with xmlns:itunes inside CDATA" do
|
|
29
|
+
expect(ITunesRSS).not_to be_able_to_parse(sample_atom_with_itunes_in_cdata)
|
|
30
|
+
end
|
|
27
31
|
end
|
|
28
32
|
|
|
29
33
|
describe "parsing" do
|
data/spec/feedjira_spec.rb
CHANGED
|
@@ -155,6 +155,12 @@ RSpec.describe Feedjira do
|
|
|
155
155
|
expect(actual_parser).to eq described_class::Parser::ITunesRSS
|
|
156
156
|
end
|
|
157
157
|
|
|
158
|
+
it "with an atom feed containing xmlns:itunes in CDATA it returns the Atom parser" do
|
|
159
|
+
xml = sample_atom_with_itunes_in_cdata
|
|
160
|
+
actual_parser = described_class.parser_for_xml(xml)
|
|
161
|
+
expect(actual_parser).to eq described_class::Parser::Atom
|
|
162
|
+
end
|
|
163
|
+
|
|
158
164
|
context "when parsers are configured" do
|
|
159
165
|
it "does not use default parsers" do
|
|
160
166
|
xml = "Atom asdf"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
|
2
|
+
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
3
|
+
<title>Test Blog</title>
|
|
4
|
+
<link rel="alternate" href="https://example.com/" />
|
|
5
|
+
<id>tag:example.com,2024:blog</id>
|
|
6
|
+
<updated>2024-01-01T00:00:00Z</updated>
|
|
7
|
+
<entry>
|
|
8
|
+
<title>How to set up a podcast RSS feed</title>
|
|
9
|
+
<link href="https://example.com/post/1" />
|
|
10
|
+
<id>tag:example.com,2024:post-1</id>
|
|
11
|
+
<published>2024-01-01T00:00:00Z</published>
|
|
12
|
+
<content type="html"><![CDATA[
|
|
13
|
+
<p>Here is an example RSS feed:</p>
|
|
14
|
+
<pre><code><rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"></code></pre>
|
|
15
|
+
]]></content>
|
|
16
|
+
</entry>
|
|
17
|
+
</feed>
|
data/spec/sample_feeds.rb
CHANGED
|
@@ -37,7 +37,8 @@ module SampleFeeds
|
|
|
37
37
|
sample_invalid_date_format_feed: "InvalidDateFormat.xml",
|
|
38
38
|
sample_rss_feed_permalinks: "Permalinks.xml",
|
|
39
39
|
sample_rss_feed_with_a10_namespace: "a10.xml",
|
|
40
|
-
sample_rss_feed_with_comments: "RSSWithComments.xml"
|
|
40
|
+
sample_rss_feed_with_comments: "RSSWithComments.xml",
|
|
41
|
+
sample_atom_with_itunes_in_cdata: "AtomWithITunesInCDATA.xml"
|
|
41
42
|
}.freeze
|
|
42
43
|
|
|
43
44
|
FEEDS.each do |method, filename|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: feedjira
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.
|
|
4
|
+
version: 4.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam Hess
|
|
@@ -164,6 +164,7 @@ files:
|
|
|
164
164
|
- spec/sample_feeds/AmazonWebServicesBlogFirstEntryContent.xml
|
|
165
165
|
- spec/sample_feeds/AtomEscapedHTMLInPreTag.xml
|
|
166
166
|
- spec/sample_feeds/AtomFeedWithSpacesAroundEquals.xml
|
|
167
|
+
- spec/sample_feeds/AtomWithITunesInCDATA.xml
|
|
167
168
|
- spec/sample_feeds/CRE.xml
|
|
168
169
|
- spec/sample_feeds/DuplicateContentAtomFeed.xml
|
|
169
170
|
- spec/sample_feeds/FeedBurnerUrlNoAlternate.xml
|
|
@@ -226,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
226
227
|
- !ruby/object:Gem::Version
|
|
227
228
|
version: '0'
|
|
228
229
|
requirements: []
|
|
229
|
-
rubygems_version:
|
|
230
|
+
rubygems_version: 4.0.10
|
|
230
231
|
specification_version: 4
|
|
231
232
|
summary: A feed parsing library
|
|
232
233
|
test_files: []
|