mongoid-rspec 2.1.0 → 4.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.
Files changed (66) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE +1 -1
  3. data/README.md +222 -102
  4. data/Rakefile +8 -5
  5. data/lib/matchers/accept_nested_attributes.rb +22 -23
  6. data/lib/matchers/allow_mass_assignment.rb +12 -12
  7. data/lib/matchers/associations.rb +85 -49
  8. data/lib/matchers/be_dynamic_document.rb +26 -0
  9. data/lib/matchers/be_mongoid_document.rb +26 -0
  10. data/lib/matchers/be_stored_in.rb +55 -0
  11. data/lib/matchers/have_field.rb +90 -0
  12. data/lib/matchers/have_timestamps.rb +61 -0
  13. data/lib/matchers/indexes/have_index_for.rb +16 -0
  14. data/lib/matchers/indexes/v3/have_index_for.rb +59 -0
  15. data/lib/matchers/indexes/v4/have_index_for.rb +54 -0
  16. data/lib/matchers/validations.rb +30 -11
  17. data/lib/matchers/validations/absence_of.rb +11 -0
  18. data/lib/matchers/validations/associated.rb +1 -1
  19. data/lib/matchers/validations/confirmation_of.rb +7 -1
  20. data/lib/matchers/validations/custom_validation_of.rb +1 -4
  21. data/lib/matchers/validations/exclusion_of.rb +5 -5
  22. data/lib/matchers/validations/format_of.rb +2 -2
  23. data/lib/matchers/validations/inclusion_of.rb +5 -5
  24. data/lib/matchers/validations/length_of.rb +13 -35
  25. data/lib/matchers/validations/numericality_of.rb +32 -16
  26. data/lib/matchers/validations/presence_of.rb +1 -1
  27. data/lib/matchers/validations/uniqueness_of.rb +7 -10
  28. data/lib/mongoid-rspec.rb +1 -33
  29. data/lib/mongoid/rspec.rb +46 -0
  30. data/lib/mongoid/rspec/version.rb +5 -0
  31. data/spec/models/article.rb +9 -6
  32. data/spec/models/comment.rb +1 -1
  33. data/spec/models/log.rb +3 -3
  34. data/spec/models/message.rb +17 -0
  35. data/spec/models/movie_article.rb +1 -2
  36. data/spec/models/person.rb +1 -1
  37. data/spec/models/profile.rb +2 -2
  38. data/spec/models/record.rb +1 -1
  39. data/spec/models/site.rb +5 -1
  40. data/spec/models/user.rb +12 -10
  41. data/spec/spec_helper.rb +12 -10
  42. data/spec/unit/accept_nested_attributes_spec.rb +1 -1
  43. data/spec/unit/associations_spec.rb +19 -7
  44. data/spec/unit/be_dynamic_document_spec.rb +21 -0
  45. data/spec/unit/be_mongoid_document_spec.rb +25 -0
  46. data/spec/unit/be_stored_in.rb +54 -0
  47. data/spec/unit/document_spec.rb +5 -14
  48. data/spec/unit/have_index_for_spec.rb +46 -0
  49. data/spec/unit/have_timestamps_spec.rb +71 -0
  50. data/spec/unit/validations_spec.rb +23 -14
  51. data/spec/validators/ssn_validator.rb +6 -6
  52. metadata +119 -43
  53. data/.document +0 -5
  54. data/.gitignore +0 -6
  55. data/.ruby-gemset +0 -1
  56. data/.ruby-version +0 -1
  57. data/.travis.yml +0 -10
  58. data/Gemfile +0 -4
  59. data/lib/matchers/collections.rb +0 -9
  60. data/lib/matchers/document.rb +0 -173
  61. data/lib/matchers/indexes.rb +0 -69
  62. data/lib/matchers/validations/with_message.rb +0 -27
  63. data/lib/mongoid-rspec/version.rb +0 -5
  64. data/mongoid-rspec.gemspec +0 -25
  65. data/spec/unit/collections_spec.rb +0 -7
  66. data/spec/unit/indexes_spec.rb +0 -17
@@ -1,14 +1,16 @@
1
1
  require 'spec_helper'
2
2
 
3
- RSpec.describe "Associations" do
3
+ RSpec.describe 'Associations' do
4
4
  describe User do
5
- it { is_expected.to have_many(:articles).with_foreign_key(:author_id).ordered_by(:title) }
5
+ if Mongoid::Compatibility::Version.mongoid6_or_newer?
6
+ it { is_expected.to have_many(:articles).with_foreign_key(:author_id).ordered_by(:title) }
7
+ end
6
8
 
7
- it { is_expected.to have_one(:record).with_autobuild }
9
+ it { is_expected.to have_one(:record).as_inverse_of(:user).with_autobuild }
8
10
 
9
11
  it { is_expected.to have_many(:comments).with_dependent(:destroy).with_autosave }
10
12
 
11
- it { is_expected.to embed_one(:profile) }
13
+ it { is_expected.to embed_one(:profile).as_inverse_of(:user) }
12
14
 
13
15
  it { is_expected.to have_and_belong_to_many(:children).of_type(User) }
14
16
  end
@@ -19,8 +21,8 @@ RSpec.describe "Associations" do
19
21
 
20
22
  describe Article do
21
23
  it { is_expected.to belong_to(:author).of_type(User).as_inverse_of(:articles).with_index }
22
- it { is_expected.to embed_many(:comments).with_cascading_callbacks }
23
- it { is_expected.to embed_one(:permalink) }
24
+ it { is_expected.to embed_many(:comments).as_inverse_of(:article).with_cascading_callbacks }
25
+ it { is_expected.to embed_one(:permalink).as_inverse_of(:linkable) }
24
26
  end
25
27
 
26
28
  describe Comment do
@@ -37,6 +39,16 @@ RSpec.describe "Associations" do
37
39
  end
38
40
 
39
41
  describe Site do
40
- it { is_expected.to have_many(:users).as_inverse_of(:site).ordered_by(:email.desc).with_counter_cache }
42
+ if Mongoid::Compatibility::Version.mongoid6_or_older?
43
+ it { is_expected.to have_many(:users).as_inverse_of(:site).ordered_by(:email.desc).with_counter_cache }
44
+ elsif Mongoid::Compatibility::Version.mongoid7_or_newer?
45
+ it { is_expected.to have_many(:users).as_inverse_of(:site).ordered_by(:email.desc) }
46
+ end
47
+ end
48
+
49
+ describe Message do
50
+ if Mongoid::Compatibility::Version.mongoid6_or_newer?
51
+ it { is_expected.to belong_to(:user).with_optional }
52
+ end
41
53
  end
42
54
  end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Mongoid::Matchers::BeDynamicDocument do
4
+ context 'when model does\'t include Mongoid::Document' do
5
+ subject do
6
+ Class.new
7
+ end
8
+
9
+ it { is_expected.not_to be_mongoid_document }
10
+ end
11
+
12
+ context 'when model doesn\'t include Mongoid::Document' do
13
+ subject do
14
+ Class.new do
15
+ include Mongoid::Document
16
+ end
17
+ end
18
+
19
+ it { is_expected.to be_mongoid_document }
20
+ end
21
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+ if Mongoid::Compatibility::Version.mongoid4_or_newer?
3
+ RSpec.describe Mongoid::Matchers::BeMongoidDocument do
4
+ context 'when model does\'t include Mongoid::Attributes::Dynamic' do
5
+ subject do
6
+ Class.new do
7
+ include Mongoid::Document
8
+ end
9
+ end
10
+
11
+ it { is_expected.not_to be_dynamic_document }
12
+ end
13
+
14
+ context 'when model doesn\'t include Mongoid::Attributes::Dynamic' do
15
+ subject do
16
+ Class.new do
17
+ include Mongoid::Document
18
+ include Mongoid::Attributes::Dynamic
19
+ end
20
+ end
21
+
22
+ it { is_expected.to be_dynamic_document }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Mongoid::Matchers::BeStoredIn do
4
+ subject do
5
+ Class.new do
6
+ include Mongoid::Document
7
+ store_in collection: 'citizens', database: 'other', client: 'secondary'
8
+ end
9
+ end
10
+
11
+ it 'detects storage options' do
12
+ is_expected.to be_stored_in(collection: 'citizens', database: 'other', client: 'secondary')
13
+ end
14
+
15
+ it 'detects even part of storage options' do
16
+ is_expected.to be_stored_in(database: 'other')
17
+ is_expected.to be_stored_in(client: 'secondary')
18
+ is_expected.to be_stored_in(collection: 'citizens')
19
+ is_expected.to be_stored_in(collection: 'citizens', database: 'other')
20
+ is_expected.to be_stored_in(database: 'other', client: 'secondary')
21
+ is_expected.to be_stored_in(collection: 'citizens', client: 'secondary')
22
+ end
23
+
24
+ it 'detects differences' do
25
+ is_expected.not_to be_stored_in(collection: 'aliens')
26
+ end
27
+
28
+ context 'when models has storage options defined via blocks, procs or lambdas' do
29
+ subject do
30
+ Class.new do
31
+ include Mongoid::Document
32
+ store_in database: -> { Thread.current[:database] }
33
+ end
34
+ end
35
+
36
+ before do
37
+ Thread.current[:database] = 'db1981'
38
+ end
39
+
40
+ it 'detects storage options' do
41
+ is_expected.to be_stored_in(database: 'db1981')
42
+ end
43
+
44
+ it 'reflects changes in storage options' do
45
+ is_expected.to be_stored_in(database: 'db1981')
46
+ Thread.current[:database] = 'db2200'
47
+ is_expected.to be_stored_in(database: 'db2200')
48
+ end
49
+
50
+ it 'detects differences' do
51
+ is_expected.not_to be_stored_in(database: 'other')
52
+ end
53
+ end
54
+ end
@@ -1,26 +1,17 @@
1
1
  require 'spec_helper'
2
2
 
3
- RSpec.describe "Document" do
3
+ RSpec.describe 'Document' do
4
4
  describe User do
5
5
  it { is_expected.to have_fields(:email, :login) }
6
- it { is_expected.to be_timestamped_document }
7
- it { is_expected.to be_timestamped_document.with(:created) }
8
- it { is_expected.not_to be_timestamped_document.with(:updated) }
9
6
  end
10
7
 
11
8
  describe Article do
12
- it { is_expected.to have_field(:published).of_type(Mongoid::Boolean).with_default_value_of(false) }
13
- it { is_expected.to have_field(:allow_comments).of_type(Mongoid::Boolean).with_default_value_of(true) }
9
+ klass_boolean = Mongoid::Compatibility::Version.mongoid4_or_newer? ? Mongoid::Boolean : Boolean
10
+ it { is_expected.to have_field(:published).of_type(klass_boolean).with_default_value_of(false) }
11
+ it { is_expected.to have_field(:allow_comments).of_type(klass_boolean).with_default_value_of(true) }
14
12
  it { is_expected.to belong_to(:author) }
15
13
  it { is_expected.to have_field(:title).localized }
16
- it { is_expected.not_to have_field(:allow_comments).of_type(Mongoid::Boolean).with_default_value_of(false) }
14
+ it { is_expected.not_to have_field(:allow_comments).of_type(klass_boolean).with_default_value_of(false) }
17
15
  it { is_expected.not_to have_field(:number_of_comments).of_type(Integer).with_default_value_of(1) }
18
- it { is_expected.to be_mongoid_document }
19
- it { is_expected.to be_timestamped_document }
20
- end
21
-
22
- describe Log do
23
- it { is_expected.to be_mongoid_document }
24
- it { is_expected.to be_dynamic_document }
25
16
  end
26
17
  end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Mongoid::Matchers::HaveIndexFor do
4
+ subject do
5
+ Class.new do
6
+ include Mongoid::Document
7
+
8
+ field :fizz, as: :buzz, type: String
9
+
10
+ index(foo: 1)
11
+ index({ bar: 1 }, unique: true, background: true, drop_dups: true)
12
+ index(foo: 1, bar: -1)
13
+ index('baz._id' => 1)
14
+ index(buzz: 1)
15
+ end
16
+ end
17
+
18
+ it 'detects an index for singular field key' do
19
+ is_expected.to have_index_for(foo: 1)
20
+ end
21
+
22
+ it 'detects an index for multipple fields key' do
23
+ is_expected.to have_index_for(foo: 1, bar: -1)
24
+ end
25
+
26
+ it 'detects an index with options' do
27
+ is_expected
28
+ .to have_index_for(bar: 1)
29
+ .with_options(unique: true, background: true, drop_dups: true)
30
+ end
31
+
32
+ it 'detects an index with only part of options' do
33
+ is_expected
34
+ .to have_index_for(bar: 1)
35
+ .with_options(unique: true)
36
+ end
37
+
38
+ it 'detects an index for string key' do
39
+ is_expected.to have_index_for('baz._id' => 1)
40
+ end
41
+
42
+ it 'detect an index for aliased fields' do
43
+ is_expected.to have_index_for(fizz: 1)
44
+ is_expected.to have_index_for(buzz: 1) if Mongoid::Compatibility::Version.mongoid4_or_newer?
45
+ end
46
+ end
@@ -0,0 +1,71 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Mongoid::Matchers::HaveTimestamps do
4
+ context 'when model includes Mongoid::Timestamps' do
5
+ subject do
6
+ Class.new do
7
+ include Mongoid::Document
8
+ include Mongoid::Timestamps
9
+ end
10
+ end
11
+
12
+ it { is_expected.to have_timestamps }
13
+ end
14
+
15
+ context 'when model includes Mongoid::Timestamps::Short' do
16
+ subject do
17
+ Class.new do
18
+ include Mongoid::Document
19
+ include Mongoid::Timestamps::Short
20
+ end
21
+ end
22
+
23
+ it { is_expected.to have_timestamps.shortened }
24
+ end
25
+
26
+ context 'when model includes Mongoid::Timestamps::Updated' do
27
+ subject do
28
+ Class.new do
29
+ include Mongoid::Document
30
+ include Mongoid::Timestamps::Updated
31
+ end
32
+ end
33
+
34
+ it { is_expected.to have_timestamps.for(:updating) }
35
+ end
36
+
37
+ context 'when model includes Mongoid::Timestamps::Updated::Short' do
38
+ subject do
39
+ Class.new do
40
+ include Mongoid::Document
41
+ include Mongoid::Timestamps::Updated::Short
42
+ end
43
+ end
44
+
45
+ it { is_expected.to have_timestamps.for(:updating).shortened }
46
+ it { is_expected.to have_timestamps.shortened.for(:updating) }
47
+ end
48
+
49
+ context 'when model includes Mongoid::Timestamps::Created' do
50
+ subject do
51
+ Class.new do
52
+ include Mongoid::Document
53
+ include Mongoid::Timestamps::Created
54
+ end
55
+ end
56
+
57
+ it { is_expected.to have_timestamps.for(:creating) }
58
+ end
59
+
60
+ context 'when model includes Mongoid::Timestamps::Created::Short' do
61
+ subject do
62
+ Class.new do
63
+ include Mongoid::Document
64
+ include Mongoid::Timestamps::Created::Short
65
+ end
66
+ end
67
+
68
+ it { is_expected.to have_timestamps.for(:creating).shortened }
69
+ it { is_expected.to have_timestamps.shortened.for(:creating) }
70
+ end
71
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- RSpec.describe "Validations" do
3
+ RSpec.describe 'Validations' do
4
4
  describe Site do
5
5
  it { is_expected.to validate_presence_of(:name) }
6
6
  it { is_expected.to validate_uniqueness_of(:name) }
@@ -9,44 +9,53 @@ RSpec.describe "Validations" do
9
9
  describe User do
10
10
  it { is_expected.to validate_presence_of(:login) }
11
11
  it { is_expected.to validate_uniqueness_of(:login).scoped_to(:site) }
12
- it { is_expected.to validate_uniqueness_of(:email).case_insensitive.with_message("is already taken") }
13
- it { is_expected.to validate_format_of(:login).to_allow("valid_login").not_to_allow("invalid login") }
12
+ it { is_expected.to validate_uniqueness_of(:email).case_insensitive.with_message('is already taken') }
13
+ it { is_expected.to validate_format_of(:login).to_allow('valid_login').not_to_allow('invalid login') }
14
14
  it { is_expected.to validate_associated(:profile) }
15
- it { is_expected.to validate_exclusion_of(:login).to_not_allow("super", "index", "edit") }
16
- it { is_expected.to validate_exclusion_of(:password).to_not_allow("password") }
17
- it { is_expected.to validate_inclusion_of(:role).to_allow("admin", "member") }
18
- it { is_expected.to validate_inclusion_of(:role).to_allow(["admin", "member"]) }
15
+ it { is_expected.to validate_exclusion_of(:login).to_not_allow('super', 'index', 'edit') }
16
+ it { is_expected.to validate_exclusion_of(:password).to_not_allow('password') }
17
+ it { is_expected.to validate_inclusion_of(:role).to_allow('admin', 'member') }
18
+ it { is_expected.to validate_inclusion_of(:role).to_allow(%w[admin member]) }
19
19
  it { is_expected.to validate_confirmation_of(:email) }
20
20
  it { is_expected.to validate_presence_of(:age).on(:create, :update) }
21
21
  it { is_expected.to validate_numericality_of(:age).on(:create, :update) }
22
- it { is_expected.to validate_inclusion_of(:age).to_allow(23..42).on([:create, :update]) }
22
+ it { is_expected.to validate_inclusion_of(:age).to_allow(23..42).on(%i[create update]) }
23
23
  it { is_expected.to validate_presence_of(:password).on(:create) }
24
+ it { is_expected.to validate_confirmation_of(:password).with_message('Password confirmation must match given password') }
24
25
  it { is_expected.to validate_presence_of(:provider_uid).on(:create) }
25
- it { is_expected.to validate_inclusion_of(:locale).to_allow([:en, :ru]) }
26
+ it { is_expected.to validate_inclusion_of(:locale).to_allow(%i[en ru]) }
26
27
  end
27
28
 
28
29
  describe Profile do
29
30
  it { is_expected.to validate_numericality_of(:age).greater_than(0) }
31
+ it { is_expected.not_to validate_numericality_of(:age).greater_than(0).only_integer(true) }
30
32
  it { is_expected.to validate_acceptance_of(:terms_of_service) }
31
- it { is_expected.to validate_length_of(:hobbies).with_minimum(1).with_message("requires at least one hobby") }
33
+ it { is_expected.to validate_length_of(:hobbies).with_minimum(1).with_message('requires at least one hobby') }
32
34
  end
33
35
 
34
36
  describe Article do
35
37
  it { is_expected.to validate_length_of(:title).within(8..16) }
36
38
  it { is_expected.not_to validate_length_of(:content).greater_than(200).less_than(16) }
37
39
  it { is_expected.to validate_length_of(:content).greater_than(200) }
38
- it { is_expected.to validate_inclusion_of(:status).to_allow([:pending]).on( :create ) }
39
- it { is_expected.to validate_inclusion_of(:status).to_allow([:approved, :rejected]).on( :update ) }
40
+ it { is_expected.to validate_inclusion_of(:status).to_allow([:pending]).on(:create) }
41
+ it { is_expected.to validate_inclusion_of(:status).to_allow(%i[approved rejected]).on(:update) }
42
+ it { is_expected.to validate_absence_of(:deletion_date) } if Mongoid::Compatibility::Version.mongoid4_or_newer?
40
43
  end
41
44
 
42
45
  describe MovieArticle do
43
46
  it { is_expected.to validate_numericality_of(:rating).greater_than(0) }
44
- it { is_expected.to validate_numericality_of(:rating).to_allow(:greater_than => 0).less_than_or_equal_to(5) }
45
- it { is_expected.to validate_numericality_of(:classification).to_allow(:even => true, :only_integer => true, :nil => false) }
47
+ it { is_expected.to validate_numericality_of(:rating).to_allow(greater_than: 0).less_than_or_equal_to(5) }
48
+ it { is_expected.to validate_numericality_of(:classification).to_allow(even: true, only_integer: true, nil: false) }
46
49
  end
47
50
 
48
51
  describe Person do
49
52
  it { is_expected.to custom_validate(:ssn).with_validator(SsnValidator) }
50
53
  it { is_expected.not_to custom_validate(:name) }
51
54
  end
55
+
56
+ describe Message do
57
+ it { is_expected.to validate_uniqueness_of(:identifier).with_message('uniqueness') }
58
+ it { is_expected.to validate_presence_of(:from).with_message('required') }
59
+ it { is_expected.to validate_format_of(:to).with_message('format') }
60
+ end
52
61
  end
@@ -1,16 +1,16 @@
1
- class SsnValidator < ActiveModel::EachValidator
2
-
1
+ class SsnValidator < ActiveModel::EachValidator
3
2
  def validate_each(record, attribute, value)
4
3
  unless valid_ssn?(record, attribute, value)
5
4
  record.errors[attribute] << "#{value} is not a valid Social Security Number"
6
5
  end
7
6
  end
8
7
 
9
- def self.kind() :custom end
8
+ def self.kind
9
+ :custom
10
+ end
10
11
 
11
- def valid_ssn?(record, attribute, value)
12
+ def valid_ssn?(_record, _attribute, _value)
12
13
  # irrelevant here how validation is done
13
14
  true
14
15
  end
15
-
16
- end
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Sagge
@@ -9,74 +9,143 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-02-01 00:00:00.000000000 Z
12
+ date: 2020-06-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rake
15
+ name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
20
+ version: 3.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
27
+ version: 3.0.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: mongoid
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '3.1'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '3.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: mongoid-compatibility
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 0.5.1
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.5.1
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec-core
30
58
  requirement: !ruby/object:Gem::Requirement
31
59
  requirements:
32
60
  - - "~>"
33
61
  - !ruby/object:Gem::Version
34
- version: 4.0.0
62
+ version: '3.3'
35
63
  type: :runtime
36
64
  prerelease: false
37
65
  version_requirements: !ruby/object:Gem::Requirement
38
66
  requirements:
39
67
  - - "~>"
40
68
  - !ruby/object:Gem::Version
41
- version: 4.0.0
69
+ version: '3.3'
42
70
  - !ruby/object:Gem::Dependency
43
- name: rspec
71
+ name: rspec-expectations
44
72
  requirement: !ruby/object:Gem::Requirement
45
73
  requirements:
46
74
  - - "~>"
47
75
  - !ruby/object:Gem::Version
48
- version: '3.1'
76
+ version: '3.3'
49
77
  type: :runtime
50
78
  prerelease: false
51
79
  version_requirements: !ruby/object:Gem::Requirement
52
80
  requirements:
53
81
  - - "~>"
54
82
  - !ruby/object:Gem::Version
55
- version: '3.1'
83
+ version: '3.3'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec-mocks
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '3.3'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '3.3'
98
+ - !ruby/object:Gem::Dependency
99
+ name: appraisal
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '2.2'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '2.2'
112
+ - !ruby/object:Gem::Dependency
113
+ name: rake
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '10.0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '10.0'
56
126
  description: RSpec matches for Mongoid models, including association and validation
57
- matchers
127
+ matchers.
58
128
  email: evansagge@gmail.com contato@rodrigopinto.me
59
129
  executables: []
60
130
  extensions: []
61
131
  extra_rdoc_files: []
62
132
  files:
63
- - ".bundle/config"
64
- - ".document"
65
- - ".gitignore"
66
- - ".ruby-gemset"
67
- - ".ruby-version"
68
- - ".travis.yml"
69
- - Gemfile
70
133
  - LICENSE
71
134
  - README.md
72
135
  - Rakefile
73
136
  - lib/matchers/accept_nested_attributes.rb
74
137
  - lib/matchers/allow_mass_assignment.rb
75
138
  - lib/matchers/associations.rb
76
- - lib/matchers/collections.rb
77
- - lib/matchers/document.rb
78
- - lib/matchers/indexes.rb
139
+ - lib/matchers/be_dynamic_document.rb
140
+ - lib/matchers/be_mongoid_document.rb
141
+ - lib/matchers/be_stored_in.rb
142
+ - lib/matchers/have_field.rb
143
+ - lib/matchers/have_timestamps.rb
144
+ - lib/matchers/indexes/have_index_for.rb
145
+ - lib/matchers/indexes/v3/have_index_for.rb
146
+ - lib/matchers/indexes/v4/have_index_for.rb
79
147
  - lib/matchers/validations.rb
148
+ - lib/matchers/validations/absence_of.rb
80
149
  - lib/matchers/validations/acceptance_of.rb
81
150
  - lib/matchers/validations/associated.rb
82
151
  - lib/matchers/validations/confirmation_of.rb
@@ -88,13 +157,13 @@ files:
88
157
  - lib/matchers/validations/numericality_of.rb
89
158
  - lib/matchers/validations/presence_of.rb
90
159
  - lib/matchers/validations/uniqueness_of.rb
91
- - lib/matchers/validations/with_message.rb
92
160
  - lib/mongoid-rspec.rb
93
- - lib/mongoid-rspec/version.rb
94
- - mongoid-rspec.gemspec
161
+ - lib/mongoid/rspec.rb
162
+ - lib/mongoid/rspec/version.rb
95
163
  - spec/models/article.rb
96
164
  - spec/models/comment.rb
97
165
  - spec/models/log.rb
166
+ - spec/models/message.rb
98
167
  - spec/models/movie_article.rb
99
168
  - spec/models/permalink.rb
100
169
  - spec/models/person.rb
@@ -105,13 +174,17 @@ files:
105
174
  - spec/spec_helper.rb
106
175
  - spec/unit/accept_nested_attributes_spec.rb
107
176
  - spec/unit/associations_spec.rb
108
- - spec/unit/collections_spec.rb
177
+ - spec/unit/be_dynamic_document_spec.rb
178
+ - spec/unit/be_mongoid_document_spec.rb
179
+ - spec/unit/be_stored_in.rb
109
180
  - spec/unit/document_spec.rb
110
- - spec/unit/indexes_spec.rb
181
+ - spec/unit/have_index_for_spec.rb
182
+ - spec/unit/have_timestamps_spec.rb
111
183
  - spec/unit/validations_spec.rb
112
184
  - spec/validators/ssn_validator.rb
113
185
  homepage: http://github.com/mongoid-rspec/mongoid-rspec
114
- licenses: []
186
+ licenses:
187
+ - MIT
115
188
  metadata: {}
116
189
  post_install_message:
117
190
  rdoc_options: []
@@ -121,34 +194,37 @@ required_ruby_version: !ruby/object:Gem::Requirement
121
194
  requirements:
122
195
  - - ">="
123
196
  - !ruby/object:Gem::Version
124
- version: '0'
197
+ version: '2.2'
125
198
  required_rubygems_version: !ruby/object:Gem::Requirement
126
199
  requirements:
127
200
  - - ">="
128
201
  - !ruby/object:Gem::Version
129
- version: '0'
202
+ version: 1.3.6
130
203
  requirements: []
131
- rubyforge_project: mongoid-rspec
132
- rubygems_version: 2.4.5
204
+ rubygems_version: 3.1.3
133
205
  signing_key:
134
206
  specification_version: 4
135
207
  summary: RSpec matchers for Mongoid
136
208
  test_files:
209
+ - spec/spec_helper.rb
210
+ - spec/unit/associations_spec.rb
211
+ - spec/unit/be_dynamic_document_spec.rb
212
+ - spec/unit/validations_spec.rb
213
+ - spec/unit/be_stored_in.rb
214
+ - spec/unit/have_index_for_spec.rb
215
+ - spec/unit/accept_nested_attributes_spec.rb
216
+ - spec/unit/document_spec.rb
217
+ - spec/unit/be_mongoid_document_spec.rb
218
+ - spec/unit/have_timestamps_spec.rb
137
219
  - spec/models/article.rb
138
- - spec/models/comment.rb
139
- - spec/models/log.rb
140
220
  - spec/models/movie_article.rb
141
- - spec/models/permalink.rb
142
- - spec/models/person.rb
143
- - spec/models/profile.rb
144
221
  - spec/models/record.rb
145
222
  - spec/models/site.rb
223
+ - spec/models/message.rb
224
+ - spec/models/permalink.rb
225
+ - spec/models/profile.rb
226
+ - spec/models/comment.rb
227
+ - spec/models/person.rb
228
+ - spec/models/log.rb
146
229
  - spec/models/user.rb
147
- - spec/spec_helper.rb
148
- - spec/unit/accept_nested_attributes_spec.rb
149
- - spec/unit/associations_spec.rb
150
- - spec/unit/collections_spec.rb
151
- - spec/unit/document_spec.rb
152
- - spec/unit/indexes_spec.rb
153
- - spec/unit/validations_spec.rb
154
230
  - spec/validators/ssn_validator.rb