feedjira 3.2.1 → 3.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +1 -1
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +13 -0
- data/README.md +1 -2
- data/feedjira.gemspec +1 -2
- data/lib/feedjira/core_ext/date.rb +3 -2
- data/lib/feedjira/rss_entry_utilities.rb +5 -1
- data/lib/feedjira/version.rb +1 -1
- data/spec/feedjira/feed_utilities_date_time_spec.rb +1 -1
- data/spec/feedjira/feed_utilities_entry_spec.rb +1 -1
- data/spec/feedjira/feed_utilities_spec.rb +2 -2
- data/spec/feedjira/parser/json_feed_spec.rb +1 -1
- data/spec/feedjira/parser/rss_entry_spec.rb +7 -1
- data/spec/feedjira/parser/rss_feed_burner_entry_spec.rb +1 -0
- data/spec/feedjira/parser/rss_spec.rb +1 -1
- data/spec/sample_feeds/RSSWithComments.xml +277 -0
- data/spec/sample_feeds.rb +2 -1
- metadata +6 -73
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5169a51338551c1253b148e944e9b63cff818f85ba5eeafd2c3239ea007b5012
|
4
|
+
data.tar.gz: c9966b308d0f57873c56b474cdbdc7a1a96ee6dd64d5a0ca56f30c333ada9298
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad3fc7290af22ec75dbba64b2397ad3e8e6f283f73c3c793eaf9b33d28410dcaa6439618c47d741858a732df7478cbcb21f987314880ef5acd108224cc6fa7a2
|
7
|
+
data.tar.gz: 20422cf9fdf53491356726c29b118ce6e1b3b37c0ef7294f1c01bcaf00df72097ae6afd1a88191ca765217fe7a159996247de4837a14a1716d33ad8024f7f784
|
data/.github/workflows/ruby.yml
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# Feedjira Changelog
|
2
2
|
|
3
|
+
## 3.2.2
|
4
|
+
|
5
|
+
* Fix time handling again usec is not a timezone
|
6
|
+
|
7
|
+
* Update rubocop * drop official support for eol Ruby
|
8
|
+
|
9
|
+
|
10
|
+
## 3.2.1
|
11
|
+
|
12
|
+
* Fix time handling in ruby 3.1
|
13
|
+
|
14
|
+
* Atom feeds now have an icon field via https://github.com/feedjira/feedjira/pull/452 (@jswanner)
|
15
|
+
|
3
16
|
## 3.2.0
|
4
17
|
|
5
18
|
* Atom `feed_url` no longer falls back to `url` via https://github.com/feedjira/feedjira/pull/451 (@frederfred)
|
data/README.md
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
# Feedjira
|
2
2
|
|
3
|
-
[![Build Status][travis-badge]][travis] [![Code Climate][code-climate-badge]][code-climate]
|
3
|
+
[![Build Status][travis-badge]][travis] [![Code Climate][code-climate-badge]][code-climate]
|
4
4
|
|
5
5
|
[travis-badge]: https://travis-ci.org/feedjira/feedjira.svg?branch=master
|
6
6
|
[travis]: http://travis-ci.org/feedjira/feedjira
|
7
7
|
[code-climate-badge]: https://codeclimate.com/github/feedjira/feedjira/badges/gpa.svg
|
8
8
|
[code-climate]: https://codeclimate.com/github/feedjira/feedjira
|
9
9
|
[gitter-badge]: https://badges.gitter.im/feedjira/feedjira.svg
|
10
|
-
[gitter]: https://gitter.im/feedjira/feedjira?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge
|
11
10
|
|
12
11
|
Feedjira is a Ruby library designed to parse feeds.
|
13
12
|
|
data/feedjira.gemspec
CHANGED
@@ -28,9 +28,8 @@ Gem::Specification.new do |s|
|
|
28
28
|
|
29
29
|
s.files = `git ls-files`.split("\n")
|
30
30
|
s.require_paths = ["lib"]
|
31
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
32
31
|
|
33
|
-
s.required_ruby_version = ">=2.
|
32
|
+
s.required_ruby_version = ">=2.7"
|
34
33
|
|
35
34
|
s.add_dependency "loofah", ">= 2.3.1"
|
36
35
|
s.add_dependency "sax-machine", ">= 1.0"
|
@@ -16,7 +16,8 @@ class Date
|
|
16
16
|
private
|
17
17
|
|
18
18
|
def feed_utils_to_time(dest, method)
|
19
|
-
|
20
|
-
|
19
|
+
# Convert a fraction of a day to a number of microseconds
|
20
|
+
usec = (dest.sec_fraction * (10**6)).to_i
|
21
|
+
Time.send(method, dest.year, dest.month, dest.day, dest.hour, dest.min, dest.sec, usec)
|
21
22
|
end
|
22
23
|
end
|
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
module Feedjira
|
4
4
|
module RSSEntryUtilities
|
5
|
-
|
5
|
+
# rubocop:todo Metrics/MethodLength
|
6
|
+
def self.included(mod) # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
|
6
7
|
mod.class_exec do
|
7
8
|
element :title
|
8
9
|
|
@@ -34,9 +35,12 @@ module Feedjira
|
|
34
35
|
element :"media:content", as: :image, value: :url
|
35
36
|
element :enclosure, as: :image, value: :url
|
36
37
|
|
38
|
+
element :comments
|
39
|
+
|
37
40
|
elements :category, as: :categories
|
38
41
|
end
|
39
42
|
end
|
43
|
+
# rubocop:enable Metrics/MethodLength
|
40
44
|
|
41
45
|
def entry_id
|
42
46
|
@entry_id&.guid
|
data/lib/feedjira/version.rb
CHANGED
@@ -19,7 +19,7 @@ describe Feedjira::FeedUtilities do
|
|
19
19
|
it "parses a ISO 8601 with milliseconds into Time" do
|
20
20
|
time = @klass.new.parse_datetime("2013-09-17T08:20:13.931-04:00")
|
21
21
|
expect(time.class).to eq Time
|
22
|
-
expect(time).to eq Time.
|
22
|
+
expect(time).to eq Time.strptime("Tue Sep 17 12:20:13.931 UTC 2013", "%a %b %d %H:%M:%S.%N %Z %Y")
|
23
23
|
end
|
24
24
|
|
25
25
|
it "parses a US Format into Time" do
|
@@ -19,7 +19,7 @@ describe Feedjira::FeedUtilities do
|
|
19
19
|
it "parses a ISO 8601 with milliseconds into Time" do
|
20
20
|
time = @klass.new.parse_datetime("2013-09-17T08:20:13.931-04:00")
|
21
21
|
expect(time.class).to eq Time
|
22
|
-
expect(time).to eq Time.
|
22
|
+
expect(time).to eq Time.strptime("Tue Sep 17 12:20:13.931 UTC 2013", "%a %b %d %H:%M:%S.%N %Z %Y")
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -20,7 +20,7 @@ describe Feedjira::FeedUtilities do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
context "when the flag is set" do
|
23
|
-
it "calls the preprocessing method" do
|
23
|
+
it "calls the preprocessing method" do # rubocop:todo RSpec/NoExpectationExample
|
24
24
|
@klass.preprocess_xml = true
|
25
25
|
allow(@klass).to receive(:preprocess).and_return sample_rss_feed
|
26
26
|
@klass.parse sample_rss_feed
|
@@ -78,7 +78,7 @@ describe Feedjira::FeedUtilities do
|
|
78
78
|
it "returns new_entries? as true when entries are put into new_entries" do
|
79
79
|
feed = @klass.new
|
80
80
|
feed.new_entries << :foo
|
81
|
-
expect(feed.new_entries?).to
|
81
|
+
expect(feed.new_entries?).to be true
|
82
82
|
end
|
83
83
|
|
84
84
|
it "returns a last_modified value from the entry with the most recent published date if the last_modified date hasn't been set" do
|
@@ -72,6 +72,7 @@ describe Feedjira::Parser::RSSEntry do
|
|
72
72
|
author
|
73
73
|
categories
|
74
74
|
comment_rss
|
75
|
+
comments
|
75
76
|
content
|
76
77
|
entry_id
|
77
78
|
published
|
@@ -99,7 +100,7 @@ describe Feedjira::Parser::RSSEntry do
|
|
99
100
|
|
100
101
|
it "ignores urls from guids with isPermaLink='false'" do
|
101
102
|
feed = Feedjira.parse(sample_rss_feed_permalinks)
|
102
|
-
expect(feed.entries[0].url).to
|
103
|
+
expect(feed.entries[0].url).to be_nil
|
103
104
|
end
|
104
105
|
|
105
106
|
it "gets urls from guids with isPermaLink='true'" do
|
@@ -116,4 +117,9 @@ describe Feedjira::Parser::RSSEntry do
|
|
116
117
|
feed = Feedjira.parse(sample_rss_feed_permalinks)
|
117
118
|
expect(feed.entries[3].url).to eq "http://example.com/4"
|
118
119
|
end
|
120
|
+
|
121
|
+
it "exposes comments URL" do
|
122
|
+
feed = Feedjira.parse(sample_rss_feed_with_comments)
|
123
|
+
expect(feed.entries[0].comments).to eq "https://news.ycombinator.com/item?id=30937433"
|
124
|
+
end
|
119
125
|
end
|
@@ -0,0 +1,277 @@
|
|
1
|
+
<rss version="2.0">
|
2
|
+
<channel>
|
3
|
+
<title>Hacker News</title>
|
4
|
+
<link>https://news.ycombinator.com/</link>
|
5
|
+
<description>Links for the intellectually curious, ranked by readers.</description>
|
6
|
+
<item>
|
7
|
+
<title>AWS Lambda Function URLs: Built-In HTTPS Endpoints for Lambda</title>
|
8
|
+
<link>https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/</link>
|
9
|
+
<pubDate>Wed, 6 Apr 2022 21:07:47 +0000</pubDate>
|
10
|
+
<comments>https://news.ycombinator.com/item?id=30937433</comments>
|
11
|
+
<description>
|
12
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30937433">Comments</a>]]>
|
13
|
+
</description>
|
14
|
+
</item>
|
15
|
+
<item>
|
16
|
+
<title>Dall-E 2</title>
|
17
|
+
<link>https://openai.com/dall-e-2/</link>
|
18
|
+
<pubDate>Wed, 6 Apr 2022 14:09:04 +0000</pubDate>
|
19
|
+
<comments>https://news.ycombinator.com/item?id=30932095</comments>
|
20
|
+
<description>
|
21
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30932095">Comments</a>]]>
|
22
|
+
</description>
|
23
|
+
</item>
|
24
|
+
<item>
|
25
|
+
<title>Twitter Bluesky: A Self-Authenticating Social Protocol</title>
|
26
|
+
<link>https://blueskyweb.xyz/blog/3-6-2022-a-self-authenticating-social-protocol</link>
|
27
|
+
<pubDate>Wed, 6 Apr 2022 21:23:54 +0000</pubDate>
|
28
|
+
<comments>https://news.ycombinator.com/item?id=30937578</comments>
|
29
|
+
<description>
|
30
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30937578">Comments</a>]]>
|
31
|
+
</description>
|
32
|
+
</item>
|
33
|
+
<item>
|
34
|
+
<title>The existence of true one-way functions depends on Kolmogorov complexity</title>
|
35
|
+
<link>https://www.quantamagazine.org/researchers-identify-master-problem-underlying-all-cryptography-20220406/</link>
|
36
|
+
<pubDate>Wed, 6 Apr 2022 17:01:46 +0000</pubDate>
|
37
|
+
<comments>https://news.ycombinator.com/item?id=30934721</comments>
|
38
|
+
<description>
|
39
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30934721">Comments</a>]]>
|
40
|
+
</description>
|
41
|
+
</item>
|
42
|
+
<item>
|
43
|
+
<title>You can do a lot with an empty file</title>
|
44
|
+
<link>https://rachelbythebay.com/w/2022/04/06/text/</link>
|
45
|
+
<pubDate>Wed, 6 Apr 2022 19:16:37 +0000</pubDate>
|
46
|
+
<comments>https://news.ycombinator.com/item?id=30936333</comments>
|
47
|
+
<description>
|
48
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30936333">Comments</a>]]>
|
49
|
+
</description>
|
50
|
+
</item>
|
51
|
+
<item>
|
52
|
+
<title>λ-2D: An exploration of drawing as programming language</title>
|
53
|
+
<link>https://www.media.mit.edu/projects/2d-an-exploration-of-drawing-as-programming-language-featuring-ideas-from-lambda-calculus/overview/</link>
|
54
|
+
<pubDate>Wed, 6 Apr 2022 14:44:41 +0000</pubDate>
|
55
|
+
<comments>https://news.ycombinator.com/item?id=30932552</comments>
|
56
|
+
<description>
|
57
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30932552">Comments</a>]]>
|
58
|
+
</description>
|
59
|
+
</item>
|
60
|
+
<item>
|
61
|
+
<title>Your competitor wrote the RFP you're bidding on</title>
|
62
|
+
<link>https://www.sofuckingagile.com/blog/your-competitor-wrote-the-rfp-you-are-bidding-on</link>
|
63
|
+
<pubDate>Wed, 6 Apr 2022 14:48:40 +0000</pubDate>
|
64
|
+
<comments>https://news.ycombinator.com/item?id=30932596</comments>
|
65
|
+
<description>
|
66
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30932596">Comments</a>]]>
|
67
|
+
</description>
|
68
|
+
</item>
|
69
|
+
<item>
|
70
|
+
<title>Inside London's first Ketamine therapy clinic</title>
|
71
|
+
<link>https://www.leafie.co.uk/articles/inside-londons-first-ketamine-therapy-clinic/</link>
|
72
|
+
<pubDate>Wed, 6 Apr 2022 22:08:36 +0000</pubDate>
|
73
|
+
<comments>https://news.ycombinator.com/item?id=30938074</comments>
|
74
|
+
<description>
|
75
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30938074">Comments</a>]]>
|
76
|
+
</description>
|
77
|
+
</item>
|
78
|
+
<item>
|
79
|
+
<title>Smarking (YC W15) is hiring staff and engineers to digitize the parking industry</title>
|
80
|
+
<link>https://jobs.lever.co/smarking/01b7a4c5-28ce-4a4c-9c88-d4cad6c01c76</link>
|
81
|
+
<pubDate>Wed, 6 Apr 2022 21:00:55 +0000</pubDate>
|
82
|
+
<comments>https://news.ycombinator.com/item?id=30937371</comments>
|
83
|
+
<description>
|
84
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30937371">Comments</a>]]>
|
85
|
+
</description>
|
86
|
+
</item>
|
87
|
+
<item>
|
88
|
+
<title>Ask HN: Share your personal site</title>
|
89
|
+
<link>https://news.ycombinator.com/item?id=30934529</link>
|
90
|
+
<pubDate>Wed, 6 Apr 2022 16:48:33 +0000</pubDate>
|
91
|
+
<comments>https://news.ycombinator.com/item?id=30934529</comments>
|
92
|
+
<description>
|
93
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30934529">Comments</a>]]>
|
94
|
+
</description>
|
95
|
+
</item>
|
96
|
+
<item>
|
97
|
+
<title>The State of Fortran</title>
|
98
|
+
<link>https://arxiv.org/abs/2203.15110</link>
|
99
|
+
<pubDate>Wed, 6 Apr 2022 18:20:19 +0000</pubDate>
|
100
|
+
<comments>https://news.ycombinator.com/item?id=30935633</comments>
|
101
|
+
<description>
|
102
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30935633">Comments</a>]]>
|
103
|
+
</description>
|
104
|
+
</item>
|
105
|
+
<item>
|
106
|
+
<title>A whole website in a single JavaScript file</title>
|
107
|
+
<link>https://deno.com/blog/a-whole-website-in-a-single-js-file</link>
|
108
|
+
<pubDate>Wed, 6 Apr 2022 16:07:19 +0000</pubDate>
|
109
|
+
<comments>https://news.ycombinator.com/item?id=30933831</comments>
|
110
|
+
<description>
|
111
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30933831">Comments</a>]]>
|
112
|
+
</description>
|
113
|
+
</item>
|
114
|
+
<item>
|
115
|
+
<title>Language of fungi derived from their electrical spiking activity</title>
|
116
|
+
<link>https://royalsocietypublishing.org/doi/10.1098/rsos.211926</link>
|
117
|
+
<pubDate>Wed, 6 Apr 2022 13:58:09 +0000</pubDate>
|
118
|
+
<comments>https://news.ycombinator.com/item?id=30931998</comments>
|
119
|
+
<description>
|
120
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30931998">Comments</a>]]>
|
121
|
+
</description>
|
122
|
+
</item>
|
123
|
+
<item>
|
124
|
+
<title>In defense of simple architectures</title>
|
125
|
+
<link>https://danluu.com/simple-architectures/</link>
|
126
|
+
<pubDate>Wed, 6 Apr 2022 19:04:29 +0000</pubDate>
|
127
|
+
<comments>https://news.ycombinator.com/item?id=30936189</comments>
|
128
|
+
<description>
|
129
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30936189">Comments</a>]]>
|
130
|
+
</description>
|
131
|
+
</item>
|
132
|
+
<item>
|
133
|
+
<title>Show HN: MetricFlow – open-source metric framework</title>
|
134
|
+
<link>https://github.com/transform-data/metricflow</link>
|
135
|
+
<pubDate>Wed, 6 Apr 2022 22:12:03 +0000</pubDate>
|
136
|
+
<comments>https://news.ycombinator.com/item?id=30938109</comments>
|
137
|
+
<description>
|
138
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30938109">Comments</a>]]>
|
139
|
+
</description>
|
140
|
+
</item>
|
141
|
+
<item>
|
142
|
+
<title>The remarkable brain of a carpet cleaner who speaks 24 languages</title>
|
143
|
+
<link>https://www.washingtonpost.com/dc-md-va/interactive/2022/multilingual-hyperpolyglot-brain-languages/</link>
|
144
|
+
<pubDate>Tue, 5 Apr 2022 15:31:04 +0000</pubDate>
|
145
|
+
<comments>https://news.ycombinator.com/item?id=30920287</comments>
|
146
|
+
<description>
|
147
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30920287">Comments</a>]]>
|
148
|
+
</description>
|
149
|
+
</item>
|
150
|
+
<item>
|
151
|
+
<title>It Knows (2011)</title>
|
152
|
+
<link>https://www.lrb.co.uk/the-paper/v33/n19/daniel-soar/it-knows</link>
|
153
|
+
<pubDate>Wed, 6 Apr 2022 08:26:49 +0000</pubDate>
|
154
|
+
<comments>https://news.ycombinator.com/item?id=30929778</comments>
|
155
|
+
<description>
|
156
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30929778">Comments</a>]]>
|
157
|
+
</description>
|
158
|
+
</item>
|
159
|
+
<item>
|
160
|
+
<title>GhostSCAD: Marrying OpenSCAD and Golang</title>
|
161
|
+
<link>https://jany.st/post/2022-04-04-ghostscad-marrying-openscad-and-golang.html</link>
|
162
|
+
<pubDate>Wed, 6 Apr 2022 10:59:47 +0000</pubDate>
|
163
|
+
<comments>https://news.ycombinator.com/item?id=30930665</comments>
|
164
|
+
<description>
|
165
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30930665">Comments</a>]]>
|
166
|
+
</description>
|
167
|
+
</item>
|
168
|
+
<item>
|
169
|
+
<title>Wolfenstein 3D's winding journey from pitch to release</title>
|
170
|
+
<link>https://www.gamedeveloper.com/gdc2022/wolfenstein-3d-postmortem</link>
|
171
|
+
<pubDate>Sun, 3 Apr 2022 02:07:52 +0000</pubDate>
|
172
|
+
<comments>https://news.ycombinator.com/item?id=30893655</comments>
|
173
|
+
<description>
|
174
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30893655">Comments</a>]]>
|
175
|
+
</description>
|
176
|
+
</item>
|
177
|
+
<item>
|
178
|
+
<title>MIPS provides highly scalable RISC processor IP</title>
|
179
|
+
<link>https://www.mips.com/</link>
|
180
|
+
<pubDate>Wed, 6 Apr 2022 18:24:26 +0000</pubDate>
|
181
|
+
<comments>https://news.ycombinator.com/item?id=30935683</comments>
|
182
|
+
<description>
|
183
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30935683">Comments</a>]]>
|
184
|
+
</description>
|
185
|
+
</item>
|
186
|
+
<item>
|
187
|
+
<title>Intel's “Cripple AMD” Function (2019)</title>
|
188
|
+
<link>https://www.agner.org/forum/viewtopic.php?t=6</link>
|
189
|
+
<pubDate>Wed, 6 Apr 2022 17:27:26 +0000</pubDate>
|
190
|
+
<comments>https://news.ycombinator.com/item?id=30935064</comments>
|
191
|
+
<description>
|
192
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30935064">Comments</a>]]>
|
193
|
+
</description>
|
194
|
+
</item>
|
195
|
+
<item>
|
196
|
+
<title>GoodGuesser</title>
|
197
|
+
<link>https://twitter.com/lisperati/status/1509859692855631881</link>
|
198
|
+
<pubDate>Tue, 5 Apr 2022 22:30:05 +0000</pubDate>
|
199
|
+
<comments>https://news.ycombinator.com/item?id=30925917</comments>
|
200
|
+
<description>
|
201
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30925917">Comments</a>]]>
|
202
|
+
</description>
|
203
|
+
</item>
|
204
|
+
<item>
|
205
|
+
<title>Tailscale’s human-scale networks are still controlled by Google and Microsoft</title>
|
206
|
+
<link>https://iliana.fyi/blog/tailscale-auth-and-threat-modeling/</link>
|
207
|
+
<pubDate>Mon, 4 Apr 2022 19:41:11 +0000</pubDate>
|
208
|
+
<comments>https://news.ycombinator.com/item?id=30911109</comments>
|
209
|
+
<description>
|
210
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30911109">Comments</a>]]>
|
211
|
+
</description>
|
212
|
+
</item>
|
213
|
+
<item>
|
214
|
+
<title>Dim, a self-hosted media manager</title>
|
215
|
+
<link>https://github.com/Dusk-Labs/dim</link>
|
216
|
+
<pubDate>Tue, 5 Apr 2022 18:24:59 +0000</pubDate>
|
217
|
+
<comments>https://news.ycombinator.com/item?id=30922871</comments>
|
218
|
+
<description>
|
219
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30922871">Comments</a>]]>
|
220
|
+
</description>
|
221
|
+
</item>
|
222
|
+
<item>
|
223
|
+
<title>Home sweet homepage, a comic about growing up online</title>
|
224
|
+
<link>https://sailorhg.com/home_sweet_homepage/</link>
|
225
|
+
<pubDate>Wed, 6 Apr 2022 19:28:44 +0000</pubDate>
|
226
|
+
<comments>https://news.ycombinator.com/item?id=30936462</comments>
|
227
|
+
<description>
|
228
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30936462">Comments</a>]]>
|
229
|
+
</description>
|
230
|
+
</item>
|
231
|
+
<item>
|
232
|
+
<title>Show HN: Tilepieces – An open source project for visually editing HTML documents</title>
|
233
|
+
<link>https://tilepieces.net</link>
|
234
|
+
<pubDate>Wed, 6 Apr 2022 13:14:06 +0000</pubDate>
|
235
|
+
<comments>https://news.ycombinator.com/item?id=30931586</comments>
|
236
|
+
<description>
|
237
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30931586">Comments</a>]]>
|
238
|
+
</description>
|
239
|
+
</item>
|
240
|
+
<item>
|
241
|
+
<title>TruffleHog v3 – Detect and automatically verify over 600 credential types</title>
|
242
|
+
<link>https://github.com/trufflesecurity/trufflehog</link>
|
243
|
+
<pubDate>Mon, 4 Apr 2022 19:21:30 +0000</pubDate>
|
244
|
+
<comments>https://news.ycombinator.com/item?id=30910893</comments>
|
245
|
+
<description>
|
246
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30910893">Comments</a>]]>
|
247
|
+
</description>
|
248
|
+
</item>
|
249
|
+
<item>
|
250
|
+
<title>Casting Silver Bullets (2013)</title>
|
251
|
+
<link>https://www.patriciabriggs.com/articles/silver/silverbullets.shtml</link>
|
252
|
+
<pubDate>Tue, 5 Apr 2022 20:33:23 +0000</pubDate>
|
253
|
+
<comments>https://news.ycombinator.com/item?id=30924635</comments>
|
254
|
+
<description>
|
255
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30924635">Comments</a>]]>
|
256
|
+
</description>
|
257
|
+
</item>
|
258
|
+
<item>
|
259
|
+
<title>GenieFramework – Build web applications with Julia</title>
|
260
|
+
<link>https://genieframework.com/</link>
|
261
|
+
<pubDate>Wed, 6 Apr 2022 08:45:26 +0000</pubDate>
|
262
|
+
<comments>https://news.ycombinator.com/item?id=30929873</comments>
|
263
|
+
<description>
|
264
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30929873">Comments</a>]]>
|
265
|
+
</description>
|
266
|
+
</item>
|
267
|
+
<item>
|
268
|
+
<title>What’s new in Emacs 28.1?</title>
|
269
|
+
<link>https://www.masteringemacs.org/article/whats-new-in-emacs-28-1</link>
|
270
|
+
<pubDate>Wed, 6 Apr 2022 11:23:33 +0000</pubDate>
|
271
|
+
<comments>https://news.ycombinator.com/item?id=30930816</comments>
|
272
|
+
<description>
|
273
|
+
<![CDATA[<a href="https://news.ycombinator.com/item?id=30930816">Comments</a>]]>
|
274
|
+
</description>
|
275
|
+
</item>
|
276
|
+
</channel>
|
277
|
+
</rss>
|
data/spec/sample_feeds.rb
CHANGED
@@ -34,7 +34,8 @@ module SampleFeeds
|
|
34
34
|
sample_rss_feed_huffpost_ca: "HuffPostCanada.xml",
|
35
35
|
sample_invalid_date_format_feed: "InvalidDateFormat.xml",
|
36
36
|
sample_rss_feed_permalinks: "Permalinks.xml",
|
37
|
-
sample_rss_feed_with_a10_namespace: "a10.xml"
|
37
|
+
sample_rss_feed_with_a10_namespace: "a10.xml",
|
38
|
+
sample_rss_feed_with_comments: "RSSWithComments.xml"
|
38
39
|
}.freeze
|
39
40
|
|
40
41
|
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: 3.2.
|
4
|
+
version: 3.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Hess
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2022-
|
17
|
+
date: 2022-10-19 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: loofah
|
@@ -267,6 +267,7 @@ files:
|
|
267
267
|
- spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml
|
268
268
|
- spec/sample_feeds/PaulDixExplainsNothingWFW.xml
|
269
269
|
- spec/sample_feeds/Permalinks.xml
|
270
|
+
- spec/sample_feeds/RSSWithComments.xml
|
270
271
|
- spec/sample_feeds/SamRuby.xml
|
271
272
|
- spec/sample_feeds/TechCrunch.xml
|
272
273
|
- spec/sample_feeds/TechCrunchFirstEntry.xml
|
@@ -301,83 +302,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
301
302
|
requirements:
|
302
303
|
- - ">="
|
303
304
|
- !ruby/object:Gem::Version
|
304
|
-
version: '2.
|
305
|
+
version: '2.7'
|
305
306
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
306
307
|
requirements:
|
307
308
|
- - ">="
|
308
309
|
- !ruby/object:Gem::Version
|
309
310
|
version: '0'
|
310
311
|
requirements: []
|
311
|
-
rubygems_version: 3.
|
312
|
+
rubygems_version: 3.4.0.dev
|
312
313
|
signing_key:
|
313
314
|
specification_version: 4
|
314
315
|
summary: A feed parsing library
|
315
|
-
test_files:
|
316
|
-
- spec/feedjira/configuration_spec.rb
|
317
|
-
- spec/feedjira/feed_spec.rb
|
318
|
-
- spec/feedjira/feed_utilities_date_time_spec.rb
|
319
|
-
- spec/feedjira/feed_utilities_entry_spec.rb
|
320
|
-
- spec/feedjira/feed_utilities_spec.rb
|
321
|
-
- spec/feedjira/parser/atom_entry_spec.rb
|
322
|
-
- spec/feedjira/parser/atom_feed_burner_entry_spec.rb
|
323
|
-
- spec/feedjira/parser/atom_feed_burner_spec.rb
|
324
|
-
- spec/feedjira/parser/atom_google_alerts_entry_spec.rb
|
325
|
-
- spec/feedjira/parser/atom_google_alerts_spec.rb
|
326
|
-
- spec/feedjira/parser/atom_spec.rb
|
327
|
-
- spec/feedjira/parser/atom_youtube_entry_spec.rb
|
328
|
-
- spec/feedjira/parser/atom_youtube_spec.rb
|
329
|
-
- spec/feedjira/parser/google_docs_atom_entry_spec.rb
|
330
|
-
- spec/feedjira/parser/google_docs_atom_spec.rb
|
331
|
-
- spec/feedjira/parser/i_tunes_rss_item_spec.rb
|
332
|
-
- spec/feedjira/parser/i_tunes_rss_owner_spec.rb
|
333
|
-
- spec/feedjira/parser/itunes_rss_spec.rb
|
334
|
-
- spec/feedjira/parser/json_feed_item_spec.rb
|
335
|
-
- spec/feedjira/parser/json_feed_spec.rb
|
336
|
-
- spec/feedjira/parser/podlove_chapter_spec.rb
|
337
|
-
- spec/feedjira/parser/rss_entry_spec.rb
|
338
|
-
- spec/feedjira/parser/rss_feed_burner_entry_spec.rb
|
339
|
-
- spec/feedjira/parser/rss_feed_burner_spec.rb
|
340
|
-
- spec/feedjira/parser/rss_spec.rb
|
341
|
-
- spec/feedjira/preprocessor_spec.rb
|
342
|
-
- spec/feedjira_spec.rb
|
343
|
-
- spec/sample_feeds.rb
|
344
|
-
- spec/sample_feeds/AmazonWebServicesBlog.xml
|
345
|
-
- spec/sample_feeds/AmazonWebServicesBlogFirstEntryContent.xml
|
346
|
-
- spec/sample_feeds/AtomEscapedHTMLInPreTag.xml
|
347
|
-
- spec/sample_feeds/AtomFeedWithSpacesAroundEquals.xml
|
348
|
-
- spec/sample_feeds/CRE.xml
|
349
|
-
- spec/sample_feeds/DuplicateContentAtomFeed.xml
|
350
|
-
- spec/sample_feeds/FeedBurnerUrlNoAlternate.xml
|
351
|
-
- spec/sample_feeds/FeedBurnerXHTML.xml
|
352
|
-
- spec/sample_feeds/FeedjiraBlog.xml
|
353
|
-
- spec/sample_feeds/GiantRobotsSmashingIntoOtherGiantRobots.xml
|
354
|
-
- spec/sample_feeds/GoogleDocsList.xml
|
355
|
-
- spec/sample_feeds/HREFConsideredHarmful.xml
|
356
|
-
- spec/sample_feeds/HREFConsideredHarmfulFirstEntry.xml
|
357
|
-
- spec/sample_feeds/HuffPostCanada.xml
|
358
|
-
- spec/sample_feeds/ITunesWithSingleQuotedAttributes.xml
|
359
|
-
- spec/sample_feeds/ITunesWithSpacesInAttributes.xml
|
360
|
-
- spec/sample_feeds/InvalidDateFormat.xml
|
361
|
-
- spec/sample_feeds/PaulDixExplainsNothing.xml
|
362
|
-
- spec/sample_feeds/PaulDixExplainsNothingAlternate.xml
|
363
|
-
- spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml
|
364
|
-
- spec/sample_feeds/PaulDixExplainsNothingWFW.xml
|
365
|
-
- spec/sample_feeds/Permalinks.xml
|
366
|
-
- spec/sample_feeds/SamRuby.xml
|
367
|
-
- spec/sample_feeds/TechCrunch.xml
|
368
|
-
- spec/sample_feeds/TechCrunchFirstEntry.xml
|
369
|
-
- spec/sample_feeds/TechCrunchFirstEntryDescription.xml
|
370
|
-
- spec/sample_feeds/TenderLovemaking.xml
|
371
|
-
- spec/sample_feeds/TenderLovemakingFirstEntry.xml
|
372
|
-
- spec/sample_feeds/TrotterCashionHome.xml
|
373
|
-
- spec/sample_feeds/TypePadNews.xml
|
374
|
-
- spec/sample_feeds/a10.xml
|
375
|
-
- spec/sample_feeds/atom_simple_single_entry.xml
|
376
|
-
- spec/sample_feeds/atom_simple_single_entry_link_self.xml
|
377
|
-
- spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml
|
378
|
-
- spec/sample_feeds/google_alerts_atom.xml
|
379
|
-
- spec/sample_feeds/itunes.xml
|
380
|
-
- spec/sample_feeds/json_feed.json
|
381
|
-
- spec/sample_feeds/pet_atom.xml
|
382
|
-
- spec/sample_feeds/youtube_atom.xml
|
383
|
-
- spec/spec_helper.rb
|
316
|
+
test_files: []
|