rrimm 0.7.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZWViZWY1NjQwNTJkZTQ2NjJhM2U1OWUxODg2ZDY0YzNmZWExN2YyMQ==
5
- data.tar.gz: !binary |-
6
- M2IwMmJjNDAyYTc5ZTgwZGQxZTUzN2UwZjU1OGIxZGQwOTg5OTFjMw==
2
+ SHA1:
3
+ metadata.gz: c42c07425e1b028e898d4c64689e6fa2ec799d09
4
+ data.tar.gz: 0013f94a2a64982c3cf6dd21c0566b2561a1da8c
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YTQ1OGZhYmE1ZDYyYmVkNjNjOGM2MzdhYzQ5MjAyMGNhOWVkYWU4NTk1OTcx
10
- ZjQyODY0YjRkYWUwZTFkZGE4NTU3ZDQ3NDQ3ODZkMjQ2OTk4ZGNkZTk2NjNm
11
- NjQ0NGExYmY1YmNhNTU2YTJiNDE1MzQ0NDdhZDE2ZjBmNjhjMTc=
12
- data.tar.gz: !binary |-
13
- NjY5YTc0YWM3ZGVkMGFiZDQ4NzM4Yzk1MDc2YjRiMjc2YjNkMGRmMTllZTQy
14
- NmM4OGU1ZjE2ZTJlZjY2YzA3NWRhNTNjZjUwNjEyMTExM2EwNjE0ZDMxMGEw
15
- N2QxOTQxYjdmNGZlMjU3N2UxOGU5MmI0NWE0MTAzZTQwMmRlOGM=
6
+ metadata.gz: a4e8d1fc6cb0e9ffbc6263011bb32dd635f42bd15b926dcc819946789c4b7cfe75f4a0fe9ed11337175a28df6029e33f0ad534111b88548b8ed7f14a9ef723ff
7
+ data.tar.gz: 3f2a69c9f8c8fa8b9598270db124cadc71701ad147c914baee7e1b8f67c3ffe7a98bb0d3e9e2e3f18ae33de2952bb85be2f28e6d0631916dbaf8880df4580f41
data/.travis.yml CHANGED
@@ -1,7 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
- - 2.0.0
5
3
  - 2.1.0
6
4
  - ruby-head
7
5
  addons:
@@ -16,3 +14,6 @@ deploy:
16
14
  on:
17
15
  tags: true
18
16
  repo: kamaradclimber/rrimm
17
+ env:
18
+ global:
19
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
data/Gemfile.lock CHANGED
@@ -1,40 +1,41 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rrimm (0.7.2)
4
+ rrimm (0.9.0)
5
5
  colorize
6
6
  feedjira
7
7
  open_uri_redirections
8
8
  parallel
9
+ ruby-progressbar
9
10
 
10
11
  GEM
11
12
  remote: https://rubygems.org/
12
13
  specs:
13
14
  codeclimate-test-reporter (0.3.0)
14
15
  simplecov (>= 0.7.1, < 1.0.0)
15
- colorize (0.7.2)
16
+ colorize (0.7.3)
16
17
  coveralls (0.7.0)
17
18
  multi_json (~> 1.3)
18
19
  rest-client
19
20
  simplecov (>= 0.7)
20
21
  term-ansicolor
21
22
  thor
22
- curb (0.8.5)
23
+ curb (0.8.6)
23
24
  diff-lcs (1.2.5)
24
25
  docile (1.1.3)
25
- feedjira (1.2.0)
26
- curb (~> 0.8.1)
27
- loofah (~> 1.2.1)
28
- sax-machine (~> 0.2.1)
29
- loofah (1.2.1)
30
- nokogiri (>= 1.4.4)
26
+ feedjira (1.4.0)
27
+ curb (~> 0.8)
28
+ loofah (~> 2.0)
29
+ sax-machine (~> 1.0)
30
+ loofah (2.0.1)
31
+ nokogiri (>= 1.5.9)
31
32
  mime-types (2.1)
32
- mini_portile (0.5.3)
33
+ mini_portile (0.6.0)
33
34
  multi_json (1.9.0)
34
- nokogiri (1.6.1)
35
- mini_portile (~> 0.5.0)
35
+ nokogiri (1.6.3.1)
36
+ mini_portile (= 0.6.0)
36
37
  open_uri_redirections (0.1.4)
37
- parallel (1.0.0)
38
+ parallel (1.3.2)
38
39
  rest-client (1.6.7)
39
40
  mime-types (>= 1.16)
40
41
  rspec (2.14.1)
@@ -45,8 +46,8 @@ GEM
45
46
  rspec-expectations (2.14.5)
46
47
  diff-lcs (>= 1.1.3, < 2.0)
47
48
  rspec-mocks (2.14.6)
48
- sax-machine (0.2.1)
49
- nokogiri (~> 1.6.0)
49
+ ruby-progressbar (1.6.0)
50
+ sax-machine (1.0.2)
50
51
  simplecov (0.8.2)
51
52
  docile (~> 1.1.0)
52
53
  multi_json
data/lib/rrimm/fetcher.rb CHANGED
@@ -2,6 +2,7 @@ require 'feedjira'
2
2
  require 'open-uri'
3
3
  require 'open_uri_redirections'
4
4
  require 'parallel'
5
+ require 'timeout'
5
6
 
6
7
  module RRImm
7
8
  class Fetcher
@@ -22,7 +23,8 @@ module RRImm
22
23
  end
23
24
 
24
25
  def parallel_fetch(concurrency)
25
- Parallel.map(@config.feeds, :in_threads => concurrency) do |name,feed_config|
26
+ Parallel.map(@config.feeds, :in_threads => concurrency, :progress => "fetching") do |name,feed_config|
27
+ @quiet = true
26
28
  fetch_feed(name, feed_config)
27
29
  end
28
30
  end
@@ -34,8 +36,18 @@ module RRImm
34
36
  end
35
37
 
36
38
  def fetch_feed(name, feed_config)
39
+ begin
40
+ Timeout::timeout(30) do
41
+ fetch_feed_no_timeout(name, feed_config)
42
+ end
43
+ rescue Timeout::Error
44
+ puts "#{name} timeout after 30 seconds"
45
+ end
46
+ end
47
+
48
+ def fetch_feed_no_timeout(name, feed_config)
37
49
  last_read = Time.at(@config.get_cache.read(feed_config))
38
- puts name unless @quiet
50
+ print name unless @quiet
39
51
  feed = Feedjira::Feed.fetch_and_parse(feed_config.uri)
40
52
  if feed.respond_to? :entries
41
53
  items = feed.entries.select { |item| item.published > last_read }
@@ -45,6 +57,7 @@ module RRImm
45
57
  end
46
58
  @config.get_cache.save(feed_config, last_read.to_i, false)
47
59
  end
60
+ puts " (#{items.size rescue nil})" unless @quiet
48
61
  end
49
62
  end
50
63
  end
data/rrimm.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rrimm'
3
- s.version = '0.7.2'
3
+ s.version = '0.9.0'
4
4
  s.licenses = ['Apache Licence v2']
5
5
  s.summary = "RSS to email tool"
6
6
  s.description = "imm reboot in ruby. Retrieve rss feeds and send them by email"
@@ -13,6 +13,7 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.add_dependency 'open_uri_redirections'
15
15
  s.add_dependency 'parallel'
16
+ s.add_dependency 'ruby-progressbar'
16
17
  s.add_dependency 'feedjira'
17
18
  s.add_dependency 'colorize'
18
19
 
metadata CHANGED
@@ -1,111 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rrimm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grégoire Seux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-14 00:00:00.000000000 Z
11
+ date: 2014-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: open_uri_redirections
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: parallel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: ruby-progressbar
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: feedjira
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ! '>='
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
61
  version: '0'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ! '>='
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: colorize
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ! '>='
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ! '>='
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ! '>='
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: '0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ! '>='
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: coveralls
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ! '>='
101
+ - - ">="
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ! '>='
108
+ - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: codeclimate-test-reporter
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ! '>='
115
+ - - ">="
102
116
  - !ruby/object:Gem::Version
103
117
  version: '0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ! '>='
122
+ - - ">="
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  description: imm reboot in ruby. Retrieve rss feeds and send them by email
@@ -115,9 +129,9 @@ executables:
115
129
  extensions: []
116
130
  extra_rdoc_files: []
117
131
  files:
118
- - .coveralls.yml
119
- - .gitignore
120
- - .travis.yml
132
+ - ".coveralls.yml"
133
+ - ".gitignore"
134
+ - ".travis.yml"
121
135
  - CONTRIBUTING.md
122
136
  - Gemfile
123
137
  - Gemfile.lock
@@ -155,12 +169,12 @@ require_paths:
155
169
  - lib
156
170
  required_ruby_version: !ruby/object:Gem::Requirement
157
171
  requirements:
158
- - - ! '>='
172
+ - - ">="
159
173
  - !ruby/object:Gem::Version
160
174
  version: '0'
161
175
  required_rubygems_version: !ruby/object:Gem::Requirement
162
176
  requirements:
163
- - - ! '>='
177
+ - - ">="
164
178
  - !ruby/object:Gem::Version
165
179
  version: '0'
166
180
  requirements: []