better_record 0.23.7 → 0.25.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: 71e38a32a6cddd2e761dfcb4563ecdd95517356246c22c53990a903b82eb9970
4
- data.tar.gz: 3ea824e4b03979ee7900562cc7a499cf85ecd5cf6aa7e1b5473fe7d692f54ef6
3
+ metadata.gz: 925a6e392a7e09a6a37ac206c21b744ff4302e2230f19fc103cf4dc2034f605b
4
+ data.tar.gz: 23d59e5cb90a4bd57941cb6098acc0f242b176bb7703418f3484ce6a80699d55
5
5
  SHA512:
6
- metadata.gz: ccf1c9213deaee91558e5113ffe462d03fde05e6f3721531a41d6eca98311bb06560a95d70aaa4acb0c822197da7170bf830326fc56a959daf2d9a18648105f0
7
- data.tar.gz: 40f68dc4593e6b51a8b005a65bd86d34db57643c7c948d8b067297a3173c11c57653c07c57ab832c9b6f3e0d92b75bf62366bd63c8c3122ca2bfef232d932928
6
+ metadata.gz: '08ce52bf923b009a567f52bb4188fb010df8dde927bd88f03b4986d6546c4c3cff2810d6e80f85acc6ef7a8b3e6dfe5795c490ba8f90fa0f71c49a17191f088b'
7
+ data.tar.gz: 7999a2285c92638ca80f4dcc57529d812ab83855fa364cea859ebb593b3047173db84a7db3677573888c2c07a6a0a05bead706443181b92309d5f01f6e651138
@@ -29,10 +29,13 @@ 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
34
36
  rescue ActiveRecord::StatementInvalid
35
37
  self.const_set(:LoggedAction, BetterRecord::LoggedAction)
38
+ self
36
39
  end
37
40
 
38
41
  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
@@ -8,9 +8,9 @@ if defined?(Redis) && defined?(Redis::Namespace)
8
8
  tmp_rds.get('test')
9
9
  rescue
10
10
  if (!Rails.env.production? && !Boolean.parse(ENV.fetch('FORCE_REDIS') { false })) || Boolean.parse(ENV.fetch('ALLOW_FAKE_REDIS') { false })
11
- require BetterRecord::Engine.root.join('lib', 'better_record', 'fake_redis')
11
+ raise unless defined?(TinyFakeRedis)
12
12
  puts "WARNING!!! Redis Server not found"
13
- tmp_rds = BetterRecord::FakeRedis.new
13
+ tmp_rds = TinyFakeRedis.new
14
14
  else
15
15
  raise
16
16
  end
@@ -23,7 +23,7 @@ module BetterRecord
23
23
  $!.message, $!.backtrace if debug
24
24
 
25
25
  if type_val == :table_name_without_schema
26
- type_val = klass.table_name.to_s.split('.').first
26
+ type_val = klass.table_name.to_s.split('.').last
27
27
  else
28
28
  type_val = klass.polymorphic_name
29
29
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterRecord
4
- VERSION = '0.23.7'
4
+ VERSION = '0.25.2'
5
5
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Array
4
- def to_enum
4
+ def to_db_enum
5
5
  hashed = {}
6
6
  each {|v| hashed[v] = v.to_s}
7
7
  hashed
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.23.7
4
+ version: 0.25.2
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: 2019-10-11 00:00:00.000000000 Z
11
+ date: 2020-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 5.2.3
22
+ version: 5.2.4
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 5.2.3
32
+ version: 5.2.4
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: pg
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: '0.0'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 0.0.17
62
+ version: 0.0.19
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: '0.0'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 0.0.17
72
+ version: 0.0.19
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: pry-rails
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -114,22 +114,22 @@ dependencies:
114
114
  name: jwt
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: 2.1.0
120
117
  - - "~>"
121
118
  - !ruby/object:Gem::Version
122
119
  version: '2.1'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 2.1.0
123
123
  type: :runtime
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: 2.1.0
130
127
  - - "~>"
131
128
  - !ruby/object:Gem::Version
132
129
  version: '2.1'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 2.1.0
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: jwe
135
135
  requirement: !ruby/object:Gem::Requirement
@@ -154,62 +154,82 @@ dependencies:
154
154
  name: csv
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: 3.0.0
160
157
  - - "~>"
161
158
  - !ruby/object:Gem::Version
162
159
  version: '3.0'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 3.1.2
163
163
  type: :runtime
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: 3.0.0
170
167
  - - "~>"
171
168
  - !ruby/object:Gem::Version
172
169
  version: '3.0'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 3.1.2
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: rspec-rails
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
177
  - - "~>"
178
178
  - !ruby/object:Gem::Version
179
- version: '3.7'
179
+ version: '3.9'
180
180
  - - ">="
181
181
  - !ruby/object:Gem::Version
182
- version: 3.7.2
182
+ version: 3.9.0
183
183
  type: :development
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
186
186
  requirements:
187
187
  - - "~>"
188
188
  - !ruby/object:Gem::Version
189
- version: '3.7'
189
+ version: '3.9'
190
190
  - - ">="
191
191
  - !ruby/object:Gem::Version
192
- version: 3.7.2
192
+ version: 3.9.0
193
193
  - !ruby/object:Gem::Dependency
194
- name: factory_bot_rails
194
+ name: tiny_fake_redis
195
195
  requirement: !ruby/object:Gem::Requirement
196
196
  requirements:
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: 4.10.0
200
197
  - - "~>"
201
198
  - !ruby/object:Gem::Version
202
- version: '4.10'
199
+ version: '0.1'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 0.1.0
203
203
  type: :development
204
204
  prerelease: false
205
205
  version_requirements: !ruby/object:Gem::Requirement
206
206
  requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '0.1'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 0.1.0
213
+ - !ruby/object:Gem::Dependency
214
+ name: factory_bot_rails
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: '4.10'
207
220
  - - ">="
208
221
  - !ruby/object:Gem::Version
209
222
  version: 4.10.0
223
+ type: :development
224
+ prerelease: false
225
+ version_requirements: !ruby/object:Gem::Requirement
226
+ requirements:
210
227
  - - "~>"
211
228
  - !ruby/object:Gem::Version
212
229
  version: '4.10'
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: 4.10.0
213
233
  description: |2
214
234
  This app extends active record to allow you to change the polymorphic type value in relationships.
215
235
  It also extends active record batching functions to be able to order records while batching.
@@ -244,6 +264,7 @@ files:
244
264
  - app/models/better_record/logged_action.rb
245
265
  - app/models/better_record/model_concerns/has_protected_password.rb
246
266
  - app/models/better_record/model_concerns/has_validated_avatar.rb
267
+ - app/models/better_record/model_concerns/logged_action_base.rb
247
268
  - app/models/better_record/table_size.rb
248
269
  - app/views/better_record/table_sizes/index.html.erb
249
270
  - app/views/better_record/table_sizes/show.html.erb
@@ -301,7 +322,6 @@ files:
301
322
  - lib/better_record/encoder.rb
302
323
  - lib/better_record/engine.rb
303
324
  - lib/better_record/exchange_rate_integer.rb
304
- - lib/better_record/fake_redis.rb
305
325
  - lib/better_record/gender.rb
306
326
  - lib/better_record/inject_methods.rb
307
327
  - lib/better_record/jwt.rb
@@ -345,7 +365,7 @@ homepage: https://github.com/SampsonCrowley/multi_app_active_record
345
365
  licenses:
346
366
  - MIT
347
367
  metadata: {}
348
- post_install_message:
368
+ post_install_message:
349
369
  rdoc_options: []
350
370
  require_paths:
351
371
  - lib
@@ -360,8 +380,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
360
380
  - !ruby/object:Gem::Version
361
381
  version: '0'
362
382
  requirements: []
363
- rubygems_version: 3.0.6
364
- signing_key:
383
+ rubygems_version: 3.1.3
384
+ signing_key:
365
385
  specification_version: 4
366
386
  summary: Fix functions that are lacking in Active record to be compatible with multi-app
367
387
  databases
@@ -1,107 +0,0 @@
1
- # encoding: utf-8
2
- # frozen_string_literal: true
3
-
4
- module BetterRecord
5
- class FakeRedis
6
- def data
7
- @data ||= {}
8
- end
9
-
10
- def incr(key)
11
- data[key] ||= 0
12
- data[key] += 1
13
- end
14
-
15
- def decr(key)
16
- data[key] ||= 0
17
- data[key] -= 1
18
- end
19
-
20
- def set(key, val)
21
- data[key] = val
22
- end
23
-
24
- def get(key)
25
- data[key].dup
26
- end
27
-
28
- def lpush(key, val)
29
- require_array
30
- data[key].unshift val
31
- data[key].size
32
- end
33
-
34
- def lrem(key, count, val)
35
- require_array
36
- start_idx = 0
37
- arr = data[key]
38
- removed = 0
39
-
40
- if count == 0
41
- removed = (arr.select {|v| v != val}).size
42
- arr.select! {|v| v != val}
43
- else
44
- arr.reverse! if count < 0
45
-
46
- count.abs.times do
47
- removed += 1 unless arr.delete_at(arr.index(val) || arr.size).nil?
48
- end
49
-
50
- arr.reverse! if count < 0
51
- end
52
-
53
- data[key] = arr
54
- removed
55
- end
56
-
57
- def lrange(key, start_idx, end_idx = -1)
58
- data[key][start_idx..end_idx] || []
59
- end
60
-
61
- def rpush(key, val)
62
- require_array
63
- data[key] << val
64
- data[key].size
65
- end
66
-
67
- def rpushx(key, val)
68
- return 0 unless data[key]
69
- rpush key, val
70
- end
71
-
72
- def rpop(key)
73
- require_array
74
- data[key].pop
75
- end
76
-
77
- def rpoplpush(one, two)
78
- val = rpop(one)
79
- lpush two, val
80
- val
81
- end
82
-
83
- def keys(pattern = ".*")
84
- data.keys.filter {|k| k.to_s =~ /^#{pattern}$/}
85
- end
86
-
87
- def del(*keys)
88
- i = 0
89
- keys.map {|k| data.delete(k) && (i += 1) }
90
- i
91
- end
92
-
93
- def method_missing
94
- return nil
95
- end
96
-
97
- private
98
- def require_array(key)
99
- data[key] ||= []
100
- raise_wrong_type unless data[key].is_a?(Array)
101
- end
102
-
103
- def raise_wrong_type
104
- raise CommandError.new("WRONGTYPE Operation against a key holding the wrong kind of value")
105
- end
106
- end
107
- end