soft_deleter 0.5.2 → 0.6.0

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: 242cd801b2abf15bf17d02464ff724f8d744f8b67b3d638c8c5dc0e1f7fc4ccb
4
- data.tar.gz: cceb4eb1b05e6325c38618b934ac3e2fb45960437f281d0e6196eaef88ef2f56
3
+ metadata.gz: 754de2704b3c4dc4ccd80ecf91b3cf54a984de4a638a9147bcd942546f693a28
4
+ data.tar.gz: b69dbb4e65731e1651a5b72b47b057fc9a8932d6dcf19193f2a34827cca4919d
5
5
  SHA512:
6
- metadata.gz: 988668940f1aa5efcafc7f39f68cabd37dd5187e4250c8cc6c9f4e7ffa5b6c1208ac623baa4d0f8237b02f7655b70261461abefb8092920a80637475672c0b2f
7
- data.tar.gz: f4fa87a74d273397c9da24a0c3377b9efa6317c1338b5646d428d8da4b20aef1c6ed1704292bd53b644e593e52e497bca4a9cc34f9fd714b27ea0e6a42b24edd
6
+ metadata.gz: 3c88417b44f595acf49d76e60bad3be44909f3ee83e4d2ba2f96ad4ee0ae9c51cf7a8a1f68b7e2ce87172b52df9ee0d6d28bd6b086e619c792b4c900dc255c93
7
+ data.tar.gz: e8cacfd7614bfe063726a25493de187863e88ef17fc9ff8f36a88b84b778fc345fc206504ba752ae582fddd95c0f0dcd2ac5cd08c72135a745ebad85c48d402d
data/README.md CHANGED
@@ -34,7 +34,7 @@ create migration file and add lines like bellow
34
34
  class AddSoftDeleterAttributesToUsers < ActiveRecord::Migration[7.0]
35
35
  def change
36
36
  add_column :users, :deleter_type, :string
37
- add_column :users, :deleter_id, :integer
37
+ add_column :users, :deleter_id, :bigint
38
38
  add_column :users, :deleted_at, :timestamp
39
39
  end
40
40
  end
@@ -10,7 +10,7 @@ class SoftDeleterGenerator < Rails::Generators::NamedBase
10
10
  arg += "{#{attr.attr_options[:limit]}}" if attr.attr_options.present?
11
11
  arg
12
12
  end.join(" ")
13
-
13
+
14
14
  system("bundle exec rails g model #{name} #{add_attributes} deleter_type:string deleter_id:integer deleted_at:timestamp")
15
15
  system("sed -e '2i \\ include SoftDeleter' app/models/#{snake_name}.rb > app/models/_tmp.rb")
16
16
  system("rm app/models/#{snake_name}.rb")
@@ -1,3 +1,3 @@
1
1
  module SoftDeleter
2
- VERSION = "0.5.2"
2
+ VERSION = "0.6.0"
3
3
  end
data/lib/soft_deleter.rb CHANGED
@@ -4,6 +4,8 @@ require "soft_deleter/railtie"
4
4
  module SoftDeleter
5
5
  extend ActiveSupport::Concern
6
6
 
7
+ @@exclude_dependents = []
8
+
7
9
  included do
8
10
  scope :enabled, -> { where(deleted_at: nil) }
9
11
  scope :deleted, -> { where.not(deleted_at: nil) }
@@ -16,7 +18,14 @@ module SoftDeleter
16
18
 
17
19
  i.name || i.options[:class_name]&.underscore&.pluralize&.to_sym
18
20
  end.compact
19
- result - [:"active_storage/attachments"]
21
+ result - [:"active_storage/attachments"] - @@exclude_dependents
22
+ end
23
+
24
+ def exclude_dependent(names, option = {})
25
+ dependents = [names].flatten
26
+ dependents = dependents.map { |name| :"#{name}_#{option.dig(:sufix)}" } if option.dig(:sufix).present?
27
+
28
+ @@exclude_dependents += dependents
20
29
  end
21
30
  end
22
31
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soft_deleter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - testCodeV01
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-27 00:00:00.000000000 Z
11
+ date: 2025-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails