rssly 0.0.2 → 0.0.3

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
  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