rtiss_acts_as_versioned 0.8.3 → 0.9.0

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
- 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: