better_record 0.18.1 → 0.18.2

Sign up to get free protection for your applications and to get access to all the features.
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