better_record 0.24.4 → 0.25.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ff455d6c0733bd00110232de599657c78892eabedfdd9b8e0d9635708827644
4
- data.tar.gz: 644cc1599840f0aa5cc018bbb443284ee4af68043c542579a2fab948da6ef1ed
3
+ metadata.gz: 5e14508d1f965fba3627ea9c4449b9fa99aae6dc4888d50ca184e376e0bfd7f8
4
+ data.tar.gz: b7dc73ef64bf0a4493a04bccd48c87796d388fc1f1cc51dc0aed4e70fc697ab8
5
5
  SHA512:
6
- metadata.gz: 393e7a7599b9c4807fb2f300fb37fd726f6a4fca9a9c9108a441dd9ce1d348c0a94282591a461c46b78744a9105f3bcafe475fe093326002506572b42ab0d728
7
- data.tar.gz: 2624e8c6bb235930ecdd302bdc7446e58c57e9f39b9403bf17ea377dc114e20bc14e066fd6743099a55f67c2293621cae6bde5f8b7b92863b9a332d87ca62cf3
6
+ metadata.gz: aa140f70f9b6e173c9db0116c81e65a5981e7156ee1ac579a4bf49605652e7e23f4b81cc040fdf1664106d65db1195dcbdff10ccee4ba051b5d40d3936f899f5
7
+ data.tar.gz: 40f4fdc3cac02693a4336c6216f3e505f06e196aea1fdf53e081dea98307b7aed1dfd188c88e68f890c22ae72704a06ceea8e226657e532ce5d1d5e90e52f8be
@@ -29,10 +29,14 @@ module BetterRecord
29
29
  connection.execute(%Q(SELECT 1 FROM #{t_name}_#{self.table_name_only} LIMIT 1))
30
30
 
31
31
  self.const_set(:LoggedAction, Class.new(ApplicationRecord))
32
+ self.const_get(:LoggedAction).include(ModelConcerns::LoggedActionBase)
32
33
  self.const_get(:LoggedAction).table_name = "#{t_name}_#{self.table_name_only}"
33
34
  self.const_get(:LoggedAction).primary_key = :event_id
35
+ self.const_get(:LoggedAction).first
36
+ self
34
37
  rescue ActiveRecord::StatementInvalid
35
38
  self.const_set(:LoggedAction, BetterRecord::LoggedAction)
39
+ self
36
40
  end
37
41
 
38
42
  self.has_many self.audit_relation_name,
@@ -3,27 +3,15 @@
3
3
  module BetterRecord
4
4
  class LoggedAction < Base
5
5
  # == Constants ============================================================
6
- ACTIONS = {
7
- D: 'DELETE',
8
- I: 'INSERT',
9
- U: 'UPDATE',
10
- T: 'TRUNCATE',
11
- A: 'ARCHIVE',
12
- }.with_indifferent_access
13
6
 
14
7
  # == Attributes ===========================================================
15
8
  self.table_name = "#{BetterRecord.db_audit_schema}.logged_actions_view"
16
9
  self.primary_key = :event_id
17
10
 
18
11
  # == Extensions ===========================================================
12
+ include ModelConcerns::LoggedActionBase
19
13
 
20
14
  # == Relationships ========================================================
21
- belongs_to :audited,
22
- polymorphic: :true,
23
- primary_type: :table_name,
24
- foreign_key: :row_id,
25
- foreign_type: :table_name,
26
- optional: true
27
15
 
28
16
  # == Validations ==========================================================
29
17
 
@@ -34,37 +22,10 @@ module BetterRecord
34
22
  # == Boolean Class Methods ================================================
35
23
 
36
24
  # == Class Methods ========================================================
37
- def self.default_print
38
- [
39
- :event_id,
40
- :row_id,
41
- :full_name,
42
- :app_user_id,
43
- :app_user_type,
44
- :action_type,
45
- :changed_columns
46
- ]
47
- end
48
-
49
- # def self.set_audits_methods!
50
- # self.has_many self.audit_relation_name,
51
- # class_name: 'BetterRecord::LoggedAction',
52
- # primary_type: :table_name,
53
- # foreign_key: :row_id,
54
- # foreign_type: :table_name,
55
- # as: self.audit_relation_name
56
- # end
57
25
 
58
26
  # == Boolean Methods ======================================================
59
27
 
60
28
  # == Instance Methods =====================================================
61
- def changed_columns
62
- (self.changed_fields || {}).keys.join(', ').presence || 'N/A'
63
- end
64
-
65
- def action_type
66
- ACTIONS[action] || 'UNKNOWN'
67
- end
68
29
 
69
30
  end
70
31
  end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/concern'
4
+
5
+ module BetterRecord
6
+ module ModelConcerns
7
+ module LoggedActionBase
8
+ extend ActiveSupport::Concern
9
+
10
+ ACTIONS = {
11
+ D: 'DELETE',
12
+ I: 'INSERT',
13
+ U: 'UPDATE',
14
+ T: 'TRUNCATE',
15
+ A: 'ARCHIVE',
16
+ }.with_indifferent_access
17
+
18
+ included do
19
+ belongs_to :record,
20
+ polymorphic: :true,
21
+ primary_type: :table_name,
22
+ foreign_key: :row_id,
23
+ foreign_type: :table_name,
24
+ optional: true
25
+ end
26
+
27
+ class_methods do
28
+ def default_print
29
+ [
30
+ :event_id,
31
+ :row_id,
32
+ :full_name,
33
+ :app_user_id,
34
+ :app_user_type,
35
+ :action_type,
36
+ :changed_columns
37
+ ]
38
+ end
39
+ end
40
+
41
+ def changed_columns
42
+ (self.changed_fields || {}).keys.join(', ').presence || 'N/A'
43
+ end
44
+
45
+ def action_type
46
+ ACTIONS[action] || 'UNKNOWN'
47
+ end
48
+ end
49
+ end
50
+ end
@@ -85,12 +85,6 @@ module BetterRecord
85
85
  # == Boolean Methods ======================================================
86
86
 
87
87
  # == Instance Methods =====================================================
88
- def changed_columns
89
- (self.changed_fields || {}).keys.join(', ').presence || 'N/A'
90
- end
91
88
 
92
- def action_type
93
- ACTIONS[action] || 'UNKNOWN'
94
- end
95
89
  end
96
90
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterRecord
4
- VERSION = '0.24.4'
4
+ VERSION = '0.25.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.4
4
+ version: 0.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sampson Crowley
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-12 00:00:00.000000000 Z
11
+ date: 2020-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -244,6 +244,7 @@ files:
244
244
  - app/models/better_record/logged_action.rb
245
245
  - app/models/better_record/model_concerns/has_protected_password.rb
246
246
  - app/models/better_record/model_concerns/has_validated_avatar.rb
247
+ - app/models/better_record/model_concerns/logged_action_base.rb
247
248
  - app/models/better_record/table_size.rb
248
249
  - app/views/better_record/table_sizes/index.html.erb
249
250
  - app/views/better_record/table_sizes/show.html.erb
@@ -345,7 +346,7 @@ homepage: https://github.com/SampsonCrowley/multi_app_active_record
345
346
  licenses:
346
347
  - MIT
347
348
  metadata: {}
348
- post_install_message:
349
+ post_install_message:
349
350
  rdoc_options: []
350
351
  require_paths:
351
352
  - lib
@@ -361,7 +362,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
361
362
  version: '0'
362
363
  requirements: []
363
364
  rubygems_version: 3.0.3
364
- signing_key:
365
+ signing_key:
365
366
  specification_version: 4
366
367
  summary: Fix functions that are lacking in Active record to be compatible with multi-app
367
368
  databases