logga 2.1.0 → 3.0.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 +4 -4
- data/README.md +7 -1
- data/Rakefile +4 -5
- data/VERSION +1 -1
- data/lib/logga/active_record.rb +18 -11
- metadata +24 -165
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 156b89d500e231c81261932228af86c934bf2a95d57eaeed5016aa98fcd8ce72
|
|
4
|
+
data.tar.gz: 6662b604701dc7a5422863977d7d2dbef2549af382f1bf7f038afb72c7d032e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7c13d5319ed50c2114252f174c5433b8b67a5c91ce78dca3f22f238f8c62c963e2a5a98ac21e68f5d70b89f95b02d80a94dc3de990f823fa1a100e31a60ca621
|
|
7
|
+
data.tar.gz: 0bcdbdffe2682e5d21ec90f02b4dc2cdf26fa1fb3ebe0f2893b69573b4bbd903526b983b59783ed3a37a11d4960c0f023ba47562432db8cc600a65522dbfcbe9
|
data/README.md
CHANGED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Provides attribute logging functionality to ActiveRecord objects.
|
|
4
4
|
|
|
5
|
-
[](https://badge.fury.io/rb/logga)
|
|
6
|
+
[](https://github.com/boxt/logga/actions/workflows/ci.yml)
|
|
7
|
+
|
|
8
|
+
## Requirements
|
|
9
|
+
|
|
10
|
+
Requires Ruby 2.7.3 or above
|
|
6
11
|
|
|
7
12
|
## Installation
|
|
8
13
|
|
|
@@ -59,3 +64,4 @@ The gem is available as open source under the terms of the [MIT License](http://
|
|
|
59
64
|
|
|
60
65
|
- Write some tests
|
|
61
66
|
- Improve the documentation
|
|
67
|
+
- Remove explicit `EXCLUDED_KEYS` and `EXCLUDED_SUFFIXES` for something that can be set in an initializer
|
data/Rakefile
CHANGED
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
require "bundler/gem_tasks"
|
|
4
4
|
require "rake/testtask"
|
|
5
|
+
require "rspec/core/rake_task"
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
t.
|
|
8
|
-
t.libs << "lib"
|
|
9
|
-
t.test_files = FileList["test/**/*_test.rb"]
|
|
7
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
|
8
|
+
t.pattern = Dir.glob("spec/**/*_spec.rb")
|
|
10
9
|
end
|
|
11
10
|
|
|
12
|
-
task
|
|
11
|
+
task test: :spec
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.0.0
|
data/lib/logga/active_record.rb
CHANGED
|
@@ -5,24 +5,28 @@ module Logga
|
|
|
5
5
|
extend ActiveSupport::Concern
|
|
6
6
|
|
|
7
7
|
EXCLUDED_KEYS = %i[id created_at deleted_at initial updated_at log sent_after_sales_emails].freeze
|
|
8
|
-
|
|
8
|
+
EXCLUDED_SUFFIXES = %i[_id _filenames].freeze
|
|
9
9
|
|
|
10
10
|
included do
|
|
11
|
-
class_attribute :
|
|
11
|
+
class_attribute :allowed_fields, instance_writer: false
|
|
12
12
|
class_attribute :excluded_fields, instance_writer: false
|
|
13
|
+
class_attribute :log_fields, instance_writer: false
|
|
14
|
+
|
|
15
|
+
self.allowed_fields = []
|
|
16
|
+
self.excluded_fields = []
|
|
13
17
|
self.log_fields = {}
|
|
14
|
-
self.excluded_fields = {}
|
|
15
18
|
end
|
|
16
19
|
|
|
17
20
|
class_methods do
|
|
18
|
-
def add_log_entries_for(*actions, to: :self, fields: {}, exclude_fields: [])
|
|
19
|
-
after_create
|
|
21
|
+
def add_log_entries_for(*actions, to: :self, fields: {}, allowed_fields: [], exclude_fields: [])
|
|
22
|
+
after_create :log_model_creation if actions.include?(:create)
|
|
20
23
|
after_destroy :log_model_deletion if actions.include?(:delete)
|
|
21
|
-
after_update
|
|
24
|
+
after_update :log_model_changes if actions.include?(:update)
|
|
22
25
|
define_method(:log_receiver) { to == :self ? self : send(to) }
|
|
23
26
|
|
|
27
|
+
self.allowed_fields = Array(allowed_fields)
|
|
28
|
+
self.excluded_fields = allowed_fields.blank? ? Array(exclude_fields) : []
|
|
24
29
|
self.log_fields = fields
|
|
25
|
-
self.excluded_fields = Array(exclude_fields)
|
|
26
30
|
end
|
|
27
31
|
end
|
|
28
32
|
|
|
@@ -105,10 +109,13 @@ module Logga
|
|
|
105
109
|
end
|
|
106
110
|
|
|
107
111
|
def reject_change?(key)
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
sym_key = key.to_sym
|
|
113
|
+
return allowed_fields.exclude?(sym_key) if allowed_fields.present?
|
|
114
|
+
|
|
115
|
+
EXCLUDED_KEYS.include?(sym_key) ||
|
|
116
|
+
(log_fields.exclude?(sym_key) &&
|
|
117
|
+
(excluded_fields.include?(sym_key) ||
|
|
118
|
+
EXCLUDED_SUFFIXES.any? { |suffix| key.to_s.end_with?(suffix.to_s) }))
|
|
112
119
|
end
|
|
113
120
|
|
|
114
121
|
def should_not_log?
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logga
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Boxt
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-01-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -16,182 +16,40 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '6'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '8'
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
26
|
requirements:
|
|
24
27
|
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
29
|
+
version: '6'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '8'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: activesupport
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
30
36
|
requirements:
|
|
31
37
|
- - ">="
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
39
|
+
version: '6'
|
|
40
|
+
- - "<"
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '8'
|
|
34
43
|
type: :runtime
|
|
35
44
|
prerelease: false
|
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
46
|
requirements:
|
|
38
47
|
- - ">="
|
|
39
48
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
41
|
-
-
|
|
42
|
-
name: boxt_ruby_style_guide
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '4.2'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '4.2'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: bundler
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '2.1'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '2.1'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: byebug
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '11.0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '11.0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: factory_bot
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '4.8'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '4.8'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: minitest
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - "~>"
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '5.13'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - "~>"
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '5.13'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: minitest-bang
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - "~>"
|
|
49
|
+
version: '6'
|
|
50
|
+
- - "<"
|
|
116
51
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - "~>"
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '1.0'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: minitest-fail-fast
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: '0.1'
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - "~>"
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: '0.1'
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: minitest-macos-notification
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - "~>"
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '0.3'
|
|
146
|
-
type: :development
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - "~>"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '0.3'
|
|
153
|
-
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: minitest-reporters
|
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
|
156
|
-
requirements:
|
|
157
|
-
- - "~>"
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: '1.4'
|
|
160
|
-
type: :development
|
|
161
|
-
prerelease: false
|
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
-
requirements:
|
|
164
|
-
- - "~>"
|
|
165
|
-
- !ruby/object:Gem::Version
|
|
166
|
-
version: '1.4'
|
|
167
|
-
- !ruby/object:Gem::Dependency
|
|
168
|
-
name: rake
|
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
|
170
|
-
requirements:
|
|
171
|
-
- - "~>"
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: '13.0'
|
|
174
|
-
type: :development
|
|
175
|
-
prerelease: false
|
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
-
requirements:
|
|
178
|
-
- - "~>"
|
|
179
|
-
- !ruby/object:Gem::Version
|
|
180
|
-
version: '13.0'
|
|
181
|
-
- !ruby/object:Gem::Dependency
|
|
182
|
-
name: simplecov
|
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
|
184
|
-
requirements:
|
|
185
|
-
- - "~>"
|
|
186
|
-
- !ruby/object:Gem::Version
|
|
187
|
-
version: '0.17'
|
|
188
|
-
type: :development
|
|
189
|
-
prerelease: false
|
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
-
requirements:
|
|
192
|
-
- - "~>"
|
|
193
|
-
- !ruby/object:Gem::Version
|
|
194
|
-
version: '0.17'
|
|
52
|
+
version: '8'
|
|
195
53
|
description: Extensions to ActiveRecord to log entries on model changes
|
|
196
54
|
email:
|
|
197
55
|
- developers@boxt.co.uk
|
|
@@ -209,8 +67,9 @@ files:
|
|
|
209
67
|
homepage: https://github.com/boxt/logga
|
|
210
68
|
licenses:
|
|
211
69
|
- MIT
|
|
212
|
-
metadata:
|
|
213
|
-
|
|
70
|
+
metadata:
|
|
71
|
+
rubygems_mfa_required: 'true'
|
|
72
|
+
post_install_message:
|
|
214
73
|
rdoc_options: []
|
|
215
74
|
require_paths:
|
|
216
75
|
- lib
|
|
@@ -218,15 +77,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
218
77
|
requirements:
|
|
219
78
|
- - ">="
|
|
220
79
|
- !ruby/object:Gem::Version
|
|
221
|
-
version: '
|
|
80
|
+
version: '2.7'
|
|
222
81
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
82
|
requirements:
|
|
224
83
|
- - ">="
|
|
225
84
|
- !ruby/object:Gem::Version
|
|
226
85
|
version: '0'
|
|
227
86
|
requirements: []
|
|
228
|
-
rubygems_version: 3.
|
|
229
|
-
signing_key:
|
|
87
|
+
rubygems_version: 3.2.22
|
|
88
|
+
signing_key:
|
|
230
89
|
specification_version: 4
|
|
231
90
|
summary: ActiveRecord log entries on model changes
|
|
232
91
|
test_files: []
|