bf_multi_rss 0.1.2 → 0.1.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: 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