counter_culture 2.1.1 → 2.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: 750074b917f0a0e9b7191aa948120ef09a1bc1496a949733aaf16d410656484d
4
- data.tar.gz: 7d272b1c474a7a4201d1169e6116ad2b6946dcaba07abad814024a164d87e96c
3
+ metadata.gz: c7959919b657fa78f0411dfbab1d943126a56299845d675153cbc22b14dd379f
4
+ data.tar.gz: 478dd534275fa4b591c27dfee2430cd3ca0b51230ef1761ac65b29d9e457cb71
5
5
  SHA512:
6
- metadata.gz: 0f65dbd3b05fd218642e18a229afcd1dfb4db538d896d9b866bfc083dceb5585d1bfcb9333738d9e854a1c9c4275445391962f891f642e0ed4d21a2091d65e90
7
- data.tar.gz: af264d88858d62892cf4c601c1367cb57da56c82accbe51297398f296cd9c286c60f2861279df1cb32c569cbe46494033e320da21b3ae484c2468e00dd7a929b
6
+ metadata.gz: 82971d075ad62b51f70648e7fb00dc8b3be73bbe5243d7aea5bf341f0f4d9a33c2b34ec6e205c196069f6eb32d3e1dea85f9f7197278c9f769d426d095aa85dc
7
+ data.tar.gz: fec145c1cf38738c96c0a6e78bb67ca596813acb97fa16e7ee1e5265db3ddc567e6484ad812f35917f2d310e9a9f4a5bece98fd4f5fc4018e6e28d31a970ded7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 2.1.2 (December 7, 2018)
2
+
3
+ Bugfixes:
4
+ - Properly handle `destroy` and `really_destroy` when using Paranoia (#239)
5
+
1
6
  ## 2.1.1 (November 7, 2018)
2
7
 
3
8
  Bugfixes:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.1
1
+ 2.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: counter_culture 2.1.1 ruby lib
5
+ # stub: counter_culture 2.1.2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "counter_culture".freeze
9
- s.version = "2.1.1"
9
+ s.version = "2.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 = ["Magnus von Koeller".freeze]
14
- s.date = "2018-11-07"
14
+ s.date = "2018-12-07"
15
15
  s.description = "counter_culture provides turbo-charged counter caches that are kept up-to-date not just on create and destroy, that support multiple levels of indirection through relationships, allow dynamic column names and that avoid deadlocks by updating in the after_commit callback.".freeze
16
16
  s.email = "magnus@vonkoeller.de".freeze
17
17
  s.extra_rdoc_files = [
@@ -30,6 +30,12 @@ module CounterCulture
30
30
  end
31
31
  end
32
32
 
33
+ if respond_to?(:before_real_destroy) &&
34
+ new.respond_to?(:paranoia_destroyed?)
35
+ before_real_destroy :_update_counts_after_destroy,
36
+ if: -> (model) { !model.paranoia_destroyed? }
37
+ end
38
+
33
39
  after_update :_update_counts_after_update
34
40
 
35
41
  if respond_to?(:before_restore)
@@ -1869,6 +1869,35 @@ describe "CounterCulture" do
1869
1869
  sd.restore
1870
1870
  expect(company.reload.soft_delete_paranoia_count).to eq(1)
1871
1871
  end
1872
+
1873
+ describe "when calling paranoia really destroy" do
1874
+ it "does not run destroy callback for paranoia destroyed records" do
1875
+ skip("Unsupported in this version of Rails") if Rails.version < "4.2.0"
1876
+
1877
+ company = Company.create!
1878
+ sd = SoftDeleteParanoia.create!(company_id: company.id)
1879
+
1880
+ expect(company.reload.soft_delete_paranoia_count).to eq(1)
1881
+
1882
+ sd.destroy
1883
+ expect(company.reload.soft_delete_paranoia_count).to eq(0)
1884
+
1885
+ sd.really_destroy!
1886
+ expect(company.reload.soft_delete_paranoia_count).to eq(0)
1887
+ end
1888
+
1889
+ it "runs really destroy callback for paranoia undestroyed records" do
1890
+ skip("Unsupported in this version of Rails") if Rails.version < "4.2.0"
1891
+ company = Company.create!
1892
+ expect(company.soft_delete_paranoia_count).to eq(0)
1893
+ sd = SoftDeleteParanoia.create!(company_id: company.id)
1894
+ expect(company.reload.soft_delete_paranoia_count).to eq(1)
1895
+
1896
+ sd.really_destroy!
1897
+ expect{ sd.reload }.to raise_error(ActiveRecord::RecordNotFound)
1898
+ expect(company.reload.soft_delete_paranoia_count).to eq(0)
1899
+ end
1900
+ end
1872
1901
  end
1873
1902
 
1874
1903
  describe "with polymorphic_associations" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: counter_culture
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Magnus von Koeller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-07 00:00:00.000000000 Z
11
+ date: 2018-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: after_commit_action