better_record 0.18.1 → 0.18.2

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: 6aaabec32e93503cc3280479fb33a4b4e56ec33887ce430592730c6a42f61389
4
- data.tar.gz: a02c353a6fa6a392c15cb8bed0710d5a49ee79c617db866e69c46974d4b23074
3
+ metadata.gz: f29175178880d4a7a9cf33d526c4413306e20fbdc3475ff3e29c5d8aaa6e9402
4
+ data.tar.gz: 88684f5a4f39fb50bcd3ddac3bd6578bdd9a2ff2f0b3f7910dec6ec22160ba47
5
5
  SHA512:
6
- metadata.gz: 96baad4e4a3813d71771bec10b5432f6bdb0bdea299c77a137ceae5cebe2ddb1ac64f1535e0cd8a3a756841b3ce57700d2e88a0cb9fe1de8c27bd31f7dbff3ef
7
- data.tar.gz: a173fe808cacd7ccc6ee502a8cc8e05a156bf40001071e867a668948a976891177fd49ff47a24edd302d4221443106400451c1cc22e8d6a8a2659710ba048631
6
+ metadata.gz: 3f4cca4564a0009bd7c952b4f34f24afeb5aea6e94ac2501776685834f5fd71b1c369f60e15900330d44e9fa0a98b2b34a841cd5421f60bceec86311c5770666
7
+ data.tar.gz: 8e00305d1efc5f7f795e57e0961165b6fcc7b69834367854b78a81c67c13d4162554fe6461809d9e035a06cf2a1147a2e3910d9e9d0d9c42b52545013a589b89
@@ -24,13 +24,23 @@ module BetterRecord
24
24
 
25
25
  # == Class Methods ========================================================
26
26
  def self.set_audit_methods!
27
- m = __send__ BetterRecord.audit_relation_name, 'SETTING_INHERITANCE'
27
+ begin
28
+ connection.execute(%Q(SELECT 1 FROM #{BetterRecord::LoggedAction.table_name}_#{self.table_name} LIMIT 1))
29
+
30
+ self.const_set(:LoggedAction, Class.new(ApplicationRecord))
31
+ self.const_get(:LoggedAction).table_name = "#{BetterRecord::LoggedAction.table_name}_#{self.table_name}"
32
+ rescue ActiveRecord::StatementInvalid
33
+ self.const_set(:LoggedAction, BetterRecord::LoggedAction)
34
+ end
35
+
28
36
  self.has_many self.audit_relation_name,
29
- class_name: m.to_s,
37
+ class_name: "#{self.to_s}::LoggedAction",
30
38
  primary_type: :table_name,
31
39
  foreign_key: :row_id,
32
40
  foreign_type: :table_name,
33
41
  as: self.audit_relation_name
42
+
43
+ self
34
44
  end
35
45
 
36
46
  def self.gender_enum(col)
@@ -75,23 +85,14 @@ module BetterRecord
75
85
 
76
86
  class << self
77
87
  define_method BetterRecord.audit_relation_name do |*args, &block|
78
- @logger_model ||=
88
+ lm =
79
89
  begin
80
- connection.execute(%Q(SELECT 1 FROM #{BetterRecord::LoggedAction.table_name}_#{self.table_name} LIMIT 1))
81
-
82
- class self.to_s.constantize::LoggedAction < BetterRecord::LoggedAction
83
- self.table_name = "#{BetterRecord::LoggedAction.table_name}_#{self.to_s.deconstantize.constantize.table_name}"
84
- self
85
- end
86
- rescue ActiveRecord::StatementInvalid
87
- class self.to_s.constantize::LoggedAction < BetterRecord::LoggedAction
88
- self
89
- end
90
+ self.const_get(:LoggedAction)
91
+ rescue NameError
92
+ BetterRecord::LoggedAction
90
93
  end
91
94
 
92
- return @logger_model if args.present? && args.first == 'SETTING_INHERITANCE'
93
-
94
- base_q = @logger_model.where(table_name: self.table_name)
95
+ base_q = lm.where(table_name: self.table_name)
95
96
  base_q = base_q.where(*args) if args.present?
96
97
 
97
98
  if block
@@ -77,27 +77,29 @@ class UpdateBetterRecordAuditFunctions < ActiveRecord::Migration[5.2]
77
77
  puts "\n\nTo insert old audits back into logged_actions run:\n\n"
78
78
 
79
79
  puts <<-RUBY
80
- class BetterRecord::OldLoggedAction < BetterRecord::LoggedAction
80
+ class BetterRecord::OldLoggedAction < BetterRecord::Base
81
81
  self.table_name = "#{BetterRecord.db_audit_schema}.old_logged_actions"
82
82
  end
83
83
 
84
+ table_list = {}
85
+
84
86
  while BetterRecord::OldLoggedAction.count > 0
85
87
  p BetterRecord::OldLoggedAction.count
86
- BetterRecord::OldLoggedAction.order(:event_id).limit(100).each do |r|
87
- klass = nil
88
- begin
89
- BetterRecord::LoggedAction.connection.execute(%Q(SELECT 1 FROM #{BetterRecord.db_audit_schema}.logged_actions_#\{r.table_name}))
88
+ BetterRecord::OldLoggedAction.order(:event_id).limit(1500).each do |r|
89
+ unless table_list[r.table_name]
90
+ begin
91
+ BetterRecord::LoggedAction.connection.execute(%Q(SELECT 1 FROM #{BetterRecord.db_audit_schema}.logged_actions_#\{r.table_name}))
90
92
 
91
- klass = Class.new(BetterRecord::LoggedAction)
92
- klass.table_name = "#{BetterRecord.db_audit_schema}.logged_actions_#\{r.table_name}"
93
- BetterRecord.const_set(:NewLoggedAction, klass)
94
- BetterRecord::NewLoggedAction
95
- rescue ActiveRecord::StatementInvalid
96
- BetterRecord.const_set(:NewLoggedAction, nil)
97
- klass = BetterRecord::LoggedAction
93
+ table_list[r.table_name] = Class.new(BetterRecord::Base)
94
+ table_list[r.table_name].table_name = "#{BetterRecord.db_audit_schema}.logged_actions_#\{r.table_name}"
95
+ rescue ActiveRecord::StatementInvalid
96
+ table_list[r.table_name] = BetterRecord::LoggedAction
97
+ end
98
98
  end
99
- klass.create!(r.attributes)
100
- p klass.count
99
+
100
+ BetterRecord.const_set(:NewLoggedAction, table_list[r.table_name])
101
+ BetterRecord::NewLoggedAction.new(r.attributes).save!(validate: false)
102
+ p BetterRecord::NewLoggedAction.count
101
103
  r.delete
102
104
  end
103
105
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterRecord
4
- VERSION = '0.18.1'
4
+ VERSION = '0.18.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 0.18.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sampson Crowley