progressrus 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: 4cbd4fa76b6a27688c4f385cb897bbd743a5e970
4
- data.tar.gz: 0d51ce787ed6e0f5dcf5ab9b01992b84882bd490
3
+ metadata.gz: da06f31d91136e8fb18839704dd7fd49950de7ca
4
+ data.tar.gz: fb38d959dd85e11e03004db451ac17dced021f14
5
5
  SHA512:
6
- metadata.gz: d6d9455550209e99c6d714184566f99c651a223b79d30aeeb11b3b80d017f0ded87507735c38215f974380419d82b6883050b06a6fae4b4b8a5e1769c718d675
7
- data.tar.gz: c2dbc7c4f6f292f08dffe50cd5e159d57bf81926ada214a3f49d568b811f47a3f2cd2b8be8235fa939ac9d1851b56c69687da12a829cf2b7b02c15f210fe8bf6
6
+ metadata.gz: 5fd4c0fd5e258a5723f24494d234eef4d3ac451d5fb98b29855196fd029a7cfef2a335c7cbcd1df72235e49e57a95aaed107e05182e492d1a4f19530c0794071
7
+ data.tar.gz: 95bbe8161d40db2e10976aece2dc7b89584109b2eaf471d4f695cf03c0f77fb21d42c50cc055a924c08651d31306e5f17e4cc3df489a1bc1af419eca33101ffb
@@ -28,7 +28,7 @@ class Progressrus
28
28
  end
29
29
 
30
30
  attr_reader :name, :scope, :total, :id, :params, :store, :count,
31
- :started_at, :completed_at, :failed_at, :stores, :error_count
31
+ :started_at, :completed_at, :failed_at, :expires_at, :stores, :error_count
32
32
 
33
33
  alias_method :completed?, :completed_at
34
34
  alias_method :started?, :started_at
@@ -39,7 +39,7 @@ class Progressrus
39
39
  def initialize(scope: "progressrus", total: nil, name: nil,
40
40
  id: SecureRandom.uuid, params: {}, stores: Progressrus.stores,
41
41
  completed_at: nil, started_at: nil, count: 0, failed_at: nil,
42
- error_count: 0, persist: false)
42
+ error_count: 0, persist: false, expires_at: nil)
43
43
 
44
44
  raise ArgumentError, "Total cannot be zero or negative." if total && total <= 0
45
45
 
@@ -55,6 +55,7 @@ class Progressrus
55
55
  @started_at = parse_time(started_at)
56
56
  @completed_at = parse_time(completed_at)
57
57
  @failed_at = parse_time(failed_at)
58
+ @expires_at = parse_time(expires_at)
58
59
 
59
60
  persist(force: true) if persist
60
61
  end
@@ -109,6 +110,7 @@ class Progressrus
109
110
  started_at: started_at,
110
111
  completed_at: completed_at,
111
112
  failed_at: failed_at,
113
+ expires_at: expires_at,
112
114
  count: count,
113
115
  total: total,
114
116
  params: params,
@@ -142,6 +144,10 @@ class Progressrus
142
144
  now + seconds_to_finished
143
145
  end
144
146
 
147
+ def expired?(now: Time.now)
148
+ expires_at && expires_at < now
149
+ end
150
+
145
151
  private
146
152
  def persist(force: false)
147
153
  stores.each { |store| store.persist(self, force: force) }
@@ -1,3 +1,3 @@
1
1
  class Progressrus
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -152,7 +152,8 @@ class ProgressrusTest < Minitest::Unit::TestCase
152
152
  completed_at: nil,
153
153
  failed_at: nil,
154
154
  count: 0,
155
- error_count: 0
155
+ error_count: 0,
156
+ expires_at: nil
156
157
  }
157
158
 
158
159
  assert_equal serialization, progress.to_serializeable
@@ -374,4 +375,35 @@ class ProgressrusTest < Minitest::Unit::TestCase
374
375
 
375
376
  assert @progress.running?
376
377
  end
378
+
379
+ def test_expired_returns_false_when_nil
380
+ progress = Progressrus.new(
381
+ id: 'oemg',
382
+ scope: ['walruses', 'forall']
383
+ )
384
+
385
+ refute progress.expired?
386
+ end
387
+
388
+ def test_expired_returns_true_if_expires_at_in_past
389
+ time = Time.now
390
+ progress = Progressrus.new(
391
+ id: 'oemg',
392
+ scope: ['walruses', 'forall'],
393
+ expires_at: time - 3600
394
+ )
395
+
396
+ assert progress.expired?(now: time)
397
+ end
398
+
399
+ def test_expired_returns_false_if_expires_at_in_the_future
400
+ time = Time.now
401
+ progress = Progressrus.new(
402
+ id: 'oemg',
403
+ scope: ['walruses', 'forall'],
404
+ expires_at: time + 3600
405
+ )
406
+
407
+ refute progress.expired?(now: time)
408
+ end
377
409
  end
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.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Eskildsen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-09 00:00:00.000000000 Z
11
+ date: 2015-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis