logga 2.1.2 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -1
  3. data/VERSION +1 -1
  4. data/lib/logga/active_record.rb +18 -11
  5. metadata +4 -102
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e701347d79260bff1bb8db40f220512a456720b66efa246de76dac9a9790bac2
4
- data.tar.gz: a8b56e341270752b63f5d1195232e0ac90972d3e66bf0368561b0775ea45e99d
3
+ metadata.gz: 175040125db02fd1bda317f34c45ea3bd45d003f07270c7e4f6942653a39967b
4
+ data.tar.gz: 737bfad69f886d068d83b99f8a574ffb52e18d6aeb8fa93e9efe9605e652918e
5
5
  SHA512:
6
- metadata.gz: 4991d4f6fb02cb56c5f3b952416fb2c58209eae7a84d65d8db9147b797cab1c40af9123d1be4e70a4b59a9d5a46247f7a1a913695558bf9d7641e76b1fcc38c0
7
- data.tar.gz: ccdd5e59e29546563dc5cbba93796682dcdb07286aa91da7974d544daa41a3d43724b93d749d41b7dd5e957240f08f0b9ca062e74e22242d4c22e727dc34e799
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
- [![CircleCI](https://circleci.com/gh/boxt/logga/tree/master.svg?style=svg&circle-token=f9550ac25744c292e3680638bad3d5deafb1c4e1)](https://circleci.com/gh/boxt/logga/tree/master)
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
1
+ 2.2.0
@@ -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
- EXCLUDED_KEYS_SUFFIXES = %i[_id _filenames].freeze
8
+ EXCLUDED_SUFFIXES = %i[_id _filenames].freeze
9
9
 
10
10
  included do
11
- class_attribute :log_fields, instance_writer: false
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 :log_model_creation if actions.include?(: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 :log_model_changes if actions.include?(: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
- EXCLUDED_KEYS.include?(key.to_sym) ||
109
- (!log_fields.include?(key.to_sym) &&
110
- (excluded_fields.include?(key.to_sym) ||
111
- EXCLUDED_KEYS_SUFFIXES.any? { |suffix| key.to_s.end_with?(suffix.to_s) }))
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.1.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: 2020-10-23 00:00:00.000000000 Z
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.5'
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.1.4
86
+ rubygems_version: 3.2.15
185
87
  signing_key:
186
88
  specification_version: 4
187
89
  summary: ActiveRecord log entries on model changes