logga 2.0.0 → 2.2.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 +4 -1
- data/Rakefile +4 -5
- data/VERSION +1 -1
- data/lib/logga/active_record.rb +18 -11
- metadata +19 -161
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 175040125db02fd1bda317f34c45ea3bd45d003f07270c7e4f6942653a39967b
|
4
|
+
data.tar.gz: 737bfad69f886d068d83b99f8a574ffb52e18d6aeb8fa93e9efe9605e652918e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f93d4828418904ef7fddf845ac09268e9d2f3cf20b3f56c617df107d7026f6840be34d08723d039cde0f4551f9b9d8bc6b6a8e76dc5c3e20e446784f33a1199
|
7
|
+
data.tar.gz: 128d151bd2e65cb28fc0d2ab42b7baf58ec0518e52cadf439b0175478abd7740cbae0bb1c9ed1b6d60b86ab131e87eb056c34c76828fd650433b36ef813e0a1a
|
data/README.md
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
Provides attribute logging functionality to ActiveRecord objects.
|
4
4
|
|
5
|
-
|
5
|
+
## Requirements
|
6
|
+
|
7
|
+
Requires Ruby 2.7.3 or above
|
6
8
|
|
7
9
|
## Installation
|
8
10
|
|
@@ -59,3 +61,4 @@ The gem is available as open source under the terms of the [MIT License](http://
|
|
59
61
|
|
60
62
|
- Write some tests
|
61
63
|
- Improve the documentation
|
64
|
+
- 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
|
-
2.
|
1
|
+
2.2.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,197 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logga
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.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: 2021-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '5.2'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
20
|
- - "~>"
|
25
21
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: activesupport
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '5.2'
|
22
|
+
version: '6.0'
|
34
23
|
type: :runtime
|
35
24
|
prerelease: false
|
36
25
|
version_requirements: !ruby/object:Gem::Requirement
|
37
26
|
requirements:
|
38
|
-
- - "
|
27
|
+
- - ">="
|
39
28
|
- !ruby/object:Gem::Version
|
40
29
|
version: '5.2'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: boxt_ruby_style_guide
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '4.0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '4.0'
|
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.0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
30
|
- - "~>"
|
67
31
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
32
|
+
version: '6.0'
|
69
33
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
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
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '1.0'
|
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
|
34
|
+
name: activesupport
|
155
35
|
requirement: !ruby/object:Gem::Requirement
|
156
36
|
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
|
-
- - "~>"
|
37
|
+
- - ">="
|
165
38
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: rake
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
39
|
+
version: '5.2'
|
171
40
|
- - "~>"
|
172
41
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
174
|
-
type: :
|
42
|
+
version: '6.0'
|
43
|
+
type: :runtime
|
175
44
|
prerelease: false
|
176
45
|
version_requirements: !ruby/object:Gem::Requirement
|
177
46
|
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
|
-
- - "~>"
|
47
|
+
- - ">="
|
186
48
|
- !ruby/object:Gem::Version
|
187
|
-
version: '
|
188
|
-
type: :development
|
189
|
-
prerelease: false
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
49
|
+
version: '5.2'
|
192
50
|
- - "~>"
|
193
51
|
- !ruby/object:Gem::Version
|
194
|
-
version: '0
|
52
|
+
version: '6.0'
|
195
53
|
description: Extensions to ActiveRecord to log entries on model changes
|
196
54
|
email:
|
197
55
|
- developers@boxt.co.uk
|
@@ -210,7 +68,7 @@ homepage: https://github.com/boxt/logga
|
|
210
68
|
licenses:
|
211
69
|
- MIT
|
212
70
|
metadata: {}
|
213
|
-
post_install_message:
|
71
|
+
post_install_message:
|
214
72
|
rdoc_options: []
|
215
73
|
require_paths:
|
216
74
|
- lib
|
@@ -218,15 +76,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
76
|
requirements:
|
219
77
|
- - ">="
|
220
78
|
- !ruby/object:Gem::Version
|
221
|
-
version: '
|
79
|
+
version: '2.7'
|
222
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
81
|
requirements:
|
224
82
|
- - ">="
|
225
83
|
- !ruby/object:Gem::Version
|
226
84
|
version: '0'
|
227
85
|
requirements: []
|
228
|
-
rubygems_version: 3.
|
229
|
-
signing_key:
|
86
|
+
rubygems_version: 3.2.15
|
87
|
+
signing_key:
|
230
88
|
specification_version: 4
|
231
89
|
summary: ActiveRecord log entries on model changes
|
232
90
|
test_files: []
|