progressrus 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 +4 -4
- data/lib/progressrus.rb +7 -1
- data/lib/progressrus/store/base.rb +1 -0
- data/lib/progressrus/store/redis.rb +11 -0
- data/lib/progressrus/version.rb +1 -1
- data/test/progressrus_test.rb +7 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7742b5cfd79039be1c56599ef54db97ff88c65ca
|
4
|
+
data.tar.gz: 6dc36accb4003983466de0d90a9a34abb1a567ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 232a6041d91f72852c02ff376a0a08681b31ec583a00baeeac5e1be8c7296a88f22fb741d51996a11877607dcd0f9674ba6179802b552f1b7932d5c77e1617e8
|
7
|
+
data.tar.gz: 36ddb938cd4ccb27522082e0c5f397ceac5edce0f960a7c056fc82b2386aa187599621cf55dcc1f9dea52e5e0f70ae09ab20bc5c16bb6eba0842e241950f43ca
|
data/lib/progressrus.rb
CHANGED
@@ -149,8 +149,14 @@ class Progressrus
|
|
149
149
|
end
|
150
150
|
|
151
151
|
private
|
152
|
+
|
152
153
|
def persist(force: false)
|
153
|
-
stores.each
|
154
|
+
stores.each do |store|
|
155
|
+
begin
|
156
|
+
store.persist(self, force: force)
|
157
|
+
rescue Progressrus::Store::BackendError => e
|
158
|
+
end
|
159
|
+
end
|
154
160
|
end
|
155
161
|
|
156
162
|
def parse_time(time)
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class Progressrus
|
2
2
|
class Store
|
3
3
|
class Redis < Base
|
4
|
+
BACKEND_EXCEPTIONS = [ ::Redis::BaseError ]
|
5
|
+
|
4
6
|
attr_reader :redis, :interval, :persisted_at, :prefix, :name
|
5
7
|
|
6
8
|
def initialize(instance, prefix: "progressrus", interval: 1, now: Time.now)
|
@@ -16,6 +18,8 @@ class Progressrus
|
|
16
18
|
redis.hset(key(progress.scope), progress.id, progress.to_serializeable.to_json)
|
17
19
|
@persisted_ats[progress.scope][progress.id] = now
|
18
20
|
end
|
21
|
+
rescue *BACKEND_EXCEPTIONS => e
|
22
|
+
raise Progressrus::Store::BackendError.new(e)
|
19
23
|
end
|
20
24
|
|
21
25
|
def scope(scope)
|
@@ -23,6 +27,8 @@ class Progressrus
|
|
23
27
|
scope.each_pair { |id, value|
|
24
28
|
scope[id] = Progressrus.new(deserialize(value))
|
25
29
|
}
|
30
|
+
rescue *BACKEND_EXCEPTIONS => e
|
31
|
+
raise Progressrus::Store::BackendError.new(e)
|
26
32
|
end
|
27
33
|
|
28
34
|
def find(scope, id)
|
@@ -30,6 +36,8 @@ class Progressrus
|
|
30
36
|
return unless value
|
31
37
|
|
32
38
|
Progressrus.new(deserialize(value))
|
39
|
+
rescue *BACKEND_EXCEPTIONS => e
|
40
|
+
raise Progressrus::Store::BackendError.new(e)
|
33
41
|
end
|
34
42
|
|
35
43
|
def flush(scope, id = nil)
|
@@ -38,9 +46,12 @@ class Progressrus
|
|
38
46
|
else
|
39
47
|
redis.del(key(scope))
|
40
48
|
end
|
49
|
+
rescue *BACKEND_EXCEPTIONS => e
|
50
|
+
raise Progressrus::Store::BackendError.new(e)
|
41
51
|
end
|
42
52
|
|
43
53
|
private
|
54
|
+
|
44
55
|
def key(scope)
|
45
56
|
"#{prefix}:#{scope.join(":")}"
|
46
57
|
end
|
data/lib/progressrus/version.rb
CHANGED
data/test/progressrus_test.rb
CHANGED
@@ -192,6 +192,13 @@ class ProgressrusTest < Minitest::Unit::TestCase
|
|
192
192
|
@progress.tick
|
193
193
|
end
|
194
194
|
|
195
|
+
def test_tick_and_complete_dont_raise_if_store_is_unavailable
|
196
|
+
store = Progressrus.stores.first
|
197
|
+
store.redis.expects(:hset).at_least_once.raises(::Redis::BaseError)
|
198
|
+
@progress.tick
|
199
|
+
@progress.complete
|
200
|
+
end
|
201
|
+
|
195
202
|
def test_should_not_be_able_to_initialize_with_total_0
|
196
203
|
assert_raises ArgumentError do
|
197
204
|
Progressrus.new(total: 0)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: progressrus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Eskildsen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|