immosquare-active-record-change-tracker 0.1.1 → 0.1.2
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
|
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
|