mongoid_paranoia 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,55 +1,55 @@
1
- require "spec_helper"
2
-
3
- describe Mongoid::Criteria::Scopable do
4
-
5
- context "when the document is paranoid" do
6
-
7
- context "when calling a class method" do
8
-
9
- let(:criteria) do
10
- Fish.fresh
11
- end
12
-
13
- it "includes the deleted_at criteria in the selector" do
14
- expect(criteria.selector).to eq({
15
- "deleted_at" => nil, "fresh" => true
16
- })
17
- end
18
- end
19
-
20
- context "when chaining a class method to unscoped" do
21
-
22
- let(:criteria) do
23
- Fish.unscoped.fresh
24
- end
25
-
26
- it "does not include the deleted_at in the selector" do
27
- expect(criteria.selector).to eq({ "fresh" => true })
28
- end
29
- end
30
-
31
- context "when chaining a class method to deleted" do
32
-
33
- let(:criteria) do
34
- Fish.deleted.fresh
35
- end
36
-
37
- it "includes the deleted_at $ne criteria in the selector" do
38
- expect(criteria.selector).to eq({
39
- "deleted_at" => { "$ne" => nil }, "fresh" => true
40
- })
41
- end
42
- end
43
-
44
- context "when chaining a where to unscoped" do
45
-
46
- let(:criteria) do
47
- Fish.unscoped.where(fresh: true)
48
- end
49
-
50
- it "includes no default scoping information in the selector" do
51
- expect(criteria.selector).to eq({ "fresh" => true })
52
- end
53
- end
54
- end
55
- end
1
+ require "spec_helper"
2
+
3
+ describe Mongoid::Criteria::Scopable do
4
+
5
+ context "when the document is paranoid" do
6
+
7
+ context "when calling a class method" do
8
+
9
+ let(:criteria) do
10
+ Fish.fresh
11
+ end
12
+
13
+ it "includes the deleted_at criteria in the selector" do
14
+ expect(criteria.selector).to eq({
15
+ "deleted_at" => nil, "fresh" => true
16
+ })
17
+ end
18
+ end
19
+
20
+ context "when chaining a class method to unscoped" do
21
+
22
+ let(:criteria) do
23
+ Fish.unscoped.fresh
24
+ end
25
+
26
+ it "does not include the deleted_at in the selector" do
27
+ expect(criteria.selector).to eq({ "fresh" => true })
28
+ end
29
+ end
30
+
31
+ context "when chaining a class method to deleted" do
32
+
33
+ let(:criteria) do
34
+ Fish.deleted.fresh
35
+ end
36
+
37
+ it "includes the deleted_at $ne criteria in the selector" do
38
+ expect(criteria.selector).to eq({
39
+ "deleted_at" => { "$ne" => nil }, "fresh" => true
40
+ })
41
+ end
42
+ end
43
+
44
+ context "when chaining a where to unscoped" do
45
+
46
+ let(:criteria) do
47
+ Fish.unscoped.where(fresh: true)
48
+ end
49
+
50
+ it "includes no default scoping information in the selector" do
51
+ expect(criteria.selector).to eq({ "fresh" => true })
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,74 +1,74 @@
1
- require "spec_helper"
2
-
3
- describe "Paranoia uniqueness scoped validator" do
4
- describe "#valid?" do
5
- context "when the document is a root document" do
6
- context "when the document is paranoid" do
7
- before do
8
- ParanoidPost.validates(:title, uniqueness: { conditions: -> { ParanoidPost.where(deleted_at: nil) } })
9
- end
10
-
11
- after do
12
- ParanoidPost.reset_callbacks(:validate)
13
- end
14
-
15
- let!(:post) do
16
- ParanoidPost.create(title: "testing")
17
- end
18
-
19
- context "when the field is unique" do
20
-
21
- let(:new_post) do
22
- ParanoidPost.new(title: "test")
23
- end
24
-
25
- it "returns true" do
26
- expect(new_post).to be_valid
27
- end
28
- end
29
-
30
- context "when the field is unique for non soft deleted docs" do
31
-
32
- before do
33
- post.delete!
34
- end
35
-
36
- let(:new_post) do
37
- ParanoidPost.new(title: "testing")
38
- end
39
-
40
- it "returns true" do
41
- expect(new_post).to be_valid
42
- end
43
- end
44
-
45
- context "when the field is not unique for soft deleted docs" do
46
-
47
- before do
48
- post = ParanoidPost.create(title: "test")
49
- post.delete
50
- end
51
-
52
- let(:new_post) do
53
- ParanoidPost.new(title: "test")
54
- end
55
-
56
- it "returns true" do
57
- expect(new_post).to be_valid
58
- end
59
- end
60
-
61
- context "when the field is not unique" do
62
-
63
- let(:new_post) do
64
- ParanoidPost.new(title: "testing")
65
- end
66
-
67
- it "returns false" do
68
- expect(new_post).not_to be_valid
69
- end
70
- end
71
- end
72
- end
73
- end
74
- end
1
+ require "spec_helper"
2
+
3
+ describe "Paranoia uniqueness scoped validator" do
4
+ describe "#valid?" do
5
+ context "when the document is a root document" do
6
+ context "when the document is paranoid" do
7
+ before do
8
+ ParanoidPost.validates(:title, uniqueness: { conditions: -> { ParanoidPost.where(deleted_at: nil) } })
9
+ end
10
+
11
+ after do
12
+ ParanoidPost.reset_callbacks(:validate)
13
+ end
14
+
15
+ let!(:post) do
16
+ ParanoidPost.create(title: "testing")
17
+ end
18
+
19
+ context "when the field is unique" do
20
+
21
+ let(:new_post) do
22
+ ParanoidPost.new(title: "test")
23
+ end
24
+
25
+ it "returns true" do
26
+ expect(new_post).to be_valid
27
+ end
28
+ end
29
+
30
+ context "when the field is unique for non soft deleted docs" do
31
+
32
+ before do
33
+ post.delete!
34
+ end
35
+
36
+ let(:new_post) do
37
+ ParanoidPost.new(title: "testing")
38
+ end
39
+
40
+ it "returns true" do
41
+ expect(new_post).to be_valid
42
+ end
43
+ end
44
+
45
+ context "when the field is not unique for soft deleted docs" do
46
+
47
+ before do
48
+ post = ParanoidPost.create(title: "test")
49
+ post.delete
50
+ end
51
+
52
+ let(:new_post) do
53
+ ParanoidPost.new(title: "test")
54
+ end
55
+
56
+ it "returns true" do
57
+ expect(new_post).to be_valid
58
+ end
59
+ end
60
+
61
+ context "when the field is not unique" do
62
+
63
+ let(:new_post) do
64
+ ParanoidPost.new(title: "testing")
65
+ end
66
+
67
+ it "returns false" do
68
+ expect(new_post).not_to be_valid
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,75 +1,43 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
-
4
- require "mongoid"
5
- require "mongoid/paranoia"
6
- require "rspec"
7
-
8
- # These environment variables can be set if wanting to test against a database
9
- # that is not on the local machine.
10
- ENV["MONGOID_SPEC_HOST"] ||= "localhost"
11
- ENV["MONGOID_SPEC_PORT"] ||= "27017"
12
-
13
- # These are used when creating any connection in the test suite.
14
- HOST = ENV["MONGOID_SPEC_HOST"]
15
- PORT = ENV["MONGOID_SPEC_PORT"].to_i
16
-
17
- # Moped.logger.level = Logger::DEBUG
18
- # Mongoid.logger.level = Logger::DEBUG
19
-
20
- # When testing locally we use the database named mongoid_test. However when
21
- # tests are running in parallel on Travis we need to use different database
22
- # names for each process running since we do not have transactions and want a
23
- # clean slate before each spec run.
24
- def database_id
25
- "mongoid_test"
26
- end
27
-
28
- # Can we connect to MongoHQ from this box?
29
- def mongohq_connectable?
30
- ENV["MONGOHQ_REPL_PASS"].present?
31
- end
32
-
33
- # Set the database that the spec suite connects to.
34
- Mongoid.configure do |config|
35
- config.belongs_to_required_by_default = false
36
- config.connect_to(database_id)
37
- end
38
-
39
- module Rails
40
- class Application
41
- end
42
- end
43
-
44
- module MyApp
45
- class Application < Rails::Application
46
- end
47
- end
48
-
49
- RSpec.configure do |config|
50
-
51
- # Drop all collections
52
- config.before(:each) do
53
- Mongoid.purge!
54
- end
55
-
56
- config.before(:all) do
57
- Mongoid.logger.level = Logger::INFO
58
- Mongo::Logger.logger.level = Logger::INFO
59
- end
60
-
61
- config.after(:all) do
62
- Mongoid.purge!
63
- end
64
-
65
- # Filter out MongoHQ specs if we can't connect to it.
66
- config.filter_run_excluding(config: ->(value){
67
- return true if value == :mongohq && !mongohq_connectable?
68
- })
69
- end
70
-
71
- ActiveSupport::Inflector.inflections do |inflect|
72
- inflect.singular("address_components", "address_component")
73
- end
74
-
75
- Dir[File.join(File.dirname(__FILE__), "app/models/*.rb")].each{ |f| require f }
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+
4
+ require 'mongoid'
5
+ require 'mongoid/paranoia'
6
+ require 'rspec'
7
+
8
+ # When testing locally we use the database named mongoid_test. However when
9
+ # tests are running in parallel on Travis we need to use different database
10
+ # names for each process running since we do not have transactions and want a
11
+ # clean slate before each spec run.
12
+ def database_id
13
+ 'mongoid_paranoia_test'
14
+ end
15
+
16
+ # Set the database that the spec suite connects to.
17
+ Mongoid.configure do |config|
18
+ config.belongs_to_required_by_default = false
19
+ config.connect_to(database_id)
20
+ end
21
+
22
+ RSpec.configure do |config|
23
+
24
+ # Drop all collections
25
+ config.before(:each) do
26
+ Mongoid.purge!
27
+ end
28
+
29
+ config.before(:all) do
30
+ Mongoid.logger.level = Logger::INFO
31
+ Mongo::Logger.logger.level = Logger::INFO
32
+ end
33
+
34
+ config.after(:all) do
35
+ Mongoid.purge!
36
+ end
37
+ end
38
+
39
+ ActiveSupport::Inflector.inflections do |inflect|
40
+ inflect.singular('address_components', 'address_component')
41
+ end
42
+
43
+ Dir[File.join(File.dirname(__FILE__), 'app/models/*.rb')].each{ |f| require f }
metadata CHANGED
@@ -1,33 +1,51 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_paranoia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan
8
8
  - Josef Šimánek
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-05-29 00:00:00.000000000 Z
12
+ date: 2021-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '7.0'
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '7.3'
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
- - - "~>"
28
+ - - ">="
26
29
  - !ruby/object:Gem::Version
27
30
  version: '7.0'
28
- description: There may be times when you don't want documents to actually get deleted
29
- from the database, but "flagged" as deleted. Mongoid provides a Paranoia module
30
- to give you just that.
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '7.3'
34
+ - !ruby/object:Gem::Dependency
35
+ name: rubocop
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.8.1
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 1.8.1
48
+ description: Provides a Paranoia module documents which soft-deletes documents.
31
49
  email:
32
50
  - durran@gmail.com
33
51
  - retro@ballgag.cz
@@ -66,7 +84,7 @@ homepage: https://github.com/simi/mongoid-paranoia
66
84
  licenses:
67
85
  - MIT
68
86
  metadata: {}
69
- post_install_message:
87
+ post_install_message:
70
88
  rdoc_options: []
71
89
  require_paths:
72
90
  - lib
@@ -81,28 +99,27 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
99
  - !ruby/object:Gem::Version
82
100
  version: '0'
83
101
  requirements: []
84
- rubyforge_project:
85
- rubygems_version: 2.7.6
86
- signing_key:
102
+ rubygems_version: 3.1.2
103
+ signing_key:
87
104
  specification_version: 4
88
105
  summary: Paranoid documents
89
106
  test_files:
90
107
  - perf/scope.rb
91
- - spec/spec_helper.rb
92
- - spec/mongoid/paranoia_spec.rb
93
- - spec/mongoid/configuration_spec.rb
94
- - spec/mongoid/document_spec.rb
95
- - spec/mongoid/nested_attributes_spec.rb
96
- - spec/mongoid/validatable/uniqueness_spec.rb
97
- - spec/mongoid/scoping_spec.rb
98
- - spec/app/models/author.rb
99
- - spec/app/models/relations.rb
100
- - spec/app/models/phone.rb
101
- - spec/app/models/person.rb
108
+ - spec/app/models/address.rb
102
109
  - spec/app/models/appointment.rb
103
- - spec/app/models/title.rb
110
+ - spec/app/models/author.rb
104
111
  - spec/app/models/fish.rb
105
- - spec/app/models/address.rb
106
112
  - spec/app/models/paranoid_phone.rb
107
113
  - spec/app/models/paranoid_post.rb
114
+ - spec/app/models/person.rb
115
+ - spec/app/models/phone.rb
116
+ - spec/app/models/relations.rb
108
117
  - spec/app/models/tag.rb
118
+ - spec/app/models/title.rb
119
+ - spec/mongoid/configuration_spec.rb
120
+ - spec/mongoid/document_spec.rb
121
+ - spec/mongoid/nested_attributes_spec.rb
122
+ - spec/mongoid/paranoia_spec.rb
123
+ - spec/mongoid/scoping_spec.rb
124
+ - spec/mongoid/validatable/uniqueness_spec.rb
125
+ - spec/spec_helper.rb