progress_tracker 0.0.1 → 0.1.0

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: df21ecd837ae3df9bde25bb75176b76b74babba1
4
- data.tar.gz: fdc09b64c60c0b47579458b6b665b65584cd0bea
3
+ metadata.gz: cbbb98936230ac221d533e385e7a157645cab00e
4
+ data.tar.gz: 51ec3be99c7e7dd057be599c6b50592510b11640
5
5
  SHA512:
6
- metadata.gz: c21785f5a9253a41c869b221aae9e295b3a524ff2f5e2387d0b1285bad7cd10d4a158dd6c3e46162e6005b35af19c2c5d973963a96f81e737941cf03c7989d3b
7
- data.tar.gz: 64c5f45f120e788bbe67ecda28f830d8a4cc0c8c884b934245d35af5e75339d0bc970e4276463df5145d5c8e81d8a26f01bd0013c38a70ab496238149a1aedad
6
+ metadata.gz: a94fe2cfdb638ede6ab49d3e0f72bcd73cdc37e132ea658fc3ec71b8139ea6b01b3abd9b54f1aa9096f82f9d4d10972bf07854fffead2dece07d7f10e7c364e5
7
+ data.tar.gz: 2d2401475573755c3c354a3b66715356933e4f9fe0f70f77ae537174c4065d1982fc34b247ed40b26a152112487eadd3176cc20219cceeb117045900095669f2
@@ -32,6 +32,14 @@ module ProgressTracker
32
32
  @current_tracked_object = :_base
33
33
  end
34
34
 
35
+ # re-set every redis key that this instance is tracking
36
+ def reset!
37
+ ['tracked-object-keys', *tracked_object_keys.to_a].each { |key| redis.del key }
38
+
39
+ @tracked_object_keys = Set.new([:_base])
40
+ @current_tracked_object = :_base
41
+ end
42
+
35
43
  # Build a compound key and store it for future reference
36
44
  def track(object_name, object_id = nil)
37
45
  new_key = _ck(object_name, object_id)
@@ -73,6 +81,12 @@ module ProgressTracker
73
81
  redis.hmset current_tracked_object, *hsh.to_a.flatten
74
82
  end
75
83
 
84
+ # reset the currently trackd object
85
+ def reset
86
+ redis.del current_tracked_object
87
+ end
88
+
89
+
76
90
  def progress(value)
77
91
  update progress: value.to_i
78
92
  end
@@ -1,3 +1,3 @@
1
1
  module ProgressTracker
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -29,7 +29,6 @@ shared_examples "a ProgressTracker::Tracker instance" do
29
29
  expect(_result(getter, :message, setter.current_tracked_object)).to eql(msg)
30
30
  end
31
31
 
32
-
33
32
  it "remembers several things at once" do
34
33
  things = { progress: 42, message: "Share and enjoy." }
35
34
  setter.update things
@@ -41,6 +40,11 @@ shared_examples "a ProgressTracker::Tracker instance" do
41
40
  setter.update foo: "bar!"
42
41
  expect(getter.to_hash[setter.current_tracked_object][:foo]).to eql("bar!")
43
42
  end
43
+
44
+ it "can be reset" do
45
+ setter.reset
46
+ expect(getter.to_hash[setter.current_tracked_object]).to_not have_key(setter.current_tracked_object)
47
+ end
44
48
  end
45
49
 
46
50
 
@@ -81,6 +85,16 @@ describe ProgressTracker::Base do
81
85
  expect(pt.to_hash).to have_key(:bar_100)
82
86
  end
83
87
 
88
+ it "can re-set the entire tracker set" do
89
+ pt.track :foo
90
+ pt.track :bar, 100
91
+
92
+ pt.reset!
93
+
94
+ expect(pt.to_hash).to eql({ _base: { progress: 0, message: "" } })
95
+ end
96
+
97
+
84
98
  # it "ensures that any tracked sub-objects are re-cached when initialising a new tracker" do
85
99
  # pt.track :foo
86
100
  # pt.track :bar, 100
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: progress_tracker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Cheail
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-21 00:00:00.000000000 Z
11
+ date: 2014-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  version: '0'
148
148
  requirements: []
149
149
  rubyforge_project:
150
- rubygems_version: 2.1.4
150
+ rubygems_version: 2.0.3
151
151
  signing_key:
152
152
  specification_version: 4
153
153
  summary: ''