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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b6930aadfe8b2a06d65aa2a8dfaad0d8fcc4f34356a3c3646cf75ef70a753a8d
4
- data.tar.gz: 00a921f06c7542ca84d552a6f680e56d99f4b0b3aa830113b75c0545f6fdbcf7
3
+ metadata.gz: 5169a51338551c1253b148e944e9b63cff818f85ba5eeafd2c3239ea007b5012
4
+ data.tar.gz: c9966b308d0f57873c56b474cdbdc7a1a96ee6dd64d5a0ca56f30c333ada9298
5
5
  SHA512:
6
- metadata.gz: 5970d946d3673ff856f95bef75e09b4cc0b6dbc3b8b9ba66a3ebade66d93fd894b23e784d8e9c3ab345eb6deae2094878e60be2164aae46623e2159bcf4530c0
7
- data.tar.gz: ae1466452711a547ec9f2ad42ab34b11a8ce03a1886e6ddeb56f3a8723c3d1ab6f1a0b22461c339a0a5c490e64965a37da9329bcd701fd4d10117c8b9e28fbe1
6
+ metadata.gz: ad3fc7290af22ec75dbba64b2397ad3e8e6f283f73c3c793eaf9b33d28410dcaa6439618c47d741858a732df7478cbcb21f987314880ef5acd108224cc6fa7a2
7
+ data.tar.gz: 20422cf9fdf53491356726c29b118ce6e1b3b37c0ef7294f1c01bcaf00df72097ae6afd1a88191ca765217fe7a159996247de4837a14a1716d33ad8024f7f784
@@ -12,7 +12,7 @@ jobs:
12
12
  fail-fast: false
13
13
  matrix:
14
14
  os: [ubuntu]
15
- ruby: [2.5, 2.6, 2.7, 3.0]
15
+ ruby: [2.7, 3.0, 3.1]
16
16
  handler: [nokogiri, ox, oga]
17
17
  exclude:
18
18
  - { ruby: jruby, handler: ox }
data/.rubocop.yml CHANGED
@@ -6,7 +6,7 @@ require:
6
6
  - rubocop-performance
7
7
 
8
8
  AllCops:
9
- TargetRubyVersion: 2.5
9
+ TargetRubyVersion: 2.7
10
10
  NewCops: enable
11
11
 
12
12
  # Offense count: 3
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] [![Gitter][gitter-badge]][gitter]
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.5"
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
- Time.send(method, dest.year, dest.month, dest.day, dest.hour, dest.min,
20
- dest.sec, dest.offset)
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
- def self.included(mod)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Feedjira
4
- VERSION = "3.2.1"
4
+ VERSION = "3.2.2"
5
5
  end
@@ -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.parse_safely("Tue Sep 17 12:20:13 UTC 2013")
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.parse_safely("Tue Sep 17 12:20:13 UTC 2013")
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 eq true
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
@@ -44,7 +44,7 @@ module Feedjira
44
44
  end
45
45
 
46
46
  it "parses expired and return default (nil)" do
47
- expect(@feed.expired).to be nil
47
+ expect(@feed.expired).to be_nil
48
48
  end
49
49
 
50
50
  it "parses entries" 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 eq nil
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
@@ -75,6 +75,7 @@ describe Feedjira::Parser::RSSFeedBurnerEntry do
75
75
  author
76
76
  categories
77
77
  comment_rss
78
+ comments
78
79
  content
79
80
  entry_id
80
81
  image
@@ -14,7 +14,7 @@ describe Feedjira::Parser::RSS do
14
14
 
15
15
  it "returns false for an rss feedburner feed" do
16
16
  able = described_class.able_to_parse? sample_rss_feed_burner_feed
17
- expect(able).to eq false
17
+ expect(able).to be false
18
18
  end
19
19
  end
20
20
 
@@ -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&#x27;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&#x27;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&#x27;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&#x27;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.1
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-01-02 00:00:00.000000000 Z
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.5'
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.3.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: []