feedjira 3.0.0.beta1 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/ISSUE_TEMPLATE/feed-parsing.md +15 -0
- data/.github/workflows/ruby.yml +39 -0
- data/.rubocop.yml +18 -628
- data/.rubocop_todo.yml +11 -0
- data/CHANGELOG.md +66 -9
- data/Gemfile +4 -1
- data/README.md +10 -1
- data/Rakefile +3 -1
- data/feedjira.gemspec +14 -12
- data/lib/feedjira.rb +9 -3
- data/lib/feedjira/atom_entry_utilities.rb +51 -0
- data/lib/feedjira/configuration.rb +6 -3
- data/lib/feedjira/core_ext.rb +2 -0
- data/lib/feedjira/core_ext/date.rb +3 -2
- data/lib/feedjira/core_ext/string.rb +2 -1
- data/lib/feedjira/core_ext/time.rb +10 -10
- data/lib/feedjira/date_time_utilities.rb +8 -10
- data/lib/feedjira/date_time_utilities/date_time_epoch_parser.rb +3 -2
- data/lib/feedjira/date_time_utilities/date_time_language_parser.rb +4 -4
- data/lib/feedjira/date_time_utilities/date_time_pattern_parser.rb +9 -13
- data/lib/feedjira/feed.rb +3 -3
- data/lib/feedjira/feed_entry_utilities.rb +15 -8
- data/lib/feedjira/feed_utilities.rb +5 -4
- data/lib/feedjira/parser.rb +2 -0
- data/lib/feedjira/parser/atom.rb +5 -7
- data/lib/feedjira/parser/atom_entry.rb +4 -21
- data/lib/feedjira/parser/atom_feed_burner.rb +4 -3
- data/lib/feedjira/parser/atom_feed_burner_entry.rb +7 -18
- data/lib/feedjira/parser/atom_google_alerts.rb +26 -0
- data/lib/feedjira/parser/atom_google_alerts_entry.rb +21 -0
- data/lib/feedjira/parser/atom_youtube.rb +2 -1
- data/lib/feedjira/parser/atom_youtube_entry.rb +8 -7
- data/lib/feedjira/parser/globally_unique_identifier.rb +21 -0
- data/lib/feedjira/parser/google_docs_atom.rb +4 -4
- data/lib/feedjira/parser/google_docs_atom_entry.rb +3 -19
- data/lib/feedjira/parser/itunes_rss.rb +4 -3
- data/lib/feedjira/parser/itunes_rss_category.rb +6 -5
- data/lib/feedjira/parser/itunes_rss_item.rb +5 -8
- data/lib/feedjira/parser/itunes_rss_owner.rb +2 -1
- data/lib/feedjira/parser/json_feed.rb +4 -2
- data/lib/feedjira/parser/json_feed_item.rb +7 -1
- data/lib/feedjira/parser/podlove_chapter.rb +3 -2
- data/lib/feedjira/parser/rss.rb +4 -2
- data/lib/feedjira/parser/rss_entry.rb +3 -28
- data/lib/feedjira/parser/rss_feed_burner.rb +3 -2
- data/lib/feedjira/parser/rss_feed_burner_entry.rb +6 -26
- data/lib/feedjira/parser/rss_image.rb +2 -0
- data/lib/feedjira/preprocessor.rb +3 -3
- data/lib/feedjira/rss_entry_utilities.rb +53 -0
- data/lib/feedjira/version.rb +3 -1
- data/spec/feedjira/configuration_spec.rb +5 -3
- data/spec/feedjira/date_time_utilities_spec.rb +2 -0
- data/spec/feedjira/feed_entry_utilities_spec.rb +4 -2
- data/spec/feedjira/feed_spec.rb +3 -1
- data/spec/feedjira/feed_utilities_spec.rb +5 -3
- data/spec/feedjira/parser/atom_entry_spec.rb +7 -4
- data/spec/feedjira/parser/atom_feed_burner_entry_spec.rb +7 -5
- data/spec/feedjira/parser/atom_feed_burner_spec.rb +4 -2
- data/spec/feedjira/parser/atom_google_alerts_entry_spec.rb +34 -0
- data/spec/feedjira/parser/atom_google_alerts_spec.rb +62 -0
- data/spec/feedjira/parser/atom_spec.rb +30 -9
- data/spec/feedjira/parser/atom_youtube_entry_spec.rb +8 -6
- data/spec/feedjira/parser/atom_youtube_spec.rb +6 -4
- data/spec/feedjira/parser/google_docs_atom_entry_spec.rb +2 -0
- data/spec/feedjira/parser/google_docs_atom_spec.rb +2 -0
- data/spec/feedjira/parser/itunes_rss_item_spec.rb +3 -1
- data/spec/feedjira/parser/itunes_rss_owner_spec.rb +2 -0
- data/spec/feedjira/parser/itunes_rss_spec.rb +11 -9
- data/spec/feedjira/parser/json_feed_item_spec.rb +5 -3
- data/spec/feedjira/parser/json_feed_spec.rb +2 -0
- data/spec/feedjira/parser/podlove_chapter_spec.rb +2 -0
- data/spec/feedjira/parser/rss_entry_spec.rb +26 -4
- data/spec/feedjira/parser/rss_feed_burner_entry_spec.rb +9 -7
- data/spec/feedjira/parser/rss_feed_burner_spec.rb +3 -1
- data/spec/feedjira/parser/rss_spec.rb +2 -0
- data/spec/feedjira/preprocessor_spec.rb +4 -2
- data/spec/feedjira_spec.rb +22 -1
- data/spec/sample_feeds.rb +7 -3
- data/spec/sample_feeds/InvalidDateFormat.xml +20 -0
- data/spec/sample_feeds/Permalinks.xml +22 -0
- data/spec/sample_feeds/a10.xml +72 -0
- data/spec/sample_feeds/atom_simple_single_entry.xml +17 -0
- data/spec/sample_feeds/atom_simple_single_entry_link_self.xml +17 -0
- data/spec/sample_feeds/google_alerts_atom.xml +1 -0
- data/spec/spec_helper.rb +3 -7
- metadata +44 -47
- data/.travis.yml +0 -37
- data/Dangerfile +0 -1
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<feed xmlns="http://www.w3.org/2005/Atom">
|
3
|
+
<title>Example Feed</title>
|
4
|
+
<link href="http://example.org/"/>
|
5
|
+
<updated>2003-12-13T18:30:02Z</updated>
|
6
|
+
<author>
|
7
|
+
<name>John Doe</name>
|
8
|
+
</author>
|
9
|
+
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
|
10
|
+
<entry>
|
11
|
+
<title>Atom-Powered Robots Run Amok</title>
|
12
|
+
<link href="http://example.org/2003/12/13/atom03"/>
|
13
|
+
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
|
14
|
+
<updated>2003-12-13T18:30:02Z</updated>
|
15
|
+
<summary>Some text.</summary>
|
16
|
+
</entry>
|
17
|
+
</feed>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<feed xmlns="http://www.w3.org/2005/Atom">
|
3
|
+
<title>Example Feed</title>
|
4
|
+
<link href="http://example.org/atom.xml" rel="self"/>
|
5
|
+
<updated>2003-12-13T18:30:02Z</updated>
|
6
|
+
<author>
|
7
|
+
<name>John Doe</name>
|
8
|
+
</author>
|
9
|
+
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
|
10
|
+
<entry>
|
11
|
+
<title>Atom-Powered Robots Run Amok</title>
|
12
|
+
<link href="http://example.org/2003/12/13/atom03"/>
|
13
|
+
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
|
14
|
+
<updated>2003-12-13T18:30:02Z</updated>
|
15
|
+
<summary>Some text.</summary>
|
16
|
+
</entry>
|
17
|
+
</feed>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:idx="urn:atom-extension:indexing"> <id>tag:google.com,2005:reader/user/04175468913983673025/state/com.google/alerts/4428013283581841004</id> <title>Google Alert - Slack</title> <link href="https://www.google.com/alerts/feeds/04175468913983673025/4428013283581841004" rel="self"></link> <updated>2019-07-10T11:53:37Z</updated> <entry> <id>tag:google.com,2013:googlealerts/feed:8974135267215335962</id> <title type="html">Report offers Prediction of Automotive <b>Slack</b> Market by Top key players like Haldex, Meritor, Bendix ...</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://www.aglobalmarketresearch.com/report-offers-prediction-of-automotive-slack-market-by-top-key-players-like-haldex-meritor-bendix-mei-wabco-accuride-stemco-tbk-febi-aydinsan/&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNHUcRGtHY1ygcMDkVS68IgpYs7Wpg"></link> <published>2019-07-10T11:53:37Z</published> <updated>2019-07-10T11:53:37Z</updated> <content type="html">Automotive <b>Slack</b> Market reports provides a comprehensive overview of the global market size and share. It provides strategists, marketers and senior&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:13685523368333461374</id> <title type="html"><b>Slack</b> Stock Has a Compelling Story and the Numbers to Back It Up</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://investorplace.com/2019/07/slack-stock-truly-compelling/&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNEZXRySX8eW_IyksUe5d7lidLUXxg"></link> <published>2019-07-10T11:46:48Z</published> <updated>2019-07-10T11:46:48Z</updated> <content type="html">In the run up to the IPO for <b>Slack</b> Technologies Inc (NYSE:WORK), much of the news coverage centered on the Company&#39;s decision to go public via&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:16151843349267390757</id> <title type="html"><b>Slack</b> (NASDAQ:WORK) Insider Cal Henderson Sells 1500 Shares</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://rivertonroll.com/news/2019/07/10/slack-nasdaqwork-insider-cal-henderson-sells-1500-shares-3.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNGa9L5blE9C_ZfDAAvEn2wd4T6SMg"></link> <published>2019-07-10T11:36:15Z</published> <updated>2019-07-10T11:36:15Z</updated> <content type="html"><b>Slack</b> (NASDAQ:WORK) insider Cal Henderson sold 1,500 shares of the stock in a transaction on Friday, July 5th. The shares were sold at an average&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:1835132116100339822</id> <title type="html">Recode Daily: <b>Slack</b> has a Snap problem</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://www.vox.com/2019/7/10/20688476/recode-daily-slack-has-a-snap-problem&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNEtQrh4XLXd2sVV4nUaaLRLTH41gA"></link> <published>2019-07-10T11:26:15Z</published> <updated>2019-07-10T11:26:15Z</updated> <content type="html">Microsoft Teams could be to <b>Slack</b> what Facebook was to Snapchat: a copier and a killer. The workplace messaging software <b>Slack</b> is losing ground to&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:991231131852743341</id> <title type="html">Global Automotive <b>Slack</b> Market Revenue Share by Players: Haldex, Meritor, Bendix, MEI, Wabco</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://www.globalindustryjournal.us/183648/global-automotive-slack-market-revenue-share-by-players-haldex-meritor-bendix-mei-wabco/&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNEjveCF1nef8dDcyjHbbhfhckMzFw"></link> <published>2019-07-10T09:56:15Z</published> <updated>2019-07-10T09:56:15Z</updated> <content type="html">Market Research Explore recently released an exhaustive study of Global Automotive <b>Slack</b> Market, enfolding details of market competition, trends,&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:6847164010869268236</id> <title type="html"><b>Slack</b> (NASDAQ:WORK) Director Sells $39655442.33 in Stock</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://mayfieldrecorder.com/2019/07/10/slack-nasdaqwork-director-chamath-palihapitiya-sells-1017067-shares.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNHgq8lH_XYoxtARd4wwG1AachxXBg"></link> <published>2019-07-10T05:48:45Z</published> <updated>2019-07-10T05:48:45Z</updated> <content type="html"><b>Slack</b> (NASDAQ:WORK) Director Chamath Palihapitiya sold 1,017,067 shares of the firm&#39;s stock in a transaction that occurred on Thursday, June 20th.</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:10850208843585695355</id> <title type="html"><b>Slack</b> (NASDAQ:WORK) Insider Cal Henderson Sells 99342 Shares</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://mayfieldrecorder.com/2019/07/10/slack-nasdaqwork-insider-cal-henderson-sells-99342-shares-of-stock.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNFq39KMesisexj52u8TlmigPkty1g"></link> <published>2019-07-10T05:48:45Z</published> <updated>2019-07-10T05:48:45Z</updated> <content type="html"><b>Slack</b> (NASDAQ:WORK) insider Cal Henderson sold 99,342 shares of the firm&#39;s stock in a transaction on Friday, June 21st. The shares were sold at an&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:676733747034138159</id> <title type="html"><b>Slack</b> Wax Market 2019 Global Industry Growth, Historical Analysis, Size, Trends, Emerging ...</title> <link href="https://www.google.com/url?rct=j&sa=t&url=http://newsinbites.com/2019/07/10/slack-wax-market-2019-global-industry-growth-historical-analysis-size-trends-emerging-factors-demands-key-players-emerging-technologies-and-potential-of-industry-till-2024/&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNGSN1zkCT-nKy9XVtCuwP2Vtr_HMQ"></link> <published>2019-07-10T05:37:30Z</published> <updated>2019-07-10T05:37:30Z</updated> <content type="html">Global “<b>Slack</b> Wax Market” 2019 Industry research report provides an In-Depth analysis that includes an executive summary, definition, and scope of&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:18336572245163291818</id> <title type="html"><b>Slack</b> (NASDAQ:WORK) SVP Sells $14409915.40 in Stock</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://techknowbits.com/2019/07/10/slack-nasdaqwork-svp-robert-frati-sells-376238-shares-of-stock.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNFkHaZhjSnl6JinAe2lasaG3oKGAg"></link> <published>2019-07-10T05:03:45Z</published> <updated>2019-07-10T05:03:45Z</updated> <content type="html"><b>Slack</b> (NASDAQ:WORK) SVP Robert Frati sold 376,238 shares of the company&#39;s stock in a transaction that occurred on Friday, June 21st. The stock&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:2703912120395789266</id> <title type="html"><b>Slack</b> (NASDAQ:WORK) CFO Sells $19407875.75 in Stock</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://techknowbits.com/2019/07/10/slack-nasdaqwork-cfo-allen-shim-sells-502925-shares-of-stock.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNEXxF5Cfnhwz-SxZFQPvgjPUmgGVQ"></link> <published>2019-07-10T05:03:45Z</published> <updated>2019-07-10T05:03:45Z</updated> <content type="html"><b>Slack</b> (NASDAQ:WORK) CFO Allen Shim sold 502,925 shares of the company&#39;s stock in a transaction that occurred on Thursday, June 20th.</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:16967451403322814502</id> <title type="html"><b>Slack</b> (NASDAQ:WORK) CEO Sells $53170714.63 in Stock</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://mayfieldrecorder.com/2019/07/10/slack-nasdaqwork-ceo-stewart-butterfield-sells-1360909-shares.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNFU3yaWB2ZAMHAEg88g4swT73wfUQ"></link> <published>2019-07-10T05:03:45Z</published> <updated>2019-07-10T05:03:45Z</updated> <content type="html"><b>Slack</b> (NASDAQ:WORK) CEO Stewart Butterfield sold 1,360,909 shares of <b>Slack</b> stock in a transaction on Friday, June 21st. The shares were sold at&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:7033385826050307251</id> <title type="html">Pineview advances in District II playoffs</title> <link href="https://www.google.com/url?rct=j&sa=t&url=http://www.valleybreeze.com/2019-07-09/pawtucket/pineview-advances-district-ii-playoffs&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNFhAakIA4wXQDhO_D00ECKTu5_imw"></link> <published>2019-07-10T04:11:14Z</published> <updated>2019-07-10T04:11:14Z</updated> <content type="html">Pineview second baseman Brayden <b>Slack</b>, right, tries to tag out Rumford runner James Lynch, who slides into second with a double in the second&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:3167943241172286723</id> <title type="html">Global Enterprise Collaboration Software Market 2019 IBM Corporation, Microsoft Corporation ...</title> <link href="https://www.google.com/url?rct=j&sa=t&url=http://marketnewswire24.us/17010/global-enterprise-collaboration-software-market-2019-ibm-corporation-microsoft-corporation-slack-technologies-inc/&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNHG-jxznBgS52cob3KFPnXyFhGW8g"></link> <published>2019-07-10T03:36:51Z</published> <updated>2019-07-10T03:36:51Z</updated> <content type="html">Leading Enterprise Collaboration Software Industry Players Included In The Report Are: IBM Corporation, Microsoft Corporation, <b>Slack</b> technologies,&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:15024912487216559816</id> <title type="html">Armed man killed, K-9 shot in Citrus Heights officer-involved shooting near Sunrise Mall</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://www.sacbee.com/news/local/crime/article232483667.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNENE1Tle1J2dM3ZxqdYaLWlI4xoyg"></link> <published>2019-07-10T03:33:51Z</published> <updated>2019-07-10T03:33:51Z</updated> <content type="html">A Citrus Heights officer, the K-9&#39;s handler, also was shot through the <b>slack</b> in his uniform but was not injured, said police spokesman Lt. Chad Morris.</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:14640835878759953379</id> <title type="html">Automotive <b>Slack</b> Adjuster 3150 Market Report – A Complete Overview of Market Segments and ...</title> <link href="https://www.google.com/url?rct=j&sa=t&url=http://cw57.tv/market-research-news/69293/automotive-slack-adjuster-3150-market-report-a-complete-overview-of-market-segments-and-the-regional-outlook-of-automotive-slack-adjuster-3150-industry/&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNHKbCms6OnCO67WnO8_fhejvqS4Bg"></link> <published>2019-07-10T03:22:30Z</published> <updated>2019-07-10T03:22:30Z</updated> <content type="html">This Automotive <b>Slack</b> Adjuster 3150 market report presents a comprehensive overview, market shares, and growth opportunities of Automotive <b>Slack</b>&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:16965181355074777371</id> <title type="html"><b>Slack</b> and Spotify debuts tempt companies to cut out the middlemen</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://www.ft.com/content/6ee262ba-a1f5-11e9-974c-ad1c6ab5efd1&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNGE6e4LnMTVczc_IGbhgiSinZqQ9Q"></link> <published>2019-07-10T03:00:00Z</published> <updated>2019-07-10T03:00:00Z</updated> <content type="html">Last month, messaging service <b>Slack</b> bypassed convention with a “direct listing,” where shares become tradable on an exchange, but no money is&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:13555337362872998403</id> <title type="html"><b>Slack</b> Technologies, Inc. (NYSE:WORK) Has Witnessed Cash Flow Change of</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://thestockminute.com/slack-technologies-inc-nysework-has-witnessed-cash-flow-change-of/48532/&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNGm59ORBBH9vi4-WMWFURi4MQfRDw"></link> <published>2019-07-10T02:03:45Z</published> <updated>2019-07-10T02:03:45Z</updated> <content type="html">Investors looking to take advantage of cash heavy shares, they might look first to the cash flow of a company, and how fast that is growing. <b>Slack</b>&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:443267995170339225</id> <title type="html">Insider Selling: <b>Slack</b> (NASDAQ:WORK) Insider Sells 1500 Shares of Stock</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://rivertonroll.com/news/2019/07/09/slack-nasdaqwork-insider-cal-henderson-sells-1500-shares-2.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNF7JwPeGB209qmU1JTDp36eQBFexA"></link> <published>2019-07-10T01:30:00Z</published> <updated>2019-07-10T01:30:00Z</updated> <content type="html"><b>Slack</b> (NASDAQ:WORK) insider Cal Henderson sold 1,500 shares of <b>Slack</b> stock in a transaction dated Friday, June 28th. The shares were sold at an&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:13952751448219995557</id> <title type="html"><b>Slack</b> (NASDAQ:WORK) CEO Sells $91750.00 in Stock</title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://rivertonroll.com/news/2019/07/09/insider-selling-slack-nasdaqwork-ceo-sells-2500-shares-of-stock.html&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNFpplJXjDKxXBAEKaxL4p87dlJXVg"></link> <published>2019-07-10T00:45:00Z</published> <updated>2019-07-10T00:45:00Z</updated> <content type="html"><b>Slack</b> (NASDAQ:WORK) CEO Stewart Butterfield sold 2,500 shares of the firm&#39;s stock in a transaction that occurred on Friday, June 28th. The shares&nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:13546348949071100939</id> <title type="html">Latest research shows Microsoft Teams is stomping <b>Slack</b></title> <link href="https://www.google.com/url?rct=j&sa=t&url=https://mspoweruser.com/latest-research-shows-microsoft-teams-is-stomping-slack/&ct=ga&cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&usg=AFQjCNHlMxJk51Ai598ebVkCpaKE2uStCw"></link> <published>2019-07-09T23:59:57Z</published> <updated>2019-07-09T23:59:57Z</updated> <content type="html">A new survey by market research firm ETR has shown that enterprise collaboration software <b>Slack</b> is losing ground to Microsoft Teams, especially with&nbsp;...</content> <author> <name></name> </author> </entry> </feed>
|
data/spec/spec_helper.rb
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path("#{File.dirname(__FILE__)}/../lib/feedjira")
|
2
4
|
require "sample_feeds"
|
3
|
-
require "vcr"
|
4
5
|
|
5
6
|
SAXMachine.handler = ENV["HANDLER"].to_sym if ENV["HANDLER"]
|
6
7
|
|
7
|
-
VCR.configure do |config|
|
8
|
-
config.cassette_library_dir = "fixtures/vcr_cassettes"
|
9
|
-
config.hook_into :faraday
|
10
|
-
end
|
11
|
-
|
12
8
|
RSpec.configure do |c|
|
13
9
|
c.include SampleFeeds
|
14
10
|
end
|
metadata
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: feedjira
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Hess
|
8
|
+
- Akinori Musha
|
8
9
|
- Ezekiel Templin
|
9
10
|
- Jon Allured
|
10
11
|
- Julien Kirch
|
11
12
|
- Michael Stock
|
12
13
|
- Paul Dix
|
13
|
-
autorequire:
|
14
|
+
autorequire:
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
|
-
date:
|
17
|
+
date: 2021-06-24 00:00:00.000000000 Z
|
17
18
|
dependencies:
|
18
19
|
- !ruby/object:Gem::Dependency
|
19
20
|
name: loofah
|
@@ -21,14 +22,14 @@ dependencies:
|
|
21
22
|
requirements:
|
22
23
|
- - ">="
|
23
24
|
- !ruby/object:Gem::Version
|
24
|
-
version:
|
25
|
+
version: 2.3.1
|
25
26
|
type: :runtime
|
26
27
|
prerelease: false
|
27
28
|
version_requirements: !ruby/object:Gem::Requirement
|
28
29
|
requirements:
|
29
30
|
- - ">="
|
30
31
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
32
|
+
version: 2.3.1
|
32
33
|
- !ruby/object:Gem::Dependency
|
33
34
|
name: sax-machine
|
34
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,21 +45,7 @@ dependencies:
|
|
44
45
|
- !ruby/object:Gem::Version
|
45
46
|
version: '1.0'
|
46
47
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
requirements:
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: '0'
|
53
|
-
type: :development
|
54
|
-
prerelease: false
|
55
|
-
version_requirements: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - ">="
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '0'
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: danger-commit_lint
|
48
|
+
name: faraday
|
62
49
|
requirement: !ruby/object:Gem::Requirement
|
63
50
|
requirements:
|
64
51
|
- - ">="
|
@@ -99,20 +86,6 @@ dependencies:
|
|
99
86
|
- - ">="
|
100
87
|
- !ruby/object:Gem::Version
|
101
88
|
version: '0'
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: vcr
|
104
|
-
requirement: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - ">="
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '0'
|
109
|
-
type: :development
|
110
|
-
prerelease: false
|
111
|
-
version_requirements: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - ">="
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: '0'
|
116
89
|
- !ruby/object:Gem::Dependency
|
117
90
|
name: yard
|
118
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,25 +100,27 @@ dependencies:
|
|
127
100
|
- - ">="
|
128
101
|
- !ruby/object:Gem::Version
|
129
102
|
version: '0'
|
130
|
-
description:
|
131
|
-
email:
|
103
|
+
description:
|
104
|
+
email:
|
132
105
|
executables: []
|
133
106
|
extensions: []
|
134
107
|
extra_rdoc_files: []
|
135
108
|
files:
|
109
|
+
- ".github/ISSUE_TEMPLATE/feed-parsing.md"
|
110
|
+
- ".github/workflows/ruby.yml"
|
136
111
|
- ".gitignore"
|
137
112
|
- ".rspec"
|
138
113
|
- ".rubocop.yml"
|
139
|
-
- ".
|
114
|
+
- ".rubocop_todo.yml"
|
140
115
|
- CHANGELOG.md
|
141
116
|
- CODE_OF_CONDUCT.md
|
142
|
-
- Dangerfile
|
143
117
|
- Gemfile
|
144
118
|
- LICENSE
|
145
119
|
- README.md
|
146
120
|
- Rakefile
|
147
121
|
- feedjira.gemspec
|
148
122
|
- lib/feedjira.rb
|
123
|
+
- lib/feedjira/atom_entry_utilities.rb
|
149
124
|
- lib/feedjira/configuration.rb
|
150
125
|
- lib/feedjira/core_ext.rb
|
151
126
|
- lib/feedjira/core_ext/date.rb
|
@@ -163,8 +138,11 @@ files:
|
|
163
138
|
- lib/feedjira/parser/atom_entry.rb
|
164
139
|
- lib/feedjira/parser/atom_feed_burner.rb
|
165
140
|
- lib/feedjira/parser/atom_feed_burner_entry.rb
|
141
|
+
- lib/feedjira/parser/atom_google_alerts.rb
|
142
|
+
- lib/feedjira/parser/atom_google_alerts_entry.rb
|
166
143
|
- lib/feedjira/parser/atom_youtube.rb
|
167
144
|
- lib/feedjira/parser/atom_youtube_entry.rb
|
145
|
+
- lib/feedjira/parser/globally_unique_identifier.rb
|
168
146
|
- lib/feedjira/parser/google_docs_atom.rb
|
169
147
|
- lib/feedjira/parser/google_docs_atom_entry.rb
|
170
148
|
- lib/feedjira/parser/itunes_rss.rb
|
@@ -180,6 +158,7 @@ files:
|
|
180
158
|
- lib/feedjira/parser/rss_feed_burner_entry.rb
|
181
159
|
- lib/feedjira/parser/rss_image.rb
|
182
160
|
- lib/feedjira/preprocessor.rb
|
161
|
+
- lib/feedjira/rss_entry_utilities.rb
|
183
162
|
- lib/feedjira/version.rb
|
184
163
|
- spec/feedjira/configuration_spec.rb
|
185
164
|
- spec/feedjira/date_time_utilities_spec.rb
|
@@ -189,6 +168,8 @@ files:
|
|
189
168
|
- spec/feedjira/parser/atom_entry_spec.rb
|
190
169
|
- spec/feedjira/parser/atom_feed_burner_entry_spec.rb
|
191
170
|
- spec/feedjira/parser/atom_feed_burner_spec.rb
|
171
|
+
- spec/feedjira/parser/atom_google_alerts_entry_spec.rb
|
172
|
+
- spec/feedjira/parser/atom_google_alerts_spec.rb
|
192
173
|
- spec/feedjira/parser/atom_spec.rb
|
193
174
|
- spec/feedjira/parser/atom_youtube_entry_spec.rb
|
194
175
|
- spec/feedjira/parser/atom_youtube_spec.rb
|
@@ -223,10 +204,12 @@ files:
|
|
223
204
|
- spec/sample_feeds/HuffPostCanada.xml
|
224
205
|
- spec/sample_feeds/ITunesWithSingleQuotedAttributes.xml
|
225
206
|
- spec/sample_feeds/ITunesWithSpacesInAttributes.xml
|
207
|
+
- spec/sample_feeds/InvalidDateFormat.xml
|
226
208
|
- spec/sample_feeds/PaulDixExplainsNothing.xml
|
227
209
|
- spec/sample_feeds/PaulDixExplainsNothingAlternate.xml
|
228
210
|
- spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml
|
229
211
|
- spec/sample_feeds/PaulDixExplainsNothingWFW.xml
|
212
|
+
- spec/sample_feeds/Permalinks.xml
|
230
213
|
- spec/sample_feeds/SamRuby.xml
|
231
214
|
- spec/sample_feeds/TechCrunch.xml
|
232
215
|
- spec/sample_feeds/TechCrunchFirstEntry.xml
|
@@ -235,17 +218,24 @@ files:
|
|
235
218
|
- spec/sample_feeds/TenderLovemakingFirstEntry.xml
|
236
219
|
- spec/sample_feeds/TrotterCashionHome.xml
|
237
220
|
- spec/sample_feeds/TypePadNews.xml
|
221
|
+
- spec/sample_feeds/a10.xml
|
222
|
+
- spec/sample_feeds/atom_simple_single_entry.xml
|
223
|
+
- spec/sample_feeds/atom_simple_single_entry_link_self.xml
|
238
224
|
- spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml
|
225
|
+
- spec/sample_feeds/google_alerts_atom.xml
|
239
226
|
- spec/sample_feeds/itunes.xml
|
240
227
|
- spec/sample_feeds/json_feed.json
|
241
228
|
- spec/sample_feeds/pet_atom.xml
|
242
229
|
- spec/sample_feeds/youtube_atom.xml
|
243
230
|
- spec/spec_helper.rb
|
244
|
-
homepage:
|
231
|
+
homepage: https://github.com/feedjira/feedjira
|
245
232
|
licenses:
|
246
233
|
- MIT
|
247
|
-
metadata:
|
248
|
-
|
234
|
+
metadata:
|
235
|
+
homepage_uri: https://github.com/feedjira/feedjira
|
236
|
+
source_code_uri: https://github.com/feedjira/feedjira
|
237
|
+
changelog_uri: https://github.com/feedjira/feedjira/blob/master/CHANGELOG.md
|
238
|
+
post_install_message:
|
249
239
|
rdoc_options: []
|
250
240
|
require_paths:
|
251
241
|
- lib
|
@@ -253,16 +243,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
253
243
|
requirements:
|
254
244
|
- - ">="
|
255
245
|
- !ruby/object:Gem::Version
|
256
|
-
version:
|
246
|
+
version: '2.5'
|
257
247
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
248
|
requirements:
|
259
|
-
- - "
|
249
|
+
- - ">="
|
260
250
|
- !ruby/object:Gem::Version
|
261
|
-
version:
|
251
|
+
version: '0'
|
262
252
|
requirements: []
|
263
|
-
|
264
|
-
|
265
|
-
signing_key:
|
253
|
+
rubygems_version: 3.2.3
|
254
|
+
signing_key:
|
266
255
|
specification_version: 4
|
267
256
|
summary: A feed parsing library
|
268
257
|
test_files:
|
@@ -274,6 +263,8 @@ test_files:
|
|
274
263
|
- spec/feedjira/parser/atom_entry_spec.rb
|
275
264
|
- spec/feedjira/parser/atom_feed_burner_entry_spec.rb
|
276
265
|
- spec/feedjira/parser/atom_feed_burner_spec.rb
|
266
|
+
- spec/feedjira/parser/atom_google_alerts_entry_spec.rb
|
267
|
+
- spec/feedjira/parser/atom_google_alerts_spec.rb
|
277
268
|
- spec/feedjira/parser/atom_spec.rb
|
278
269
|
- spec/feedjira/parser/atom_youtube_entry_spec.rb
|
279
270
|
- spec/feedjira/parser/atom_youtube_spec.rb
|
@@ -308,10 +299,12 @@ test_files:
|
|
308
299
|
- spec/sample_feeds/HuffPostCanada.xml
|
309
300
|
- spec/sample_feeds/ITunesWithSingleQuotedAttributes.xml
|
310
301
|
- spec/sample_feeds/ITunesWithSpacesInAttributes.xml
|
302
|
+
- spec/sample_feeds/InvalidDateFormat.xml
|
311
303
|
- spec/sample_feeds/PaulDixExplainsNothing.xml
|
312
304
|
- spec/sample_feeds/PaulDixExplainsNothingAlternate.xml
|
313
305
|
- spec/sample_feeds/PaulDixExplainsNothingFirstEntryContent.xml
|
314
306
|
- spec/sample_feeds/PaulDixExplainsNothingWFW.xml
|
307
|
+
- spec/sample_feeds/Permalinks.xml
|
315
308
|
- spec/sample_feeds/SamRuby.xml
|
316
309
|
- spec/sample_feeds/TechCrunch.xml
|
317
310
|
- spec/sample_feeds/TechCrunchFirstEntry.xml
|
@@ -320,7 +313,11 @@ test_files:
|
|
320
313
|
- spec/sample_feeds/TenderLovemakingFirstEntry.xml
|
321
314
|
- spec/sample_feeds/TrotterCashionHome.xml
|
322
315
|
- spec/sample_feeds/TypePadNews.xml
|
316
|
+
- spec/sample_feeds/a10.xml
|
317
|
+
- spec/sample_feeds/atom_simple_single_entry.xml
|
318
|
+
- spec/sample_feeds/atom_simple_single_entry_link_self.xml
|
323
319
|
- spec/sample_feeds/atom_with_link_tag_for_url_unmarked.xml
|
320
|
+
- spec/sample_feeds/google_alerts_atom.xml
|
324
321
|
- spec/sample_feeds/itunes.xml
|
325
322
|
- spec/sample_feeds/json_feed.json
|
326
323
|
- spec/sample_feeds/pet_atom.xml
|
data/.travis.yml
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
cache: bundler
|
4
|
-
|
5
|
-
rvm:
|
6
|
-
- 2.2
|
7
|
-
- 2.3
|
8
|
-
- 2.4
|
9
|
-
- jruby-9
|
10
|
-
- ruby-head
|
11
|
-
|
12
|
-
env:
|
13
|
-
- HANDLER=nokogiri
|
14
|
-
- HANDLER=ox
|
15
|
-
- HANDLER=oga
|
16
|
-
|
17
|
-
matrix:
|
18
|
-
fast_finish: true
|
19
|
-
allow_failures:
|
20
|
-
- rvm: jruby-9
|
21
|
-
- rvm: ruby-head
|
22
|
-
exclude:
|
23
|
-
- rvm: jruby-9
|
24
|
-
env: HANDLER=ox
|
25
|
-
|
26
|
-
before_install:
|
27
|
-
- gem update bundler
|
28
|
-
|
29
|
-
script:
|
30
|
-
- bundle exec rake
|
31
|
-
- bundle exec danger
|
32
|
-
|
33
|
-
notifications:
|
34
|
-
email: false
|
35
|
-
webhooks:
|
36
|
-
urls:
|
37
|
-
secure: XjoUz2rPXFHnitw//jN4qA92jq7bH19iOI/5KnuptLzz5HrWq1VAXxAr/Fh0KxYZT29G/9i5szaHX1QacfO7he4xa2tZKudRL70Dw3KRLgqLi70G6kFuZYlh+MgMHZy6KwZ/4/250wO31fpv24PCb2M56iTsev2g2uporeobO0Q=
|
data/Dangerfile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
commit_lint.check(warn: :all)
|