rtiss_acts_as_versioned 0.8.3 → 0.9.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
- SHA1:
3
- metadata.gz: b9f5a6e965b68027705381bc7f298c863c4a72f1
4
- data.tar.gz: d604439b36e5bd52fe5480dcf5e96a1a74c6f213
2
+ SHA256:
3
+ metadata.gz: cc2e3ea0395c08d987ad8bdeeb65efb5b74ec97a01e7a207c4f789710907ad54
4
+ data.tar.gz: ae2dd83effe00b997be04dd0b6b1ffc8d6190fda754e099009df676f5a76676c
5
5
  SHA512:
6
- metadata.gz: 59bcc2984591245b9dcfafde7e80330388fdff93ca952ba582b3759941dc5c575bc64ea13f7ceff5b6685ae5dcba10273d24bad8839e63ff8afb409b372bb1ea
7
- data.tar.gz: e180bd6b6234db9488ce3e9beb9f40b2c4521e57161ab89346cd96b786208822c7340d64f6c9751fce5743f6cfa516b8920b2b8669b37867dfeaf183cd2fc71a
6
+ metadata.gz: 017a6da2f4c8047fde9b10cf45608515f850b391884dab841fef456faf3176decd3b0817aeb34a3d47797ed568940d76a7d339ded61a1e602b9817692c0cfac8
7
+ data.tar.gz: 3dd0570d6ae247ecae79ae3b34c9d81994b5d5748da48ba1e5da311b7663555b5d16356cdc576faaa6a3b3210360e5f20bec5454e824aba47994382b2c0282d7
data/README CHANGED
@@ -7,6 +7,7 @@ This is the patched version for rtiss.
7
7
  Versions 0.6.x (rails2 branch) are for rails 2.x
8
8
  Versions 0.7.x (rails3 branch) are for rails 3.x
9
9
  Versions 0.8.x (master branch) are for rails 4.x
10
+ Versions 0.9.x (master branch) are for rails 5.x (also works with rails 4.x)
10
11
 
11
12
  == Resources
12
13
 
@@ -20,7 +20,7 @@
20
20
  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
21
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
 
23
- VERSION = '0.8.3'
23
+ VERSION = '0.9.0'
24
24
 
25
25
  module ActiveRecord #:nodoc:
26
26
  module Acts #:nodoc:
@@ -465,6 +465,9 @@ module ActiveRecord #:nodoc:
465
465
 
466
466
  def empty_callback() end #:nodoc:
467
467
 
468
+ =begin
469
+ # Alte finder-Syntax ab Rails 5 nicht mehr verwendbar.
470
+ # Assoziation versions stattdessen verwenden
468
471
  def find_versions(*args)
469
472
  return [] if self.id.nil?
470
473
 
@@ -481,6 +484,7 @@ module ActiveRecord #:nodoc:
481
484
  versions.find(options)
482
485
  end
483
486
  end
487
+ =end
484
488
 
485
489
  def find_newest_version
486
490
  return nil if self.id.nil?
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
12
12
  ## If your rubyforge_project name is different, then edit it and comment out
13
13
  ## the sub! line in the Rakefile
14
14
  s.name = 'rtiss_acts_as_versioned'
15
- s.version = '0.8.3'
16
- s.date = '2016-01-25'
15
+ s.version = '0.9.0'
16
+ s.date = '2019-11-04'
17
17
  s.rubyforge_project = 'rtiss_acts_as_versioned'
18
18
  s.summary = "Add simple versioning to ActiveRecord models (TISS version)."
19
19
  s.description = "Add simple versioning to ActiveRecord models (TISS version).
data/test/tiss_test.rb CHANGED
@@ -1,31 +1,29 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ require 'test_helper'
2
3
 
3
- require File.join(File.dirname(__FILE__), 'fixtures/rolle')
4
- require File.join(File.dirname(__FILE__), 'fixtures/locked_rolle')
5
-
6
- class TissTest < ActiveSupport::TestCase
4
+ class Tools::ActsAsVersionedTest < ActiveSupport::TestCase
7
5
  def test_versioning
8
- anzahl = Rolle.count
9
-
10
- oid1 = create_object('test').id
6
+ anzahl = Tools::LupKonfigKategorie.count
7
+
8
+ oid1 = create_object('java').id
11
9
  oid2 = create_object('tuwien').id
12
10
  oid3 = create_object('ruby').id
13
11
  oid4 = create_object('rails').id
14
12
  oid5 = create_object('times').id
15
-
16
- assert_equal anzahl+5, Rolle.count
17
-
18
- 2.upto(5) {|index| edit_object(oid1, "test" + index.to_s)}
13
+
14
+ assert_equal anzahl+5, Tools::LupKonfigKategorie.count
15
+
16
+ 2.upto(5) {|index| edit_object(oid1, "java" + index.to_s)}
19
17
  2.upto(7) {|index| edit_object(oid2, "tuwien" + index.to_s)}
20
18
  2.upto(9) {|index| edit_object(oid3, "ruby" + index.to_s)}
21
19
  2.upto(6) {|index| edit_object(oid4, "rails" + index.to_s)}
22
20
  2.upto(3) {|index| edit_object_with_sleep(oid5, "times" + index.to_s)}
23
-
21
+
24
22
  assert versions_correct?(oid1, 5)
25
23
  assert versions_correct?(oid2, 7)
26
24
  assert versions_correct?(oid3, 9)
27
25
  assert versions_correct?(oid4, 6)
28
-
26
+
29
27
  assert timestamps?(oid1)
30
28
  assert timestamps?(oid2)
31
29
  assert timestamps?(oid3)
@@ -35,14 +33,14 @@ class TissTest < ActiveSupport::TestCase
35
33
  destroy_record(oid2)
36
34
  assert record_unavailable_in_original_table?(oid2)
37
35
  assert deleted_record_versioned?(oid2, 8)
38
-
36
+
39
37
  restore_record(oid2)
40
38
  assert restored_record_available_in_original_table?(oid2)
41
39
  assert restored_record_versioned?(oid2, 9)
42
-
40
+
43
41
  assert save_record_without_changes(oid1)
44
42
  end
45
-
43
+
46
44
  def test_deleted_in_original_table
47
45
  record = create_object('test deleted_in_orginal_table')
48
46
  version_record = record.versions.first
@@ -59,17 +57,18 @@ class TissTest < ActiveSupport::TestCase
59
57
 
60
58
  def test_find_versions
61
59
  o = create_object("karin")
62
- v = o.find_versions(:all)
60
+ v = o.versions
63
61
  assert_equal 1, v.count
64
62
  assert_equal v[0].name, "karin"
65
63
 
66
64
  edit_object(o.id, "zak")
67
- v = o.find_versions(:all)
65
+ v.reload
66
+
68
67
  assert_equal 2, v.count
69
68
  assert_equal v[0].name, "karin"
70
69
  assert_equal v[1].name, "zak"
71
70
 
72
- v = o.find_versions(:all, :conditions => "name = 'zak'")
71
+ v = o.versions.where("name = 'zak'")
73
72
  assert_equal 1, v.count
74
73
  assert_equal v[0].name, "zak"
75
74
 
@@ -77,13 +76,13 @@ class TissTest < ActiveSupport::TestCase
77
76
  # assert_equal 1, v.count
78
77
  # assert_equal v[0].name, "zak"
79
78
 
80
- v = o.find_versions(:first)
79
+ v = o.versions.first
81
80
  assert_equal v.name, "karin"
82
81
 
83
- v = o.find_versions(:last)
82
+ v = o.versions.last
84
83
  assert_equal v.name, "zak"
85
84
 
86
- v = o.find_versions(:all, :order => "name desc")
85
+ v = o.versions.order("name desc")
87
86
  assert_equal 2, v.count
88
87
  assert_equal v[0].name, "zak"
89
88
  assert_equal v[1].name, "karin"
@@ -109,60 +108,14 @@ class TissTest < ActiveSupport::TestCase
109
108
 
110
109
  assert_raises(RuntimeError) { v.restore }
111
110
  assert !v.deleted_in_original_table
112
- assert !v.record_restored, "Record_restored shows that the record was undeleted (should be false) for a newly created record"
113
111
 
114
- old_version = o.version
115
112
  o.destroy
116
113
  v = o.find_newest_version
117
- first_delete_version = v.version
118
- assert v.deleted_in_original_table, "Deleted-Flag in versioned record is not set"
119
- assert_equal old_version + 1, v.version, "Destroy did not increment version number in history record"
114
+ assert v.deleted_in_original_table
120
115
 
121
116
  v.restore
122
- restored_version = v.version
123
- assert !v.record_restored, "Record_restored shows that the record was undeleted (should be false) for the restored version record (but should be in the newly created record)"
124
- o = Rolle.find oid
125
117
  v = o.find_newest_version
126
- v_old = v
127
- assert_equal v.version, o.version
128
- assert_equal old_version + 2, v.version, "Version field not restored correctly"
129
- assert !v.deleted_in_original_table, "Deleted_in_original_table doesn't show that the record was undeleted (should be false)"
130
- assert v.record_restored, "Record_restored doesn't show that the record was undeleted (should be true) for the version record created upon restore"
131
- assert_equal restored_version, v.record_restored_from_version
132
-
133
- o.name = 'kaputt'
134
- assert o.save
135
- o.destroy
136
- v = o.find_newest_version
137
- v.restore
138
- o = Rolle.find oid
139
- assert_equal v.version + 1, o.version
140
- assert_equal 'kaputt', o.name
141
- assert_equal v.version, o.find_newest_version.record_restored_from_version
142
- o.destroy
143
- v_old.restore
144
- o = Rolle.find oid
145
- assert_equal 'lebt', o.name
146
- assert_equal v_old.version, o.find_newest_version.record_restored_from_version
147
- end
148
-
149
- def test_restore_and_destroy_with_revision_on_every_change
150
- r = Rolle.new(:name => 'karin')
151
- assert r.save
152
- r.name = 'zak'
153
- assert r.save
154
- assert_equal 2, Rolle::Version.count
155
- r.destroy
156
- assert_equal 0, Rolle.count
157
- assert_equal 3, Rolle::Version.count
158
- assert version = r.find_version(3)
159
- assert version.deleted_in_original_table?
160
- assert version = r.find_version(2)
161
- version.restore
162
- assert r = Rolle.first
163
- assert r.find_newest_version.record_restored?
164
- assert_equal 4, Rolle::Version.count
165
- assert_equal 4, r.version
118
+ assert !v.deleted_in_original_table
166
119
  end
167
120
 
168
121
  def test_original_record_exists
@@ -184,7 +137,7 @@ class TissTest < ActiveSupport::TestCase
184
137
  oid = o.id
185
138
  v = o.find_version(1)
186
139
  assert v!=nil
187
-
140
+
188
141
  assert_raises(RuntimeError) { restore_record(oid) }
189
142
  assert !v.deleted_in_original_table
190
143
 
@@ -198,15 +151,15 @@ class TissTest < ActiveSupport::TestCase
198
151
  assert v!=nil
199
152
  assert !v.deleted_in_original_table
200
153
  end
201
-
154
+
202
155
  def test_restore_deleted_version
203
156
  o = create_object("lebt")
204
157
  oid = o.id
205
158
  v = o.find_version(1)
206
159
  assert v!=nil
207
-
160
+
208
161
  edit_object(oid, "nicht")
209
- x = Rolle.find(oid)
162
+ x = Tools::LupKonfigKategorie.find(oid)
210
163
  assert x.name == "nicht"
211
164
 
212
165
  v = o.find_version(2)
@@ -217,105 +170,76 @@ class TissTest < ActiveSupport::TestCase
217
170
  assert v!=nil
218
171
  assert v.deleted_in_original_table
219
172
 
220
- Rolle.restore_deleted_version(oid, 1)
221
- x = Rolle.find(oid)
173
+ Tools::LupKonfigKategorie.restore_deleted_version(oid, 1)
174
+ x = Tools::LupKonfigKategorie.find(oid)
222
175
  assert x.name == "lebt"
223
176
  end
224
-
225
- def test_destroy_unsaved_record
226
- o = Rolle.new(:name => "Nicht Speichern")
227
- assert_nothing_raised do o.destroy end
228
- assert_equal o.highest_version, -1
229
- end
230
177
 
231
- def test_versions_after_save
232
- r = Rolle.new(:name => 'karin')
233
- assert r.save
234
- r.name = 'zak'
235
- assert r.save
236
- r.reload
237
- assert_equal 2, r.versions.size
238
- assert_equal 2, r.versions.count
239
- end
178
+ def test_find_and_deleted_in_original_table
179
+ mitarbeiter = Personal::Mitarbeiter.create(:person_id=>6, :eintrittsdatum=>'1990-01-01')
180
+ rel_person_orgeinheit = Organisation::RelPersonOrgeinheit.create(:anstellbar_id=>mitarbeiter.id, :anstellbar_type=>'Personal::Mitarbeiter', :orgeinheit_id=>1, :person_id=>5, :lup_person_funktion_id=>1, :org_interne_id=>1)
240
181
 
241
- def test_restore_without_validations
242
- r = Rolle.new(:name => 'karin')
243
- assert r.save
244
- version = r.find_newest_version
245
- r.destroy
246
-
247
- r = Rolle.new(:name => 'karin')
248
- assert r.save
249
- assert_raises RuntimeError do version.restore end
250
- #assert_nothing_raised do
251
- version.restore(perform_validations = false) #end
252
- end
182
+ assert rel_person_orgeinheit.save
183
+
184
+ rel_person_orgeinheit.destroy
185
+ assert rel_person_orgeinheit.alte_adressbuchdaten_wiederherstellen
253
186
 
254
- def test_save_without_revision
255
- r = Rolle.new(:name => 'karin')
256
- assert_equal true, r.save_without_revision
257
-
258
- r = Rolle.new(:name => 'karin')
259
- assert_equal false, r.save_without_revision
187
+ # assert_raises NoMethodError do rel_person_orgeinheit.alte_adressbuchdaten_wiederherstellen end
260
188
  end
261
189
 
262
- =begin
263
- # Wait until experimenting-with-optimistic-locking is merged.
264
- def test_locked_rolle
265
- r = LockedRolle.new(:name => 'karin')
266
- r.save
267
- assert_equal 1, r.find_newest_version.version
268
- r.name = 'zak'
269
- r.save
270
- assert_equal 2, r.find_newest_version.version
190
+ def test_destroy_unsaved_record
191
+ o = Tools::LupKonfigKategorie.new(:name => "Nicht Speichern")
192
+ assert_nothing_raised do o.destroy end
193
+ assert_equal o.highest_version, -1
271
194
  end
272
- =end
273
195
 
274
- private
196
+ private
275
197
  def create_object(bezeichnung)
276
- o = Rolle.new(:name => bezeichnung)
277
- o.save
198
+ puts "create_object: #{bezeichnung}"
199
+ o = Tools::LupKonfigKategorie.new(:name => bezeichnung)
200
+ o.save!
278
201
  return o
279
202
  end
280
-
203
+
281
204
  def edit_object(id, bezeichnung)
282
- Rolle.find(id).update_attributes(:name=>bezeichnung)
205
+ puts "edit_object: #{id}: #{bezeichnung}"
206
+ Tools::LupKonfigKategorie.find(id).update_attributes!(:name=>bezeichnung)
283
207
  end
284
208
 
285
209
  def edit_object_with_sleep(id, bezeichnung)
286
210
  sleep(2)
287
- Rolle.find(id).update_attributes(:name=>bezeichnung)
211
+ Tools::LupKonfigKategorie.find(id).update_attributes!(:name=>bezeichnung)
288
212
  end
289
213
 
290
214
  def versions_correct?(id, highest_version)
291
- result = Rolle.find(id).versions.find(:all).size == highest_version
215
+ result = Tools::LupKonfigKategorie.find(id).versions.all.size == highest_version
292
216
  1.upto(highest_version) do |current_version|
293
- current_version_record = Rolle.find(id).versions.find(:first, :conditions => "version = #{current_version}")
217
+ current_version_record = Tools::LupKonfigKategorie.find(id).versions.find_by("version = #{current_version}")
294
218
  result = false if current_version_record.nil? || current_version_record.deleted_in_original_table == true
295
219
  end
296
220
  return result
297
221
  end
298
-
222
+
299
223
  def timestamps?(id)
300
224
  result = true;
301
- highest_version = Rolle.find(id).versions.find(:all).size
225
+ highest_version = Tools::LupKonfigKategorie.find(id).versions.all.size
302
226
  highest_version.downto(1) do |current_version|
303
227
  if current_version >= 2
304
- rolle_current_version = Rolle.find(id).versions.find(:first, :conditions => "version = #{current_version}")
305
- rolle_predecessor_version = Rolle.find(id).versions.find(:first, :conditions => "version = #{current_version-1}")
228
+ rolle_current_version = Tools::LupKonfigKategorie.find(id).versions.find_by("version = #{current_version}")
229
+ rolle_predecessor_version = Tools::LupKonfigKategorie.find(id).versions.find_by("version = #{current_version-1}")
306
230
  toleranz = rolle_current_version.created_at - rolle_predecessor_version.updated_at
307
231
  result = false if toleranz > 1.0
308
232
  end
309
233
  end
310
234
  return result
311
235
  end
312
-
236
+
313
237
  def strong_timestamps?(id)
314
238
  result = true;
315
- highest_version = Rolle.find(id).versions.find(:all).size
239
+ highest_version = Tools::LupKonfigKategorie.find(id).versions.all.size
316
240
  highest_version.downto(2) do |current_version|
317
- rolle_current_version = Rolle.find(id).versions.find(:first, :conditions => "version = #{current_version}")
318
- rolle_predecessor_version = Rolle.find(id).versions.find(:first, :conditions => "version = #{current_version-1}")
241
+ rolle_current_version = Tools::LupKonfigKategorie.find(id).versions.find_by("version = #{current_version}")
242
+ rolle_predecessor_version = Tools::LupKonfigKategorie.find(id).versions.find_by("version = #{current_version-1}")
319
243
  result = false unless rolle_current_version.created_at = rolle_predecessor_version.updated_at
320
244
  result = false unless rolle_current_version.created_at >= rolle_predecessor_version.created_at
321
245
  end
@@ -323,50 +247,49 @@ private
323
247
  end
324
248
 
325
249
  def destroy_record(id)
326
- # Rolle.destroy(id)
327
- Rolle.destroy(id)
250
+ Tools::LupKonfigKategorie.destroy(id)
328
251
  end
329
-
252
+
330
253
  def record_unavailable_in_original_table?(id)
331
254
  begin
332
- Rolle.find(id)
255
+ Tools::LupKonfigKategorie.find(id)
333
256
  return false
334
257
  rescue
335
258
  return true
336
259
  end
337
260
  end
338
-
261
+
339
262
  def deleted_record_versioned?(id, highest_version)
340
263
  version_of_deleted_record = highest_version
341
- rolle_deleted = Rolle::Version.find(:first, :conditions => "version = #{version_of_deleted_record} and rolle_id = #{id}")
264
+ rolle_deleted = Tools::LupKonfigKategorie::Version.find_by("version = #{version_of_deleted_record} and lup_konfig_kategorie_id = #{id}")
342
265
  return rolle_deleted != nil && rolle_deleted.deleted_in_original_table == true
343
266
  end
344
-
267
+
345
268
  def restore_record(id)
346
- Rolle.restore_deleted(id)
269
+ Tools::LupKonfigKategorie.restore_deleted(id)
347
270
  end
348
-
271
+
349
272
  def restored_record_available_in_original_table?(id)
350
273
  begin
351
- Rolle.find(id)
274
+ Tools::LupKonfigKategorie.find(id)
352
275
  return true
353
276
  rescue
354
277
  return false
355
278
  end
356
279
  end
357
-
280
+
358
281
  def restored_record_versioned?(id, highest_version)
359
282
  version_of_restored_record = highest_version
360
- rolle_restored = Rolle.find(id).versions.find(:first, :conditions => "version = #{version_of_restored_record}")
283
+ rolle_restored = Tools::LupKonfigKategorie.find(id).versions.find_by("version = #{version_of_restored_record}")
361
284
  return rolle_restored != nil && rolle_restored.deleted_in_original_table == false
362
285
  end
363
-
286
+
364
287
  def save_record_without_changes(id)
365
- versions_before_save = Rolle.find(id).versions.find(:all).size
366
- rolle = Rolle.find(id)
288
+ versions_before_save = Tools::LupKonfigKategorie.find(id).versions.all.size
289
+ rolle = Tools::LupKonfigKategorie.find(id)
367
290
  rolle.update_attributes(:name=>rolle.name)
368
- versions_after_save = Rolle.find(id).versions.find(:all).size
291
+ versions_after_save = Tools::LupKonfigKategorie.find(id).versions.all.size
369
292
  return versions_before_save == versions_after_save
370
293
  end
371
-
294
+
372
295
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtiss_acts_as_versioned
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rick Olson
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-01-25 00:00:00.000000000 Z
13
+ date: 2019-11-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -144,9 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  requirements: []
146
146
  rubyforge_project: rtiss_acts_as_versioned
147
- rubygems_version: 2.2.2
147
+ rubygems_version: 2.7.9
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: Add simple versioning to ActiveRecord models (TISS version).
151
151
  test_files: []
152
- has_rdoc: