job_packs 0.1.0 → 0.1.1

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: 49ee8035b04197374e7407ea9c184f09b4d2905b
4
- data.tar.gz: 0aedd2c73edbce74782468aab8e7ffc45a3e3ac9
3
+ metadata.gz: 3df39910a144896ff21fa12d890130081bd28add
4
+ data.tar.gz: 8113f0788f4173c4cc9d68c75b88b625cce88b88
5
5
  SHA512:
6
- metadata.gz: 4805578fe535dc63450a47db1e40f474044f1586e515a06ee2a0e54c807890159e7eb45ad6d55530f711452002351d37461e1d57db0726acf03dcadf8610555d
7
- data.tar.gz: 191b55e6480e950dc405a0604a5f2276a1a9c305e3fff2537d7f4d11502cd428eed46858c70fa39a5a330842760b1bb79ab8ebb325984f22f7baece26892be11
6
+ metadata.gz: b2efdc04e033cb8f8185edeb3368a687d06fd3e1f34f90973e072b689517ab2d40bb01d9c1cb5c243bfba80631f4f867b8ac5e15a04688d71ea13c37df7befab
7
+ data.tar.gz: f3e8dadd3a720b04bfa983fa7626be3e4e25e152a3c1168c5af03109e1751337e189d57a828c0b192e6c4840f1193d279b29149672337ba46a2e81c93a35a951
@@ -8,36 +8,20 @@ module JobPacks
8
8
 
9
9
  def before(job)
10
10
  find_job_pack_item(job)
11
-
12
11
  @job_pack_item.status = JobPacks::JobPackItem::RUNNING
13
12
  @job_pack_item.save!
14
13
  end
15
14
 
16
- def error(job, _exception)
17
- find_job_pack_item(job)
18
- @job_pack_item.status = JobPacks::JobPackItem::ERROR
19
- @job_pack_item.save!
20
- end
21
-
22
15
  def failure(job)
23
16
  find_job_pack_item(job)
24
17
  @job_pack_item.status = JobPacks::JobPackItem::ERROR
25
18
  @job_pack_item.save!
26
19
  end
27
20
 
28
- def after(job)
29
- find_job_pack_item job
30
- update_pack
31
- end
32
-
33
21
  private
34
22
 
35
23
  def find_job_pack_item(job)
36
- @job_pack_item ||= JobPacks::JobPackItem.where(job_id: job.id, job_type: job.class.to_s).first
37
- end
38
-
39
- def update_pack
40
- @job_pack_item.job_pack.refresh_status
24
+ @job_pack_item = JobPacks::JobPackItem.where(job_id: job.id, job_type: job.class.to_s).first
41
25
  end
42
26
  end
43
27
  end
@@ -6,19 +6,23 @@ module JobPacks
6
6
  job_pack_items << item
7
7
  end
8
8
 
9
- def refresh_status
9
+ def update_progress
10
10
  job_pack_items.each(&:refresh_job_status)
11
-
12
- self.total_items_done = job_pack_items.done.count
13
11
  self.total_items_with_error = job_pack_items.error.count
14
12
  self.total_items_waiting = job_pack_items.waiting.count
15
13
  self.total_items_running = job_pack_items.running.count
14
+ self.total_items_done = job_pack_items.done.count
15
+ self.done = total_items_done == total_items
16
16
 
17
- save! if changed?
17
+ save!
18
18
  end
19
19
 
20
20
  def progress
21
- ((total_items_done.to_f * 100) / job_pack_items.count.to_f).to_f
21
+ ((total_items_done.to_f * 100) / total_items.to_f).to_f
22
+ end
23
+
24
+ def total_items
25
+ job_pack_items.count.to_i
22
26
  end
23
27
  end
24
28
  end
@@ -27,6 +27,7 @@ module JobPacks
27
27
  attr_accessor :delayed_job
28
28
 
29
29
  before_create :run_job_and_set_status
30
+ after_commit :update_pack
30
31
 
31
32
  def refresh_job_status
32
33
  self.status = if job
@@ -46,6 +47,10 @@ module JobPacks
46
47
 
47
48
  private
48
49
 
50
+ def update_pack
51
+ job_pack.update_progress
52
+ end
53
+
49
54
  def run_job_and_set_status
50
55
  self.job = Delayed::Job.enqueue delayed_job
51
56
  self.status = WAITING
@@ -1,3 +1,3 @@
1
1
  module JobPacks
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.1.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: job_packs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Lagares