deploy_pin 1.7.0 → 1.7.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
  SHA256:
3
- metadata.gz: ced30166491b43cb26d26c837ca1276e9825d3b48631cea70f3095e0a8590d01
4
- data.tar.gz: '0538bf5ea753ba70a2daa8e2104939d38d8605f8ae72d284417bcbe249659a4f'
3
+ metadata.gz: 92739dddf68cb804a3d4e76873afcaa11bcf5481ebcf8dd45d277ae992616eb7
4
+ data.tar.gz: 729e8e6401392109892d868613e996517a56e476a01f74ed968a6fd79d5c9f0f
5
5
  SHA512:
6
- metadata.gz: f16f07130b5544236e0a17d0658e2c1b5ec2eb2103a5321c4f11ef391492f87c056b69e8b8498553f686e1523989f6723bec205147760fc2c12062f266c3a27e
7
- data.tar.gz: 64424aa72c121603c5ddd23f9e15051fca979b4e3393b1ed942b0319aadd3d441515d24203201148c8c125aed4c6dcb0e43b4c2079466e430f7681a56c5700e8
6
+ metadata.gz: 4655ced6a71eec2d98aa92e30cd5a16584c50b02b7d3757b8bd7a5c6898d6b93a904944d8e9ce478a80889e62f76ac78c6808b533ff004546cab4e33965a4e02
7
+ data.tar.gz: 105bef59cd93ba4a9c2fe88e8c60c75ce000439810c346359fcb9f823cdb025cf989137216a5f74c8aa5f212672ebc06df42feac1c2247dee745ea40b36e8d4a
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2019 rafael
1
+ Copyright 2019 Viktor Sych
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -178,7 +178,7 @@ To use a different formatting value than the default, you need to specify it exp
178
178
 
179
179
  ## Resumable Tasks
180
180
 
181
- When working with long-running code that processes a large dataset, it makes sense to store progress in the database to allow resuming the task later. You can do this by using the `DeployPin::Task` instance methods: `#progress` and `#increment_progress(num)`.
181
+ When working with long-running code that processes a large dataset, it makes sense to store progress in the database to allow resuming the task later. You can do this by using the `DeployPin::Task` instance methods: `#progress`, `#save_progress!(num)` and `#increment_progress!(num)`.
182
182
 
183
183
  Here is an example of how to use these methods:
184
184
 
@@ -190,16 +190,14 @@ Here is an example of how to use these methods:
190
190
  # The progress is 0 by default
191
191
  Users.where(id: progress..).find_each do |user|
192
192
  # Do some work
193
- increment_progress(1) # Increment progress by 1 and store it in the database so you can resume the task from this point
193
+ increment_progress!(1) # Increment progress by 1 and store it in the database so you can resume the task from this point
194
+ # or save_progress!(user.id) # Save the progress as the user id
194
195
  end
195
196
  ```
196
197
 
197
198
  This allows your task to resume from where it left off, minimizing the risk of repeating work.
198
199
 
199
200
 
200
-
201
- ```bash
202
-
203
201
  ## Recurring Tasks
204
202
  If you want to generate a recurring task, you can use the `--recurring` option. Make sure to set a correct `--identifier`, which should be a numeric value. Positive and negative numbers are possible here. The identifier affects the order of task execution, allowing you to customize the sequence as desired.
205
203
 
@@ -236,6 +234,8 @@ bundle exec rake deploy_pin:run[I, II, III] - # enters to ongoing state before "
236
234
  bundle exec rake deploy_pin:run[rollback] - # enters "pending state"
237
235
  ```
238
236
  ## Similar Gems
237
+ - https://github.com/ilyakatz/data-migrate
238
+ - https://github.com/Shopify/maintenance_tasks
239
239
  - https://github.com/theSteveMitchell/after_party
240
240
 
241
241
  ## Contributing
@@ -54,6 +54,12 @@ module DeployPin
54
54
  record.increment!(:progress, incrementor)
55
55
  end
56
56
 
57
+ def save_progress!(value)
58
+ raise NotImplementedError, 'Recurring tasks do not support progress yet.' if recurring
59
+
60
+ record.update(progress: value)
61
+ end
62
+
57
63
  def done?
58
64
  return if recurring
59
65
  return unless record
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DeployPin
4
- VERSION = '1.7.0'
4
+ VERSION = '1.7.2'
5
5
  end
@@ -4,5 +4,8 @@ class UpgradeDeployPins < ActiveRecord::Migration[7.0]
4
4
  def change
5
5
  add_column :deploy_pins, :progress, :integer, default: 0, if_not_exists: true
6
6
  add_column :deploy_pins, :completed_at, :datetime, default: nil, if_not_exists: true
7
+
8
+ # set completed_at to created_at for all completed deploy_pins
9
+ DeployPin::Record.update_all('completed_at = created_at')
7
10
  end
8
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deploy_pin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viktor Sych
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-10 00:00:00.000000000 Z
11
+ date: 2024-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize