paranoia 2.1.0.pre → 2.1.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
  SHA1:
3
- metadata.gz: 6b11cd914e35d9fcb7f01a85d9d9e5be2eddcc44
4
- data.tar.gz: 095902bb8c728930c4058153cae56080074ca7c8
3
+ metadata.gz: f0cb57d2b73781793a6c745fb89bb9d7793fecb3
4
+ data.tar.gz: f53171d8795a238508541336bbf6e0aa6082959e
5
5
  SHA512:
6
- metadata.gz: 805b2fd483083762d26a1e4caa796c5af936f6a2e585e71753fc822326aa0978552746b236cd2f752d1f1591a37b8e171beb9dbd204010f985d979605a797b2c
7
- data.tar.gz: d10fbd300d9ddf5e969c81f78a97312aac7160d46f7545351617fe6deb35c4e00b5b12ddb05a0ae1c4a2803683f5ecfbbd740a94bb4bc1c1ab3a6ead85e8db97
6
+ metadata.gz: 42eab22150eb1e35f7c49b430949905ddf7590695ab6cb8df7cadbd0012ad4038375f859ba63cc200f0b3fe2bde8a0941aeaf51a9daca4a0803ad5d7a3a4841d
7
+ data.tar.gz: f88c66a92dd499958c14b2c1c4443334522c524270eaab270166ad702db7fa1ae47c4f927a79795fa57f157d8dc7a628f4fce9025e2606e3583dc3b7430c0ba5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # paranoia Changelog
2
2
 
3
+ ## 2.1.0 (2015-01-23)
4
+
5
+ ### Major changes
6
+
7
+ * `#destroyed?` is no longer overridden. Use `#paranoia_destroyed?` for the existing behaviour. [Washington Luiz](https://github.com/huoxito)
8
+ * `#persisted?` is no longer overridden.
9
+ * ActiveRecord 4.0 no longer has `#destroy!` as an alias for `#really_destroy`.
10
+ * `#destroy` will now raise an exception if called on a readonly record.
11
+ * `#destroy` on a hard deleted record is now a successful noop.
12
+ * `#destroy` on a new record will set deleted_at (previously this raised an error)
13
+ * `#destroy` and `#delete` always return self when successful.
14
+
15
+ ### Bug Fixes
16
+
17
+ * Calling `#destroy` twice will not hard-delete records. Use `#really_destroy` if this is desired.
18
+ * Fix errors on non-paranoid has_one dependent associations
19
+
3
20
  ## 2.0.5 (2015-01-22)
4
21
 
5
22
  ### Bug fixes
@@ -1,3 +1,3 @@
1
1
  module Paranoia
2
- VERSION = "2.1.0.pre"
2
+ VERSION = "2.1.0"
3
3
  end
@@ -15,9 +15,11 @@ def setup!
15
15
  ActiveRecord::Base.connection.execute 'CREATE TABLE parent_models (id INTEGER NOT NULL PRIMARY KEY, deleted_at DATETIME)'
16
16
  ActiveRecord::Base.connection.execute 'CREATE TABLE paranoid_models (id INTEGER NOT NULL PRIMARY KEY, parent_model_id INTEGER, deleted_at DATETIME)'
17
17
  ActiveRecord::Base.connection.execute 'CREATE TABLE paranoid_model_with_belongs (id INTEGER NOT NULL PRIMARY KEY, parent_model_id INTEGER, deleted_at DATETIME, paranoid_model_with_has_one_id INTEGER)'
18
+ ActiveRecord::Base.connection.execute 'CREATE TABLE paranoid_model_with_build_belongs (id INTEGER NOT NULL PRIMARY KEY, parent_model_id INTEGER, deleted_at DATETIME, paranoid_model_with_has_one_and_build_id INTEGER, name VARCHAR(32))'
18
19
  ActiveRecord::Base.connection.execute 'CREATE TABLE paranoid_model_with_anthor_class_name_belongs (id INTEGER NOT NULL PRIMARY KEY, parent_model_id INTEGER, deleted_at DATETIME, paranoid_model_with_has_one_id INTEGER)'
19
20
  ActiveRecord::Base.connection.execute 'CREATE TABLE paranoid_model_with_foreign_key_belongs (id INTEGER NOT NULL PRIMARY KEY, parent_model_id INTEGER, deleted_at DATETIME, has_one_foreign_key_id INTEGER)'
20
21
  ActiveRecord::Base.connection.execute 'CREATE TABLE not_paranoid_model_with_belongs (id INTEGER NOT NULL PRIMARY KEY, parent_model_id INTEGER, paranoid_model_with_has_one_id INTEGER)'
22
+ ActiveRecord::Base.connection.execute 'CREATE TABLE paranoid_model_with_has_one_and_builds (id INTEGER NOT NULL PRIMARY KEY, parent_model_id INTEGER, color VARCHAR(32), deleted_at DATETIME, has_one_foreign_key_id INTEGER)'
21
23
  ActiveRecord::Base.connection.execute 'CREATE TABLE featureful_models (id INTEGER NOT NULL PRIMARY KEY, deleted_at DATETIME, name VARCHAR(32))'
22
24
  ActiveRecord::Base.connection.execute 'CREATE TABLE plain_models (id INTEGER NOT NULL PRIMARY KEY, deleted_at DATETIME)'
23
25
  ActiveRecord::Base.connection.execute 'CREATE TABLE callback_models (id INTEGER NOT NULL PRIMARY KEY, deleted_at DATETIME)'
@@ -214,6 +216,11 @@ class ParanoiaTest < test_framework
214
216
  assert_equal 1, model.class.unscoped.count
215
217
  end
216
218
 
219
+ def test_destroy_behavior_for_has_one_with_build_and_validation_error
220
+ model = ParanoidModelWithHasOneAndBuild.create
221
+ model.destroy
222
+ end
223
+
217
224
  # Regression test for #24
218
225
  def test_chaining_for_paranoid_models
219
226
  scope = FeaturefulModel.where(:name => "foo").only_deleted
@@ -863,6 +870,23 @@ class ParanoidModelWithHasOne < ParanoidModel
863
870
  has_one :not_paranoid_model_with_belong, :dependent => :destroy
864
871
  end
865
872
 
873
+ class ParanoidModelWithHasOneAndBuild < ActiveRecord::Base
874
+ has_one :paranoid_model_with_build_belong, :dependent => :destroy
875
+ validates :color, :presence => true
876
+ after_validation :build_paranoid_model_with_build_belong, on: :create
877
+
878
+ private
879
+ def build_paranoid_model_with_build_belong
880
+ super.tap { |child| child.name = "foo" }
881
+ end
882
+ end
883
+
884
+ class ParanoidModelWithBuildBelong < ActiveRecord::Base
885
+ acts_as_paranoid
886
+ validates :name, :presence => true
887
+ belongs_to :paranoid_model_with_has_one_and_build
888
+ end
889
+
866
890
  class ParanoidModelWithBelong < ActiveRecord::Base
867
891
  acts_as_paranoid
868
892
  belongs_to :paranoid_model_with_has_one
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paranoia
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.pre
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - radarlistener@gmail.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-22 00:00:00.000000000 Z
11
+ date: 2015-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -94,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  version: 1.3.6
95
95
  requirements: []
96
96
  rubyforge_project: paranoia
97
- rubygems_version: 2.4.5
97
+ rubygems_version: 2.2.2
98
98
  signing_key:
99
99
  specification_version: 4
100
100
  summary: Paranoia is a re-implementation of acts_as_paranoid for Rails 3, using much,