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.
Files changed (89) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE/feed-parsing.md +15 -0
  3. data/.github/workflows/ruby.yml +39 -0
  4. data/.rubocop.yml +18 -628
  5. data/.rubocop_todo.yml +11 -0
  6. data/CHANGELOG.md +66 -9
  7. data/Gemfile +4 -1
  8. data/README.md +10 -1
  9. data/Rakefile +3 -1
  10. data/feedjira.gemspec +14 -12
  11. data/lib/feedjira.rb +9 -3
  12. data/lib/feedjira/atom_entry_utilities.rb +51 -0
  13. data/lib/feedjira/configuration.rb +6 -3
  14. data/lib/feedjira/core_ext.rb +2 -0
  15. data/lib/feedjira/core_ext/date.rb +3 -2
  16. data/lib/feedjira/core_ext/string.rb +2 -1
  17. data/lib/feedjira/core_ext/time.rb +10 -10
  18. data/lib/feedjira/date_time_utilities.rb +8 -10
  19. data/lib/feedjira/date_time_utilities/date_time_epoch_parser.rb +3 -2
  20. data/lib/feedjira/date_time_utilities/date_time_language_parser.rb +4 -4
  21. data/lib/feedjira/date_time_utilities/date_time_pattern_parser.rb +9 -13
  22. data/lib/feedjira/feed.rb +3 -3
  23. data/lib/feedjira/feed_entry_utilities.rb +15 -8
  24. data/lib/feedjira/feed_utilities.rb +5 -4
  25. data/lib/feedjira/parser.rb +2 -0
  26. data/lib/feedjira/parser/atom.rb +5 -7
  27. data/lib/feedjira/parser/atom_entry.rb +4 -21
  28. data/lib/feedjira/parser/atom_feed_burner.rb +4 -3
  29. data/lib/feedjira/parser/atom_feed_burner_entry.rb +7 -18
  30. data/lib/feedjira/parser/atom_google_alerts.rb +26 -0
  31. data/lib/feedjira/parser/atom_google_alerts_entry.rb +21 -0
  32. data/lib/feedjira/parser/atom_youtube.rb +2 -1
  33. data/lib/feedjira/parser/atom_youtube_entry.rb +8 -7
  34. data/lib/feedjira/parser/globally_unique_identifier.rb +21 -0
  35. data/lib/feedjira/parser/google_docs_atom.rb +4 -4
  36. data/lib/feedjira/parser/google_docs_atom_entry.rb +3 -19
  37. data/lib/feedjira/parser/itunes_rss.rb +4 -3
  38. data/lib/feedjira/parser/itunes_rss_category.rb +6 -5
  39. data/lib/feedjira/parser/itunes_rss_item.rb +5 -8
  40. data/lib/feedjira/parser/itunes_rss_owner.rb +2 -1
  41. data/lib/feedjira/parser/json_feed.rb +4 -2
  42. data/lib/feedjira/parser/json_feed_item.rb +7 -1
  43. data/lib/feedjira/parser/podlove_chapter.rb +3 -2
  44. data/lib/feedjira/parser/rss.rb +4 -2
  45. data/lib/feedjira/parser/rss_entry.rb +3 -28
  46. data/lib/feedjira/parser/rss_feed_burner.rb +3 -2
  47. data/lib/feedjira/parser/rss_feed_burner_entry.rb +6 -26
  48. data/lib/feedjira/parser/rss_image.rb +2 -0
  49. data/lib/feedjira/preprocessor.rb +3 -3
  50. data/lib/feedjira/rss_entry_utilities.rb +53 -0
  51. data/lib/feedjira/version.rb +3 -1
  52. data/spec/feedjira/configuration_spec.rb +5 -3
  53. data/spec/feedjira/date_time_utilities_spec.rb +2 -0
  54. data/spec/feedjira/feed_entry_utilities_spec.rb +4 -2
  55. data/spec/feedjira/feed_spec.rb +3 -1
  56. data/spec/feedjira/feed_utilities_spec.rb +5 -3
  57. data/spec/feedjira/parser/atom_entry_spec.rb +7 -4
  58. data/spec/feedjira/parser/atom_feed_burner_entry_spec.rb +7 -5
  59. data/spec/feedjira/parser/atom_feed_burner_spec.rb +4 -2
  60. data/spec/feedjira/parser/atom_google_alerts_entry_spec.rb +34 -0
  61. data/spec/feedjira/parser/atom_google_alerts_spec.rb +62 -0
  62. data/spec/feedjira/parser/atom_spec.rb +30 -9
  63. data/spec/feedjira/parser/atom_youtube_entry_spec.rb +8 -6
  64. data/spec/feedjira/parser/atom_youtube_spec.rb +6 -4
  65. data/spec/feedjira/parser/google_docs_atom_entry_spec.rb +2 -0
  66. data/spec/feedjira/parser/google_docs_atom_spec.rb +2 -0
  67. data/spec/feedjira/parser/itunes_rss_item_spec.rb +3 -1
  68. data/spec/feedjira/parser/itunes_rss_owner_spec.rb +2 -0
  69. data/spec/feedjira/parser/itunes_rss_spec.rb +11 -9
  70. data/spec/feedjira/parser/json_feed_item_spec.rb +5 -3
  71. data/spec/feedjira/parser/json_feed_spec.rb +2 -0
  72. data/spec/feedjira/parser/podlove_chapter_spec.rb +2 -0
  73. data/spec/feedjira/parser/rss_entry_spec.rb +26 -4
  74. data/spec/feedjira/parser/rss_feed_burner_entry_spec.rb +9 -7
  75. data/spec/feedjira/parser/rss_feed_burner_spec.rb +3 -1
  76. data/spec/feedjira/parser/rss_spec.rb +2 -0
  77. data/spec/feedjira/preprocessor_spec.rb +4 -2
  78. data/spec/feedjira_spec.rb +22 -1
  79. data/spec/sample_feeds.rb +7 -3
  80. data/spec/sample_feeds/InvalidDateFormat.xml +20 -0
  81. data/spec/sample_feeds/Permalinks.xml +22 -0
  82. data/spec/sample_feeds/a10.xml +72 -0
  83. data/spec/sample_feeds/atom_simple_single_entry.xml +17 -0
  84. data/spec/sample_feeds/atom_simple_single_entry_link_self.xml +17 -0
  85. data/spec/sample_feeds/google_alerts_atom.xml +1 -0
  86. data/spec/spec_helper.rb +3 -7
  87. metadata +44 -47
  88. data/.travis.yml +0 -37
  89. 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 &lt;b&gt;Slack&lt;/b&gt; Market by Top key players like Haldex, Meritor, Bendix ...</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;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/&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNHUcRGtHY1ygcMDkVS68IgpYs7Wpg"></link> <published>2019-07-10T11:53:37Z</published> <updated>2019-07-10T11:53:37Z</updated> <content type="html">Automotive &lt;b&gt;Slack&lt;/b&gt; Market reports provides a comprehensive overview of the global market size and share. It provides strategists, marketers and senior&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:13685523368333461374</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; Stock Has a Compelling Story and the Numbers to Back It Up</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://investorplace.com/2019/07/slack-stock-truly-compelling/&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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 &lt;b&gt;Slack&lt;/b&gt; Technologies Inc (NYSE:WORK), much of the news coverage centered on the Company&amp;#39;s decision to go public via&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:16151843349267390757</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) Insider Cal Henderson Sells 1500 Shares</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://rivertonroll.com/news/2019/07/10/slack-nasdaqwork-insider-cal-henderson-sells-1500-shares-3.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNGa9L5blE9C_ZfDAAvEn2wd4T6SMg"></link> <published>2019-07-10T11:36:15Z</published> <updated>2019-07-10T11:36:15Z</updated> <content type="html">&lt;b&gt;Slack&lt;/b&gt; (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&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:1835132116100339822</id> <title type="html">Recode Daily: &lt;b&gt;Slack&lt;/b&gt; has a Snap problem</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://www.vox.com/2019/7/10/20688476/recode-daily-slack-has-a-snap-problem&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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 &lt;b&gt;Slack&lt;/b&gt; what Facebook was to Snapchat: a copier and a killer. The workplace messaging software &lt;b&gt;Slack&lt;/b&gt; is losing ground to&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:991231131852743341</id> <title type="html">Global Automotive &lt;b&gt;Slack&lt;/b&gt; Market Revenue Share by Players: Haldex, Meritor, Bendix, MEI, Wabco</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://www.globalindustryjournal.us/183648/global-automotive-slack-market-revenue-share-by-players-haldex-meritor-bendix-mei-wabco/&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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 &lt;b&gt;Slack&lt;/b&gt; Market, enfolding details of market competition, trends,&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:6847164010869268236</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) Director Sells $39655442.33 in Stock</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://mayfieldrecorder.com/2019/07/10/slack-nasdaqwork-director-chamath-palihapitiya-sells-1017067-shares.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNHgq8lH_XYoxtARd4wwG1AachxXBg"></link> <published>2019-07-10T05:48:45Z</published> <updated>2019-07-10T05:48:45Z</updated> <content type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) Director Chamath Palihapitiya sold 1,017,067 shares of the firm&amp;#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">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) Insider Cal Henderson Sells 99342 Shares</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://mayfieldrecorder.com/2019/07/10/slack-nasdaqwork-insider-cal-henderson-sells-99342-shares-of-stock.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNFq39KMesisexj52u8TlmigPkty1g"></link> <published>2019-07-10T05:48:45Z</published> <updated>2019-07-10T05:48:45Z</updated> <content type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) insider Cal Henderson sold 99,342 shares of the firm&amp;#39;s stock in a transaction on Friday, June 21st. The shares were sold at an&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:676733747034138159</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; Wax Market 2019 Global Industry Growth, Historical Analysis, Size, Trends, Emerging ...</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;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/&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNGSN1zkCT-nKy9XVtCuwP2Vtr_HMQ"></link> <published>2019-07-10T05:37:30Z</published> <updated>2019-07-10T05:37:30Z</updated> <content type="html">Global “&lt;b&gt;Slack&lt;/b&gt; Wax Market” 2019 Industry research report provides an In-Depth analysis that includes an executive summary, definition, and scope of&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:18336572245163291818</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) SVP Sells $14409915.40 in Stock</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://techknowbits.com/2019/07/10/slack-nasdaqwork-svp-robert-frati-sells-376238-shares-of-stock.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNFkHaZhjSnl6JinAe2lasaG3oKGAg"></link> <published>2019-07-10T05:03:45Z</published> <updated>2019-07-10T05:03:45Z</updated> <content type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) SVP Robert Frati sold 376,238 shares of the company&amp;#39;s stock in a transaction that occurred on Friday, June 21st. The stock&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:2703912120395789266</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) CFO Sells $19407875.75 in Stock</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://techknowbits.com/2019/07/10/slack-nasdaqwork-cfo-allen-shim-sells-502925-shares-of-stock.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNEXxF5Cfnhwz-SxZFQPvgjPUmgGVQ"></link> <published>2019-07-10T05:03:45Z</published> <updated>2019-07-10T05:03:45Z</updated> <content type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) CFO Allen Shim sold 502,925 shares of the company&amp;#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">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) CEO Sells $53170714.63 in Stock</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://mayfieldrecorder.com/2019/07/10/slack-nasdaqwork-ceo-stewart-butterfield-sells-1360909-shares.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNFU3yaWB2ZAMHAEg88g4swT73wfUQ"></link> <published>2019-07-10T05:03:45Z</published> <updated>2019-07-10T05:03:45Z</updated> <content type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) CEO Stewart Butterfield sold 1,360,909 shares of &lt;b&gt;Slack&lt;/b&gt; stock in a transaction on Friday, June 21st. The shares were sold at&amp;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&amp;sa=t&amp;url=http://www.valleybreeze.com/2019-07-09/pawtucket/pineview-advances-district-ii-playoffs&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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 &lt;b&gt;Slack&lt;/b&gt;, right, tries to tag out Rumford runner James Lynch, who slides into second with a double in the second&amp;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&amp;sa=t&amp;url=http://marketnewswire24.us/17010/global-enterprise-collaboration-software-market-2019-ibm-corporation-microsoft-corporation-slack-technologies-inc/&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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, &lt;b&gt;Slack&lt;/b&gt; technologies,&amp;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&amp;sa=t&amp;url=https://www.sacbee.com/news/local/crime/article232483667.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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&amp;#39;s handler, also was shot through the &lt;b&gt;slack&lt;/b&gt; 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 &lt;b&gt;Slack&lt;/b&gt; Adjuster 3150 Market Report – A Complete Overview of Market Segments and ...</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;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/&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNHKbCms6OnCO67WnO8_fhejvqS4Bg"></link> <published>2019-07-10T03:22:30Z</published> <updated>2019-07-10T03:22:30Z</updated> <content type="html">This Automotive &lt;b&gt;Slack&lt;/b&gt; Adjuster 3150 market report presents a comprehensive overview, market shares, and growth opportunities of Automotive &lt;b&gt;Slack&lt;/b&gt;&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:16965181355074777371</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; and Spotify debuts tempt companies to cut out the middlemen</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://www.ft.com/content/6ee262ba-a1f5-11e9-974c-ad1c6ab5efd1&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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 &lt;b&gt;Slack&lt;/b&gt; bypassed convention with a “direct listing,” where shares become tradable on an exchange, but no money is&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:13555337362872998403</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; Technologies, Inc. (NYSE:WORK) Has Witnessed Cash Flow Change of</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://thestockminute.com/slack-technologies-inc-nysework-has-witnessed-cash-flow-change-of/48532/&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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. &lt;b&gt;Slack&lt;/b&gt;&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:443267995170339225</id> <title type="html">Insider Selling: &lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) Insider Sells 1500 Shares of Stock</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://rivertonroll.com/news/2019/07/09/slack-nasdaqwork-insider-cal-henderson-sells-1500-shares-2.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNF7JwPeGB209qmU1JTDp36eQBFexA"></link> <published>2019-07-10T01:30:00Z</published> <updated>2019-07-10T01:30:00Z</updated> <content type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) insider Cal Henderson sold 1,500 shares of &lt;b&gt;Slack&lt;/b&gt; stock in a transaction dated Friday, June 28th. The shares were sold at an&amp;nbsp;...</content> <author> <name></name> </author> </entry><entry> <id>tag:google.com,2013:googlealerts/feed:13952751448219995557</id> <title type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) CEO Sells $91750.00 in Stock</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://rivertonroll.com/news/2019/07/09/insider-selling-slack-nasdaqwork-ceo-sells-2500-shares-of-stock.html&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;usg=AFQjCNFpplJXjDKxXBAEKaxL4p87dlJXVg"></link> <published>2019-07-10T00:45:00Z</published> <updated>2019-07-10T00:45:00Z</updated> <content type="html">&lt;b&gt;Slack&lt;/b&gt; (NASDAQ:WORK) CEO Stewart Butterfield sold 2,500 shares of the firm&amp;#39;s stock in a transaction that occurred on Friday, June 28th. The shares&amp;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 &lt;b&gt;Slack&lt;/b&gt;</title> <link href="https://www.google.com/url?rct=j&amp;sa=t&amp;url=https://mspoweruser.com/latest-research-shows-microsoft-teams-is-stomping-slack/&amp;ct=ga&amp;cd=CAIyHGU4ZTJkZjQ3OTVkYmIzMTc6Y28uanA6ZW46SlA&amp;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 &lt;b&gt;Slack&lt;/b&gt; is losing ground to Microsoft Teams, especially with&amp;nbsp;...</content> <author> <name></name> </author> </entry> </feed>
data/spec/spec_helper.rb CHANGED
@@ -1,14 +1,10 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../lib/feedjira")
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.0.0.beta1
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: 2017-12-22 00:00:00.000000000 Z
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: '2.0'
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: '2.0'
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: danger
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: feedjira@gmail.com
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
- - ".travis.yml"
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: http://feedjira.com
231
+ homepage: https://github.com/feedjira/feedjira
245
232
  licenses:
246
233
  - MIT
247
- metadata: {}
248
- post_install_message:
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: 1.9.3
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: 1.3.1
251
+ version: '0'
262
252
  requirements: []
263
- rubyforge_project:
264
- rubygems_version: 2.6.13
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)