historiographer 3.1.0 → 3.1.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: 193d6326a6d665c589bcf2c67c16434b3cbf6e4bacd1b1d2f28f80d6ce3b229c
4
- data.tar.gz: 1e09d0ecf55bf816d444376fc11cbf00a38a8c9f2a2c6ebbbf62f6a7d173282d
3
+ metadata.gz: 51da7d8b48ed957be4d861ebc29d87cce064268091b882329b256037d0a81174
4
+ data.tar.gz: c8882522095c285fed79be3f1234487fecd7b8329f737f610100d5741a69775b
5
5
  SHA512:
6
- metadata.gz: 32854e876a7a557c8c0c7008b93cfaf33bd5e06748c97f86890cdcfc269b5baef958555ada0c49c551f035b9b655c41a7036debb908347e028554ec1c55ea5fb
7
- data.tar.gz: 3a27716e6159f01260bbb682309d9a82b1bf261cb3ba3eae13f38d8265894a99db938c1473b24a465c63ae24dbf27d0a4d7d66c9a823bf5e16ed0ce6fd8cab6a
6
+ metadata.gz: 2a359fa0aab667e275f08f3b683da62e199413a6f4af26e45ebddcf78b86f10600df8797508bbb68e09a4b3dddbdcb0453af9aee1348cba0c58bee028b6d163e
7
+ data.tar.gz: b7672d46b9765f1b20ee630bd220dcd40712b5768da9a42e0062cdf922639d4c836ee5d4a96cf352c7da249670359ee81f0c8fbbd9d1a0279ebdbda0dc3b9c2f
data/Gemfile CHANGED
@@ -6,6 +6,7 @@ ruby '2.6.3'
6
6
  gem 'activerecord', '>= 6'
7
7
  gem 'activerecord-import'
8
8
  gem 'activesupport'
9
+ gem 'rails', '>= 6'
9
10
  gem 'rollbar'
10
11
 
11
12
  group :development, :test do
data/Gemfile.lock CHANGED
@@ -18,6 +18,25 @@ GIT
18
18
  GEM
19
19
  remote: https://rubygems.org/
20
20
  specs:
21
+ actioncable (6.1.4.4)
22
+ actionpack (= 6.1.4.4)
23
+ activesupport (= 6.1.4.4)
24
+ nio4r (~> 2.0)
25
+ websocket-driver (>= 0.6.1)
26
+ actionmailbox (6.1.4.4)
27
+ actionpack (= 6.1.4.4)
28
+ activejob (= 6.1.4.4)
29
+ activerecord (= 6.1.4.4)
30
+ activestorage (= 6.1.4.4)
31
+ activesupport (= 6.1.4.4)
32
+ mail (>= 2.7.1)
33
+ actionmailer (6.1.4.4)
34
+ actionpack (= 6.1.4.4)
35
+ actionview (= 6.1.4.4)
36
+ activejob (= 6.1.4.4)
37
+ activesupport (= 6.1.4.4)
38
+ mail (~> 2.5, >= 2.5.4)
39
+ rails-dom-testing (~> 2.0)
21
40
  actionpack (6.1.4.4)
22
41
  actionview (= 6.1.4.4)
23
42
  activesupport (= 6.1.4.4)
@@ -25,12 +44,21 @@ GEM
25
44
  rack-test (>= 0.6.3)
26
45
  rails-dom-testing (~> 2.0)
27
46
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
47
+ actiontext (6.1.4.4)
48
+ actionpack (= 6.1.4.4)
49
+ activerecord (= 6.1.4.4)
50
+ activestorage (= 6.1.4.4)
51
+ activesupport (= 6.1.4.4)
52
+ nokogiri (>= 1.8.5)
28
53
  actionview (6.1.4.4)
29
54
  activesupport (= 6.1.4.4)
30
55
  builder (~> 3.1)
31
56
  erubi (~> 1.4)
32
57
  rails-dom-testing (~> 2.0)
33
58
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
59
+ activejob (6.1.4.4)
60
+ activesupport (= 6.1.4.4)
61
+ globalid (>= 0.3.6)
34
62
  activemodel (6.1.4.4)
35
63
  activesupport (= 6.1.4.4)
36
64
  activerecord (6.1.4.4)
@@ -38,6 +66,13 @@ GEM
38
66
  activesupport (= 6.1.4.4)
39
67
  activerecord-import (1.3.0)
40
68
  activerecord (>= 4.2)
69
+ activestorage (6.1.4.4)
70
+ actionpack (= 6.1.4.4)
71
+ activejob (= 6.1.4.4)
72
+ activerecord (= 6.1.4.4)
73
+ activesupport (= 6.1.4.4)
74
+ marcel (~> 1.0.0)
75
+ mini_mime (>= 1.1.0)
41
76
  activesupport (6.1.4.4)
42
77
  concurrent-ruby (~> 1.0, >= 1.0.2)
43
78
  i18n (>= 1.6, < 2)
@@ -78,6 +113,8 @@ GEM
78
113
  hashie (>= 3.4)
79
114
  mime-types (>= 1.16, < 3.0)
80
115
  oauth2 (~> 1.0)
116
+ globalid (1.0.0)
117
+ activesupport (>= 5.0)
81
118
  guard (2.18.0)
82
119
  formatador (>= 0.2.4)
83
120
  listen (>= 2.7, < 4.0)
@@ -105,8 +142,12 @@ GEM
105
142
  crass (~> 1.0.2)
106
143
  nokogiri (>= 1.5.9)
107
144
  lumberjack (1.2.8)
145
+ mail (2.7.1)
146
+ mini_mime (>= 0.1.1)
147
+ marcel (1.0.2)
108
148
  method_source (1.0.0)
109
149
  mime-types (2.99.3)
150
+ mini_mime (1.1.2)
110
151
  mini_portile2 (2.8.0)
111
152
  minitest (5.16.3)
112
153
  multi_json (1.15.0)
@@ -114,6 +155,7 @@ GEM
114
155
  multipart-post (2.2.3)
115
156
  mysql2 (0.5.0)
116
157
  nenv (0.3.0)
158
+ nio4r (2.5.8)
117
159
  nokogiri (1.13.8)
118
160
  mini_portile2 (~> 2.8.0)
119
161
  racc (~> 1.4)
@@ -138,6 +180,21 @@ GEM
138
180
  rack (2.2.4)
139
181
  rack-test (1.1.0)
140
182
  rack (>= 1.0, < 3)
183
+ rails (6.1.4.4)
184
+ actioncable (= 6.1.4.4)
185
+ actionmailbox (= 6.1.4.4)
186
+ actionmailer (= 6.1.4.4)
187
+ actionpack (= 6.1.4.4)
188
+ actiontext (= 6.1.4.4)
189
+ actionview (= 6.1.4.4)
190
+ activejob (= 6.1.4.4)
191
+ activemodel (= 6.1.4.4)
192
+ activerecord (= 6.1.4.4)
193
+ activestorage (= 6.1.4.4)
194
+ activesupport (= 6.1.4.4)
195
+ bundler (>= 1.15.0)
196
+ railties (= 6.1.4.4)
197
+ sprockets-rails (>= 2.0.0)
141
198
  rails-dom-testing (2.0.3)
142
199
  activesupport (>= 4.2.0)
143
200
  nokogiri (>= 1.6)
@@ -178,6 +235,13 @@ GEM
178
235
  simplecov_json_formatter (~> 0.1)
179
236
  simplecov-html (0.12.3)
180
237
  simplecov_json_formatter (0.1.3)
238
+ sprockets (4.1.1)
239
+ concurrent-ruby (~> 1.0)
240
+ rack (> 1, < 3)
241
+ sprockets-rails (3.4.2)
242
+ actionpack (>= 5.2)
243
+ activesupport (>= 5.2)
244
+ sprockets (>= 3.0.0)
181
245
  standalone_migrations (6.1.0)
182
246
  activerecord (>= 4.2.7, < 6.2.0, != 5.2.3.rc1, != 5.2.3)
183
247
  railties (>= 4.2.7, < 6.2.0, != 5.2.3.rc1, != 5.2.3)
@@ -188,6 +252,9 @@ GEM
188
252
  timecop (0.9.4)
189
253
  tzinfo (2.0.5)
190
254
  concurrent-ruby (~> 1.0)
255
+ websocket-driver (0.7.5)
256
+ websocket-extensions (>= 0.1.0)
257
+ websocket-extensions (0.1.5)
191
258
  zeitwerk (2.6.1)
192
259
 
193
260
  PLATFORMS
@@ -207,6 +274,7 @@ DEPENDENCIES
207
274
  paranoia
208
275
  pg
209
276
  pry
277
+ rails (>= 6)
210
278
  rdoc (~> 3.12)
211
279
  rollbar
212
280
  rspec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.0
1
+ 3.1.2
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: historiographer 3.1.0 ruby lib
5
+ # stub: historiographer 3.1.2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "historiographer".freeze
9
- s.version = "3.1.0"
9
+ s.version = "3.1.2"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["brettshollenberger".freeze]
14
- s.date = "2022-10-18"
14
+ s.date = "2022-10-19"
15
15
  s.description = "Creates separate tables for each history table".freeze
16
16
  s.email = "brett.shollenberger@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -73,6 +73,7 @@ Gem::Specification.new do |s|
73
73
  s.add_runtime_dependency(%q<activerecord>.freeze, [">= 6"])
74
74
  s.add_runtime_dependency(%q<activerecord-import>.freeze, [">= 0"])
75
75
  s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
76
+ s.add_runtime_dependency(%q<rails>.freeze, [">= 6"])
76
77
  s.add_runtime_dependency(%q<rollbar>.freeze, [">= 0"])
77
78
  s.add_development_dependency(%q<mysql2>.freeze, ["= 0.5"])
78
79
  s.add_development_dependency(%q<paranoia>.freeze, [">= 0"])
@@ -88,6 +89,7 @@ Gem::Specification.new do |s|
88
89
  s.add_dependency(%q<activerecord>.freeze, [">= 6"])
89
90
  s.add_dependency(%q<activerecord-import>.freeze, [">= 0"])
90
91
  s.add_dependency(%q<activesupport>.freeze, [">= 0"])
92
+ s.add_dependency(%q<rails>.freeze, [">= 6"])
91
93
  s.add_dependency(%q<rollbar>.freeze, [">= 0"])
92
94
  s.add_dependency(%q<mysql2>.freeze, ["= 0.5"])
93
95
  s.add_dependency(%q<paranoia>.freeze, [">= 0"])
@@ -1,8 +1,11 @@
1
- require "active_support/all"
2
- require_relative "./historiographer/history"
3
- require_relative "./historiographer/postgres_migration"
4
- require_relative "./historiographer/safe"
5
- require_relative "./historiographer/relation"
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/all'
4
+ require_relative './historiographer/history'
5
+ require_relative './historiographer/postgres_migration'
6
+ require_relative './historiographer/safe'
7
+ require_relative './historiographer/relation'
8
+ require_relative './historiographer/silent'
6
9
 
7
10
  # Historiographer takes "histories" (think audits or snapshots) of your model whenever you make changes.
8
11
  #
@@ -74,7 +77,7 @@ module Historiographer
74
77
 
75
78
  class HistoryUserIdMissingError < StandardError; end
76
79
 
77
- UTC = Time.now.in_time_zone("UTC").time_zone
80
+ UTC = Time.now.in_time_zone('UTC').time_zone
78
81
 
79
82
  included do |base|
80
83
  after_save :record_history, if: :should_record_history?
@@ -86,7 +89,7 @@ module Historiographer
86
89
 
87
90
  def validate_history_user_id_present
88
91
  if @no_history.nil? && (!history_user_id.present? || !history_user_id.is_a?(Integer))
89
- errors.add(:history_user_id, "must be an integer")
92
+ errors.add(:history_user_id, 'must be an integer')
90
93
  end
91
94
  end
92
95
 
@@ -95,7 +98,7 @@ module Historiographer
95
98
  def destroy_with_history(history_user_id: nil)
96
99
  history_user_absent_action if history_user_id.nil?
97
100
 
98
- current_history = histories.where(history_ended_at: nil).order("id desc").limit(1).last
101
+ current_history = histories.where(history_ended_at: nil).order('id desc').limit(1).last
99
102
  current_history.update!(history_ended_at: UTC.now) if current_history.present?
100
103
 
101
104
  if respond_to?(:paranoia_destroy)
@@ -138,7 +141,7 @@ module Historiographer
138
141
  when 0..5 then changed? && valid?
139
142
  when 5.1..7 then saved_changes?
140
143
  else
141
- raise "Unsupported Rails version"
144
+ raise 'Unsupported Rails version'
142
145
  end
143
146
  end
144
147
 
@@ -157,7 +160,7 @@ module Historiographer
157
160
 
158
161
  begin
159
162
  class_name.constantize
160
- rescue
163
+ rescue StandardError
161
164
  history_class_initializer = Class.new(ActiveRecord::Base) do
162
165
  end
163
166
 
@@ -170,7 +173,7 @@ module Historiographer
170
173
  raise "#{base} already has histories. Talk to Brett if this is a legit use case."
171
174
  else
172
175
  opts = { class_name: class_name }
173
- opts.merge!(foreign_key: klass.history_foreign_key) if klass.respond_to?(:history_foreign_key)
176
+ opts[:foreign_key] = klass.history_foreign_key if klass.respond_to?(:history_foreign_key)
174
177
  has_many :histories, opts
175
178
  has_one :current_history, -> { current }, opts
176
179
  end
@@ -187,14 +190,12 @@ module Historiographer
187
190
  module UpdateColumnsWithHistory
188
191
  def update_columns(*args)
189
192
  opts = args.extract_options!
190
- any_changes = opts.keys.reject { |k| k == "id" }.any?
193
+ any_changes = opts.keys.reject { |k| k == 'id' }.any?
191
194
 
192
195
  transaction do
193
196
  persisted = super(opts)
194
197
 
195
- if any_changes && persisted
196
- record_history
197
- end
198
+ record_history if any_changes && persisted
198
199
  end
199
200
  end
200
201
  end
@@ -216,7 +217,7 @@ module Historiographer
216
217
  private
217
218
 
218
219
  def history_user_absent_action
219
- raise HistoryUserIdMissingError.new("history_user_id must be passed in order to save record with histories! If you are in a context with no history_user_id, explicitly call #save_without_user")
220
+ raise HistoryUserIdMissingError, 'history_user_id must be passed in order to save record with histories! If you are in a context with no history_user_id, explicitly call #save_without_user'
220
221
  end
221
222
 
222
223
  #
@@ -233,23 +234,22 @@ module Historiographer
233
234
  foreign_key = history_class.history_foreign_key
234
235
 
235
236
  now = UTC.now
236
- attrs.merge!(foreign_key => attrs["id"], history_started_at: now, history_user_id: history_user_id)
237
+ attrs.merge!(foreign_key => attrs['id'], history_started_at: now, history_user_id: history_user_id)
237
238
 
238
- attrs = attrs.except("id")
239
+ attrs = attrs.except('id')
239
240
 
240
- current_history = histories.where(history_ended_at: nil).order("id desc").limit(1).last
241
+ current_history = histories.where(history_ended_at: nil).order('id desc').limit(1).last
241
242
 
242
- unless foreign_key.present? && history_class.present?
243
- raise "Need foreign key and history class to save history!"
244
- else
243
+ if foreign_key.present? && history_class.present?
245
244
  history_class.create!(attrs)
246
245
  current_history.update!(history_ended_at: now) if current_history.present?
246
+ else
247
+ raise 'Need foreign key and history class to save history!'
247
248
  end
248
249
  end
249
250
  end
250
251
 
251
252
  class_methods do
252
-
253
253
  #
254
254
  # E.g. SponsoredProductCampaign => SponsoredProductCampaignHistory
255
255
  #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: historiographer
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - brettshollenberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-18 00:00:00.000000000 Z
11
+ date: 2022-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '6'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '6'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rollbar
57
71
  requirement: !ruby/object:Gem::Requirement