logidze 1.3.0 → 1.3.1

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: c4ab83a61c2685b93d8fe58199eac1fb889c4459453db9315bd6a9880abb2bc9
4
- data.tar.gz: f856bd257d81c6ad1fc3cbe6328bbd1adbf77670335a07a0f5234f572f8a7145
3
+ metadata.gz: 8c8113ee63d992fde09019059c1cbd3a6d75ab8914ad365106e954a66c28b633
4
+ data.tar.gz: e784d849dc188763ada793df28ad134226b2aa21416bbd818ac7e8c496ff1e2c
5
5
  SHA512:
6
- metadata.gz: d462f59ba20d402c5c75bb15ea40b709f278088dcd11be7e769640640450bd35a558794884fca89ccdaa403e09fb0d05c40d43bed8dd86698a41ecb870272a4b
7
- data.tar.gz: f5bf80de51ffaff0f611e84bbf99f4291ebb82655ff23ce555d042c3ae29f3d79c172e1b7de7c1f19083892a847473ce6252364973e31eecb41d25fe8e1de65b
6
+ metadata.gz: d427303c2f7f07f3f0d6964469d124d54dfac17615c881192115a426e9cafe517ad95850753bb6b0676211ffb33b4ed850aa11475ca6753b19c99f07a31421d4
7
+ data.tar.gz: 837353c8432d3a7c8e43f94949ad3ac45a0ca069d074d2db0e9acdad9abaabd03f04a5a0d9c3427f3ab710abd967a03d92f7eda02b6e15ce2c05fdb2b4e2b9fb
data/CHANGELOG.md CHANGED
@@ -2,13 +2,23 @@
2
2
 
3
3
  ## master (unreleased)
4
4
 
5
+ ## 1.3.1 (2024-10-23)
6
+
7
+ - Fix `rails destroy logidze:model SomeModel` not deleting the `fx` trigger file file. ([@tylerhunt][])
8
+
9
+ - Support sorting of trigger names alphabetically (defaults to false)
10
+
11
+ ```ruby
12
+ Logdize.sort_triggers_by_name = true
13
+ ```
14
+
5
15
  ## 1.3.0 (2024-01-09)
6
16
 
7
17
  - Add retrieving list of versions support. ([@tagirahmad][])
8
18
 
9
19
  ```ruby
10
- post.versions # => Enumerator
11
- post.versions.find do
20
+ post.logidze_versions # => Enumerator
21
+ post.logidze_versions.find do
12
22
  _1.title == "old title"
13
23
  end
14
24
  ```
@@ -395,3 +405,4 @@ This is a quick fix for a more general problem (see [#59](https://github.com/pal
395
405
  [@prog-supdex]: https://github.com/prog-supdex
396
406
  [@SparLaimor]: https://github.com/SparLaimor
397
407
  [@tagirahmad]: https://github.com/tagirahmad
408
+ [@tylerhunt]: https://github.com/tylerhunt
data/README.md CHANGED
@@ -260,20 +260,20 @@ Post.where(created_at: Time.zone.today.all_day).diff_from(time: 1.hour.ago)
260
260
  Also, it is possible to retrieve list of model's `versions`:
261
261
 
262
262
  ```ruby
263
- post.versions # => Enumerator
263
+ post.logidze_versions # => Enumerator
264
264
 
265
265
  # you can use Enumerator's #take to return all
266
- post.versions.take
266
+ post.logidze_versions.take
267
267
 
268
268
  # or you take a few or call any Enumerable method
269
- post.versions.take(2)
270
- post.versions.find do
269
+ post.logidze_versions.take(2)
270
+ post.logidze_versions.find do
271
271
  _1.title == "old title"
272
272
  end
273
273
 
274
274
  # we can also add options
275
- post.versions(reverse: true) # from older to newer
276
- post.versions(include_self: true) # returns self as the first one (default) or the last one record (if reverse: true)
275
+ post.logidze_versions(reverse: true) # from newer to older
276
+ post.logidze_versions(include_self: true) # returns self as the last record or the first one when `reverse` is set to true
277
277
  ```
278
278
 
279
279
  There are also `#undo!` and `#redo!` options (and more general `#switch_to!`):
@@ -573,6 +573,16 @@ The `log_data` column has the following format:
573
573
 
574
574
  If you specify the limit in the trigger definition, then log size will not exceed the specified size. When a new change occurs, and there is no more room for it, the two oldest changes will be merged.
575
575
 
576
+ ## Ordering of Triggers in schema.rb
577
+
578
+ By default, when generating `schema.rb`, Rails will order the triggers based on the id's of their respective tables. This can lead to unnecessary changes being made when utilizing `rails db:prepare`, since the ordering of the tables will now be based off the alphabetical ordering (see [#250](https://github.com/palkan/logidze/issues/250) for more details). To force the ordering to be consistent with `rails db:prepare`, Logidze can be configured to order the triggers alphabetically.
579
+
580
+ ```ruby
581
+ # config/initializers/logidze.rb
582
+
583
+ Logidze.sort_triggers_by_name = true
584
+ ```
585
+
576
586
  ## Troubleshooting
577
587
 
578
588
  ### `log_data` is nil when using Rails fixtures
@@ -125,7 +125,12 @@ module Logidze
125
125
  end
126
126
 
127
127
  def next_version
128
- previous_version&.next || 1
128
+ version = previous_version
129
+ if behavior == :invoke
130
+ version&.next || 1
131
+ else
132
+ version || 1
133
+ end
129
134
  end
130
135
 
131
136
  def all_triggers
@@ -20,5 +20,18 @@ module Logidze
20
20
  end
21
21
  end
22
22
  end
23
+
24
+ initializer "sort triggers by name" do |app|
25
+ if config.logidze.sort_triggers_by_name
26
+ ActiveSupport.on_load(:active_record) do
27
+ require "fx/adapters/postgres/triggers"
28
+ Fx::Adapters::Postgres::Triggers.singleton_class.prepend(Module.new do
29
+ def all(*args)
30
+ super.sort_by(&:name)
31
+ end
32
+ end)
33
+ end
34
+ end
35
+ end
23
36
  end
24
37
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Logidze
4
- VERSION = "1.3.0"
4
+ VERSION = "1.3.1"
5
5
  end
data/lib/logidze.rb CHANGED
@@ -25,6 +25,8 @@ module Logidze
25
25
  attr_accessor :ignore_log_data_by_default
26
26
  # Whether #at should return self or nil when log_data is nil
27
27
  attr_accessor :return_self_if_log_data_is_empty
28
+ # Determines if triggers are sorted by related table id or by name
29
+ attr_accessor :sort_triggers_by_name
28
30
  # Determines what Logidze should do when upgrade is needed (:raise | :warn | :ignore)
29
31
  attr_reader :on_pending_upgrade
30
32
 
@@ -68,4 +70,5 @@ module Logidze
68
70
  self.ignore_log_data_by_default = false
69
71
  self.return_self_if_log_data_is_empty = true
70
72
  self.on_pending_upgrade = :ignore
73
+ self.sort_triggers_by_name = false
71
74
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logidze
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - palkan
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-09 00:00:00.000000000 Z
11
+ date: 2024-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -188,7 +188,7 @@ metadata:
188
188
  documentation_uri: http://github.com/palkan/logidze
189
189
  homepage_uri: http://github.com/palkan/logidze
190
190
  source_code_uri: http://github.com/palkan/logidze
191
- post_install_message:
191
+ post_install_message:
192
192
  rdoc_options: []
193
193
  require_paths:
194
194
  - lib
@@ -203,8 +203,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
203
  - !ruby/object:Gem::Version
204
204
  version: '0'
205
205
  requirements: []
206
- rubygems_version: 3.4.20
207
- signing_key:
206
+ rubygems_version: 3.4.19
207
+ signing_key:
208
208
  specification_version: 4
209
209
  summary: PostgreSQL JSONB-based model changes tracking
210
210
  test_files: []