progressrus 1.0.3 → 1.1.0

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
  SHA256:
3
- metadata.gz: d353cca4bf4eca46acd2837f9e62f6dbe35834cd3efe00bf66ece1c02a2924d0
4
- data.tar.gz: 2b8c0dc2e6ec18c4f22b3a911bedfbcd73232517c4576dcc4971c46fc7abaabb
3
+ metadata.gz: 4f66da2e66134a7ca0b4db7d198c8910e9bec348c73d40e969e053a41f282edc
4
+ data.tar.gz: bcda55d9cd6959911c81456943f183cd28525d54450d1b4537470ff5ad718c09
5
5
  SHA512:
6
- metadata.gz: d1b1f0472d3ed65a214a020433315f7dd9cc37618fe992125e9a8836b320e0b92cc3adb5dca28f9109f15bb670abf6392a9493df3e7bd5921b9206f78e9d0b3c
7
- data.tar.gz: 9823e1025dff167ffc79e33d12cc636fd5494a23cf5c97500fb655eb69a5aabbb0df45518ed8928f11ac41cf8b62f9f0f196d125cde2f3f98b0e5e3980206e21
6
+ metadata.gz: 1609c053c0e4acc20fa8ddc50c36e0050fa3d19ed28568911e67647159f09f836a3e390804aeeb90e3e769cea4c775e663b2b32b11b805559a05ba0a56fe5a10
7
+ data.tar.gz: 880783ea27e8d89684a5d3fb6541daf0de3eba418191c9d192c94882b07f08a5d0fd283ee0032e1eeeb4235dd7eef1f37cc0875437b2acba406f7624ebc80cfb
@@ -13,7 +13,7 @@ jobs:
13
13
  strategy:
14
14
  fail-fast: false
15
15
  matrix:
16
- ruby: ["2.6", "2.7", "3.0", "3.1"]
16
+ ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3", "3.4"]
17
17
  services:
18
18
  redis:
19
19
  image: redis
@@ -17,9 +17,11 @@ class Progressrus
17
17
  if outdated?(progress) || force
18
18
  key_for_scope = key(progress.scope)
19
19
 
20
- redis.pipelined do |pipeline|
21
- pipeline.hset(key_for_scope, progress.id, progress.to_serializeable.to_json)
22
- pipeline.expireat(key_for_scope, expires_at.to_i) if expires_at
20
+ redis.with do |client|
21
+ client.pipelined do |pipeline|
22
+ pipeline.hset(key_for_scope, progress.id, progress.to_serializeable.to_json)
23
+ pipeline.expireat(key_for_scope, expires_at.to_i) if expires_at
24
+ end
23
25
  end
24
26
 
25
27
  @persisted_ats[progress.scope][progress.id] = now
@@ -29,7 +31,9 @@ class Progressrus
29
31
  end
30
32
 
31
33
  def scope(scope)
32
- scope = redis.hgetall(key(scope))
34
+ scope = redis.with do |client|
35
+ client.hgetall(key(scope))
36
+ end
33
37
  scope.each_pair { |id, value|
34
38
  scope[id] = Progressrus.new(**deserialize(value))
35
39
  }
@@ -38,7 +42,7 @@ class Progressrus
38
42
  end
39
43
 
40
44
  def find(scope, id)
41
- value = redis.hget(key(scope), id)
45
+ value = redis.with { |client| client.hget(key(scope), id) }
42
46
  return unless value
43
47
 
44
48
  Progressrus.new(**deserialize(value))
@@ -47,10 +51,12 @@ class Progressrus
47
51
  end
48
52
 
49
53
  def flush(scope, id = nil)
50
- if id
51
- redis.hdel(key(scope), id)
52
- else
53
- redis.del(key(scope))
54
+ redis.with do |client|
55
+ if id
56
+ client.hdel(key(scope), id)
57
+ else
58
+ client.del(key(scope))
59
+ end
54
60
  end
55
61
  rescue *BACKEND_EXCEPTIONS => e
56
62
  raise Progressrus::Store::BackendError.new(e)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Progressrus
4
- VERSION = '1.0.3'
4
+ VERSION = '1.1.0'
5
5
  end
data/progressrus.gemspec CHANGED
@@ -18,11 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "redis", ">= 3.0"
21
+ spec.add_dependency "redis", ">= 4.7.0"
22
22
  spec.add_dependency "ruby-progressbar", "~> 1.0"
23
23
 
24
24
  spec.add_development_dependency "rake"
25
- spec.add_development_dependency "mocha", "~> 0.14"
25
+ spec.add_development_dependency "mocha", "~> 2.7"
26
26
  spec.add_development_dependency "pry"
27
27
  spec.add_development_dependency "byebug"
28
28
  spec.add_development_dependency "pry-byebug"
@@ -247,8 +247,7 @@ class ProgressrusTest < Minitest::Test
247
247
  end
248
248
 
249
249
  def test_tick_and_complete_dont_raise_if_store_is_unavailable
250
- store = Progressrus.stores[:redis]
251
- store.redis.expects(:hset).at_least_once.raises(::Redis::BaseError)
250
+ Redis::PipelinedConnection.any_instance.expects(:hset).at_least_once.raises(::Redis::BaseError)
252
251
  @progress.tick
253
252
  @progress.complete
254
253
  end
@@ -7,7 +7,7 @@ class RedisStoreTest < Minitest::Test
7
7
  end
8
8
  end
9
9
  def setup
10
- @scope = ["walrus", "1234"]
10
+ @scope = ["walrus", "1234"]
11
11
  @progress = Progressrus.new(
12
12
  scope: @scope,
13
13
  id: "oemg",
@@ -15,7 +15,7 @@ class RedisStoreTest < Minitest::Test
15
15
  name: "oemg-name"
16
16
  )
17
17
 
18
- @another_progress = Progressrus.new(
18
+ @another_progress = Progressrus.new(
19
19
  scope: @scope,
20
20
  id: "oemg-two",
21
21
  total: 100,
@@ -38,16 +38,16 @@ class RedisStoreTest < Minitest::Test
38
38
  end
39
39
 
40
40
  def test_persist_should_set_key_value_if_outdated
41
- @store.persist(@progress)
41
+ @store.persist(@progress)
42
42
 
43
- assert_equal 'oemg', @store.find(['walrus', '1234'], 'oemg').id
43
+ assert_equal 'oemg', @store.find(['walrus', '1234'], 'oemg').id
44
44
  end
45
45
 
46
46
  def test_persist_should_not_set_key_value_if_not_outdated
47
- @store.redis.expects(:hset).once
47
+ Redis::PipelinedConnection.any_instance.expects(:hset).once
48
48
 
49
- @store.persist(@progress)
50
- @store.persist(@progress)
49
+ @store.persist(@progress)
50
+ @store.persist(@progress)
51
51
  end
52
52
 
53
53
  def test_scope_should_return_progressruses_indexed_by_id
@@ -62,7 +62,7 @@ class RedisStoreTest < Minitest::Test
62
62
  end
63
63
 
64
64
  def test_scope_should_return_an_empty_hash_if_nothing_is_found
65
- assert_equal({}, @store.scope(@scope))
65
+ assert_equal({}, @store.scope(@scope))
66
66
  end
67
67
 
68
68
  def test_find_should_return_a_single_progressrus_for_scope_and_id
@@ -73,41 +73,41 @@ class RedisStoreTest < Minitest::Test
73
73
  end
74
74
 
75
75
  def test_find_should_return_nil_if_nothing_is_found
76
- assert_nil @store.find(@scope, 'oemg')
76
+ assert_nil @store.find(@scope, 'oemg')
77
77
  end
78
78
 
79
79
  def test_flush_should_delete_by_scope
80
- @store.persist(@progress)
81
- @store.persist(@another_progress)
80
+ @store.persist(@progress)
81
+ @store.persist(@another_progress)
82
82
 
83
- @store.flush(@scope)
83
+ @store.flush(@scope)
84
84
 
85
- assert_equal({}, @store.scope(@scope))
85
+ assert_equal({}, @store.scope(@scope))
86
86
  end
87
87
 
88
88
  def test_flush_should_delete_by_scope_and_id
89
- @store.persist(@progress)
90
- @store.persist(@another_progress)
89
+ @store.persist(@progress)
90
+ @store.persist(@another_progress)
91
91
 
92
- @store.flush(@scope, 'oemg')
92
+ @store.flush(@scope, 'oemg')
93
93
 
94
- assert_nil @store.find(@scope, 'oemg')
95
- assert @store.find(@scope, 'oemg-two')
94
+ assert_nil @store.find(@scope, 'oemg')
95
+ assert @store.find(@scope, 'oemg-two')
96
96
  end
97
97
 
98
98
  def test_initializes_name_to_redis
99
- assert_equal :redis, @store.name
99
+ assert_equal :redis, @store.name
100
100
  end
101
101
 
102
102
  def test_persist_should_not_write_by_default
103
- @store.redis.expects(:hset).once
103
+ Redis::PipelinedConnection.any_instance.expects(:hset).once
104
104
 
105
105
  @store.persist(@progress)
106
106
  @store.persist(@progress)
107
107
  end
108
108
 
109
109
  def test_persist_should_write_if_forced
110
- @store.redis.expects(:hset).twice
110
+ Redis::PipelinedConnection.any_instance.expects(:hset).twice
111
111
 
112
112
  @store.persist(@progress)
113
113
  @store.persist(@progress, force: true)
data/test/test_helper.rb CHANGED
@@ -2,7 +2,7 @@ require 'coveralls'
2
2
  Coveralls.wear!
3
3
 
4
4
  require 'minitest/autorun'
5
- require "mocha/setup"
5
+ require 'mocha/minitest'
6
6
  require 'pry'
7
7
  require 'byebug'
8
8
  require 'pry-byebug'
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: progressrus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Eskildsen
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-01-25 00:00:00.000000000 Z
10
+ date: 2025-03-24 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: redis
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '3.0'
18
+ version: 4.7.0
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '3.0'
25
+ version: 4.7.0
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: ruby-progressbar
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +57,14 @@ dependencies:
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
- version: '0.14'
60
+ version: '2.7'
62
61
  type: :development
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
- version: '0.14'
67
+ version: '2.7'
69
68
  - !ruby/object:Gem::Dependency
70
69
  name: pry
71
70
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +154,6 @@ homepage: https://github.com/Sirupsen/progressrus
155
154
  licenses:
156
155
  - MIT
157
156
  metadata: {}
158
- post_install_message:
159
157
  rdoc_options: []
160
158
  require_paths:
161
159
  - lib
@@ -170,8 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
168
  - !ruby/object:Gem::Version
171
169
  version: '0'
172
170
  requirements: []
173
- rubygems_version: 3.3.3
174
- signing_key:
171
+ rubygems_version: 3.6.2
175
172
  specification_version: 4
176
173
  summary: Monitor the progress of remote, long-running jobs.
177
174
  test_files: