immosquare-active-record-change-tracker 0.1.1 → 0.1.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdf4dad2fc3d9058dad099ef5dd9fffff4a668a4d53ba4fa883ec646c5208c62
|
4
|
+
data.tar.gz: f395ee20c35136b578b73251de92ec388d389e3cc3f4cd3ee6147936645fa385
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bebb9b4525197085eceb6aab6d3de99d039ed77223a8fb98a3224ddca314c626134688b886e91d8e8445574ef67f2a50add1339adafac2e34582493655fd48a
|
7
|
+
data.tar.gz: 89aa7f67896f3a7ae5b05268786b5fa6e79169223bbc06165829df8e65259827ad5f4cb4b3d2e9966e2f2582eb6ab786c7d7cc6800b5f6fba73d7ea3e80549f9
|
@@ -9,6 +9,13 @@ module ImmosquareActiveRecordChangeTracker
|
|
9
9
|
extend ActiveSupport::Concern
|
10
10
|
|
11
11
|
module ClassMethods
|
12
|
+
##============================================================##
|
13
|
+
## Can be improved with other gems like paranoia
|
14
|
+
##============================================================##
|
15
|
+
def kept_in_db
|
16
|
+
respond_to?(:paranoia_column)
|
17
|
+
end
|
18
|
+
|
12
19
|
def track_active_record_changes(options = {}, &modifier_block)
|
13
20
|
##============================================================##
|
14
21
|
## Inclut les méthodes d'instance nécessaires
|
@@ -16,13 +23,24 @@ module ImmosquareActiveRecordChangeTracker
|
|
16
23
|
include(ImmosquareActiveRecordChangeTracker::InstanceMethods)
|
17
24
|
|
18
25
|
##============================================================##
|
19
|
-
##
|
26
|
+
## Construire dynamiquement les options de l'association
|
20
27
|
##============================================================##
|
21
|
-
|
22
|
-
-> { order(:created_at => :desc) },
|
28
|
+
association_options = {
|
23
29
|
:as => :recordable,
|
24
|
-
:class_name => "ImmosquareActiveRecordChangeTracker::HistoryRecord"
|
25
|
-
|
30
|
+
:class_name => "ImmosquareActiveRecordChangeTracker::HistoryRecord"
|
31
|
+
}
|
32
|
+
|
33
|
+
##============================================================##
|
34
|
+
## Ajouter :dependent => :destroy si acts_as_paranoid n'est pas utilisé
|
35
|
+
## on se base sur paranoia_column car acts_as_paranoid répond true
|
36
|
+
## sur tous les modèles du temps que la gem est incluse
|
37
|
+
##============================================================##
|
38
|
+
association_options[:dependent] = :destroy if !kept_in_db
|
39
|
+
|
40
|
+
##============================================================##
|
41
|
+
## Ajout de l'association has_many :history_records
|
42
|
+
##============================================================##
|
43
|
+
has_many(:history_records, -> { order(:created_at => :desc) }, **association_options)
|
26
44
|
|
27
45
|
##============================================================##
|
28
46
|
## Stocker les options dans un attribut de classe
|
@@ -46,6 +64,7 @@ module ImmosquareActiveRecordChangeTracker
|
|
46
64
|
module InstanceMethods
|
47
65
|
private
|
48
66
|
|
67
|
+
|
49
68
|
##============================================================##
|
50
69
|
## Stocker les changements après un create ou save ou update
|
51
70
|
##============================================================##
|
@@ -119,10 +138,13 @@ module ImmosquareActiveRecordChangeTracker
|
|
119
138
|
end
|
120
139
|
|
121
140
|
##============================================================##
|
122
|
-
## Stocker l'événement destroy
|
123
|
-
##
|
141
|
+
## Stocker l'événement destroy que si la classe est paranoïaque
|
142
|
+
## Si on supprime définitivement de la db, on ne stocke pas l'historique
|
143
|
+
## de suppression
|
124
144
|
##============================================================##
|
125
145
|
def delete_change_history
|
146
|
+
return if !self.class.kept_in_db
|
147
|
+
|
126
148
|
##============================================================##
|
127
149
|
## Récupéreration du modificateur en exécutant le bloc s'il est défini
|
128
150
|
##============================================================##
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: immosquare-active-record-change-tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- immosquare
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-10-
|
11
|
+
date: 2024-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A gem to track changes on ActiveRecord models
|
14
14
|
email:
|
@@ -23,7 +23,7 @@ files:
|
|
23
23
|
- lib/immosquare-active-record-change-tracker/models/history_record.rb
|
24
24
|
- lib/immosquare-active-record-change-tracker/railtie.rb
|
25
25
|
- lib/immosquare-active-record-change-tracker/version.rb
|
26
|
-
homepage: https://github.com/
|
26
|
+
homepage: https://github.com/immosquare/immosquare-active-record-change-tracker
|
27
27
|
licenses:
|
28
28
|
- MIT
|
29
29
|
metadata: {}
|
@@ -42,7 +42,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: '0'
|
44
44
|
requirements: []
|
45
|
-
rubygems_version: 3.5.
|
45
|
+
rubygems_version: 3.5.21
|
46
46
|
signing_key:
|
47
47
|
specification_version: 4
|
48
48
|
summary: ActiveRecord Change Tracker
|