rssly 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25eaa53235e3ff7b4810a2d4a6b4dd900f5610ad
4
- data.tar.gz: 38602296454922cea9ff3d0ec88a5b840a626762
3
+ metadata.gz: 40b604e802d282cf7b48e9efaad73aa6d68787fd
4
+ data.tar.gz: 80610e76b8abd289d264974c4585fe83eb0bdfb2
5
5
  SHA512:
6
- metadata.gz: a99bc70e2a15a275fd315d1553c1c82e880d3583ab646c922c69a2f90d756549b2706fed9d2ccc521db296941485bdac2c00ab90b7a0918e1cc3c84cb835fab9
7
- data.tar.gz: 5a95cd19d6b3cf6a7e6eabee10ebfbc29b6b94fd45fe587888c68ff93165f0976a80f8d8ee1f0a2164ba2d8c4e12ebd69efa4a9dc0b51b82b1353b6b0a1bff0b
6
+ metadata.gz: 0612dc50a7f4040db82c31a147358fa263ab1b50b28fde3461e9df323f4e300855a3b4e41cbda5d3fdc4942c564913841bb1744ff9c479f15809c028593a3cdc
7
+ data.tar.gz: 4e7c5c5b9bbce27abbd7aad695607ffc1fdadcc0111b5c62d92c2e66df6322e7114523e7a0fa0373d8d1b5da4d7ed88d1d9b4091fc62f53f631577f202815e44
data/lib/rssly/feed.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'feedjira'
2
2
  require 'feedbag'
3
+ require 'rfeedfinder'
3
4
 
4
5
  module Rssly
5
6
  # Represents a single rss feed and it's metadata
@@ -8,12 +9,10 @@ module Rssly
8
9
  end
9
10
 
10
11
  attr_accessor :url
11
- attr_accessor :title
12
12
  attr_accessor :articles
13
13
 
14
- def initialize(title: nil, url: nil)
14
+ def initialize(url: nil)
15
15
  self.url = url
16
- self.title = title
17
16
  end
18
17
 
19
18
  def articles
@@ -23,16 +22,19 @@ module Rssly
23
22
  private
24
23
 
25
24
  def fetch_articles
26
- urls = [@url]
27
- urls = Feedbag.find(@url) if Rssly::CONFIG[:discover_feeds]
28
- result = Feedjira::Feed.fetch_and_parse(*urls)
29
- self.title = result.title
30
- result.entries.map do |obj|
31
- Article.create_from_feedjira_entry(obj)
25
+ urls = if Rssly::CONFIG[:discover_feeds]
26
+ ([@url] + Feedbag.find(@url) + Rfeedfinder.feeds(@url))
27
+ .flatten.uniq.compact
28
+ else [@url]
29
+ end
30
+
31
+ Feedjira::Feed.fetch_and_parse(urls).values.select do |result|
32
+ result.class.name.start_with?('Feedjira::')
33
+ end.reduce([]) do |a, result|
34
+ a + result.entries.map { |o| Article.create_from_feedjira_entry(o) }
32
35
  end
33
36
  rescue RuntimeError
34
- raise Rssly::HTTPError,
35
- "Could not fetch articles for feed: #{url}"
37
+ raise Rssly::HTTPError, "Could not fetch articles for feed: #{url}"
36
38
  end
37
39
  end
38
40
  end
data/lib/rssly/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rssly
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/rssly.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ["lib"]
23
23
 
24
24
  spec.add_dependency "feedbag", "~> 0.9"
25
+ spec.add_dependency "rfeedfinder", "~> 0.9"
25
26
  spec.add_dependency "feedjira", "~> 1.1"
26
27
  spec.add_dependency "ruby-readability", "~> 0.6"
27
28
  spec.add_dependency "sanitize", "~> 2.1"
@@ -4,7 +4,7 @@ require 'active_support/core_ext'
4
4
 
5
5
  describe 'Rssly::Collection' do
6
6
 
7
- COLLECTION_TEST_URL = 'news.ycombinator.com/rss'
7
+ COLLECTION_TEST_URL = 'https://news.ycombinator.com/rss'
8
8
  COLLECTION_ARTICLE_TEST_URL = \
9
9
  'http://blog.ycombinator.com/meet-the-people-taking-over-hacker-news'
10
10
 
data/spec/feed_spec.rb CHANGED
@@ -3,9 +3,10 @@ require 'rssly'
3
3
 
4
4
  describe 'Rssly::Feed' do
5
5
 
6
- FEED_TEST_URL = 'news.ycombinator.com/rss'
6
+ FEED_TEST_URL = 'https://news.ycombinator.com/'
7
7
 
8
8
  before do
9
+ Rssly::CONFIG[:discover_feeds] = true
9
10
  @feed = Rssly::Feed.new(url: FEED_TEST_URL)
10
11
  end
11
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rssly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Kot
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rfeedfinder
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '0.9'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: feedjira
29
43
  requirement: !ruby/object:Gem::Requirement