bf_multi_rss 0.1.2 → 0.1.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: d4dd9f7c10abc4394792915b13e87f961723821f
4
- data.tar.gz: 5b77a813ade2e9507e408aa43889952c960b01db
3
+ metadata.gz: c7f175aa56cffc45f9444cc0634caa642dca7191
4
+ data.tar.gz: 68289a8e7511fb0b6ccf04047c265b4b31f49011
5
5
  SHA512:
6
- metadata.gz: f408d450ded29fecb5ea07ea601a9bd54aaa5a36ef12e0f914e86fb1b58db13516f392a882228b536c69288609e0826130895c01e64c6555d2492a4eb2556fd0
7
- data.tar.gz: 842e9c7b3ab7e16599a915262e4183c16d230aec2665c8b8d8f43e642b0acb4e32a58658f3a6c9445ad2125ee4b94c1a62c4b659f13c61c94fea4b6a61898f0c
6
+ metadata.gz: 0c76bcb788b07204de584f9d49c5b9c5c21d504ef924196bcd433e3d3e3c94f458f2726bbf8ad8b09d8e4c96cc1a5c15283720aef4bbe61b688d786cc08a67e9
7
+ data.tar.gz: 7f4723f3468a9bb6da2eaaffbd459b68e308918c58e9ea052955ad533d48723d0fb8eac75ec7c4f997648e4bb8d62163313c5255118c9e9a9e1b260fe8000b36
@@ -14,45 +14,52 @@ class RssResult
14
14
  end
15
15
 
16
16
  module BfMultiRss
17
- def self.fetch_rss(uri)
18
- response = HTTP.get(uri)
19
-
20
- if response.status == 500
21
- err = 'Http500'
22
- raise err
17
+ class Fetcher
18
+ attr_reader :concurrency
19
+ def initialize(concurrency = 4)
20
+ @concurrency = concurrency
23
21
  end
24
22
 
25
- if response.status == 404
26
- err = 'Http404'
27
- raise err
28
- end
23
+ def self.fetch_rss(uri)
24
+ response = HTTP.get(uri)
29
25
 
30
- if response.status == 301
31
- err = 'Http301'
32
- raise err
33
- end
26
+ if response.status == 500
27
+ err = 'Http500'
28
+ raise err
29
+ end
34
30
 
35
- rss = RSS::Parser.parse(response.to_s, false)
36
- rss.items
37
- end
31
+ if response.status == 404
32
+ err = 'Http404'
33
+ raise err
34
+ end
35
+
36
+ if response.status == 301
37
+ err = 'Http301'
38
+ raise err
39
+ end
40
+
41
+ rss = RSS::Parser.parse(response.to_s, false)
42
+ rss.items
43
+ end
38
44
 
39
- def self.fetch_all(uris)
40
- Parallel.map(
41
- uris,
42
- in_processes: 8
43
- ) do |uri|
44
- begin
45
- posts = fetch_rss(uri)
46
- RssResult.new(uri, posts)
47
- rescue REXML::ParseException,
48
- OpenURI::HTTPError,
49
- Errno::EHOSTUNREACH,
50
- RSS::NotWellFormedError,
51
- Net::OpenTimeout,
52
- Net::ReadTimeout,
53
- Errno::ECONNREFUSED,
54
- Errno::ECONNRESET
55
- next
45
+ def self.fetch_all(uris)
46
+ Parallel.map(
47
+ uris,
48
+ in_processes: @concurrency
49
+ ) do |uri|
50
+ begin
51
+ posts = fetch_rss(uri)
52
+ RssResult.new(uri, posts)
53
+ rescue REXML::ParseException,
54
+ OpenURI::HTTPError,
55
+ Errno::EHOSTUNREACH,
56
+ RSS::NotWellFormedError,
57
+ Net::OpenTimeout,
58
+ Net::ReadTimeout,
59
+ Errno::ECONNREFUSED,
60
+ Errno::ECONNRESET
61
+ next
62
+ end
56
63
  end
57
64
  end
58
65
  end
@@ -1,3 +1,3 @@
1
1
  module BfMultiRss
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.1.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bf_multi_rss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Schürmann