logga 2.1.2 → 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/VERSION +1 -1
- data/lib/logga/active_record.rb +18 -11
- metadata +4 -102
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/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,14 +1,14 @@
|
|
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
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
|
@@ -50,104 +50,6 @@ dependencies:
|
|
50
50
|
- - "~>"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '6.0'
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: boxt_ruby_style_guide
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - '='
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: 7.2.0
|
60
|
-
type: :development
|
61
|
-
prerelease: false
|
62
|
-
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
requirements:
|
64
|
-
- - '='
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 7.2.0
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: bundler
|
69
|
-
requirement: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
71
|
-
- - "~>"
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: '2.1'
|
74
|
-
type: :development
|
75
|
-
prerelease: false
|
76
|
-
version_requirements: !ruby/object:Gem::Requirement
|
77
|
-
requirements:
|
78
|
-
- - "~>"
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: '2.1'
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: byebug
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
84
|
-
requirements:
|
85
|
-
- - "~>"
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '11.0'
|
88
|
-
type: :development
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
requirements:
|
92
|
-
- - "~>"
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '11.0'
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: rake
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
requirements:
|
99
|
-
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '13.0'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - "~>"
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '13.0'
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: rspec
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - "~>"
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: '3.9'
|
116
|
-
type: :development
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '3.9'
|
123
|
-
- !ruby/object:Gem::Dependency
|
124
|
-
name: rspec-nc
|
125
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
-
requirements:
|
127
|
-
- - "~>"
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
version: '0.3'
|
130
|
-
type: :development
|
131
|
-
prerelease: false
|
132
|
-
version_requirements: !ruby/object:Gem::Requirement
|
133
|
-
requirements:
|
134
|
-
- - "~>"
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: '0.3'
|
137
|
-
- !ruby/object:Gem::Dependency
|
138
|
-
name: simplecov
|
139
|
-
requirement: !ruby/object:Gem::Requirement
|
140
|
-
requirements:
|
141
|
-
- - "~>"
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: '0.17'
|
144
|
-
type: :development
|
145
|
-
prerelease: false
|
146
|
-
version_requirements: !ruby/object:Gem::Requirement
|
147
|
-
requirements:
|
148
|
-
- - "~>"
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: '0.17'
|
151
53
|
description: Extensions to ActiveRecord to log entries on model changes
|
152
54
|
email:
|
153
55
|
- developers@boxt.co.uk
|
@@ -174,14 +76,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
76
|
requirements:
|
175
77
|
- - ">="
|
176
78
|
- !ruby/object:Gem::Version
|
177
|
-
version: '2.
|
79
|
+
version: '2.7'
|
178
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
81
|
requirements:
|
180
82
|
- - ">="
|
181
83
|
- !ruby/object:Gem::Version
|
182
84
|
version: '0'
|
183
85
|
requirements: []
|
184
|
-
rubygems_version: 3.
|
86
|
+
rubygems_version: 3.2.15
|
185
87
|
signing_key:
|
186
88
|
specification_version: 4
|
187
89
|
summary: ActiveRecord log entries on model changes
|