abstracted 0.4.18 → 0.4.19

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: 28a297762d066864f6f4c3da7e4dc34996d046c7
4
- data.tar.gz: 74259d425c5d4d14e5bd4636ddd8be149eef7a73
3
+ metadata.gz: 5f309a297bbc369a2a3693a54563015d3a34fc8a
4
+ data.tar.gz: c93e92f892409ff44eed586d4c53a5a6f52b6d9f
5
5
  SHA512:
6
- metadata.gz: 6fd3299a894de29a3f0b23f0c0ef6c7e6de39e6e53f98275617ae895b7a543aafd16501d6b0a9a03031ffc384fd039c518a1918c64d55acedd6f8f7b2d6d4a27
7
- data.tar.gz: afe97506115e9d7567bcd129bbc08556649b41c56145eeebf079f89b687c6d7248c80fdddd39eed784ebc0d363629d78837f577394bf6b55e7bf08c6d61f9242
6
+ metadata.gz: 07483e6fadc06647f0dd45ff5ce975e3fbc74bd5a0c86223f92b7db6331fde70969ec5fcafe8bd69775a082a4e558872eb7b7d74b93a35ae7bb3ec8a95769c96
7
+ data.tar.gz: 50ee9160bbcdbc989efd49ca1fae2ab8c4b30646a7d19e70f2779b4adcafcdd87321715053258dd488cf23ab761a0b3ade44321a22c4774db0261fbde971e85d
@@ -163,5 +163,48 @@ class AbstractResource < ActiveRecord::Base
163
163
  update_attributes active: false
164
164
  end
165
165
 
166
+ #
167
+ # will lock a record - provided the record responds to :record_lock field
168
+ # and will unlock the record - provided an argument TRUE is provided
169
+ #
170
+ def lock_record? unlock=false
171
+ return false unless respond_to? :record_lock
172
+
173
+ reload
174
+ return false unless [ 0, current_user.id ].include? record_lock.to_i
175
+
176
+ case unlock
177
+ when true
178
+ begin
179
+ self.with_lock do
180
+ update_attributes record_lock: 0
181
+ true
182
+ end
183
+ rescue e
184
+ case e
185
+ when ActiveRecord::StaleObjectError
186
+ return false
187
+ else
188
+ raise e
189
+ end
190
+ end
191
+ else
192
+ begin
193
+ self.with_lock do
194
+ update_attributes record_lock: current_user.id
195
+ record_lock.to_i == current_user.id
196
+ end
197
+ rescue e
198
+ case e
199
+ when ActiveRecord::StaleObjectError
200
+ return false
201
+ else
202
+ raise e
203
+ end
204
+ end
205
+ end
206
+ end
207
+
208
+
166
209
 
167
210
  end
@@ -1,3 +1,3 @@
1
1
  module Abstracted
2
- VERSION = "0.4.18"
2
+ VERSION = "0.4.19"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abstracted
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.18
4
+ version: 0.4.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Walther H Diechmann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-11 00:00:00.000000000 Z
11
+ date: 2017-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails