mongoid-rspec 1.8.0 → 1.8.1

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.
@@ -2,6 +2,7 @@ module Mongoid
2
2
  module Matchers
3
3
  module Validations
4
4
  class ValidateWithCustomValidatorMatcher < HaveValidationMatcher
5
+ include WithMessage
5
6
  def initialize(field)
6
7
  super(field, :custom)
7
8
  end
@@ -11,11 +12,6 @@ module Mongoid
11
12
  self
12
13
  end
13
14
 
14
- def with_message(message)
15
- @expected_message = message
16
- self
17
- end
18
-
19
15
  def matches?(actual)
20
16
  return false unless (@result = super(actual))
21
17
  check_custom_validator if @custom_validator
@@ -41,19 +37,6 @@ module Mongoid
41
37
  @result = false
42
38
  end
43
39
  end
44
-
45
- def check_expected_message
46
- actual_message = @validator.options[:message]
47
- if actual_message.nil?
48
- @negative_result_message << " with no custom message"
49
- @result = false
50
- elsif actual_message == @expected_message
51
- @positive_result_message << " with custom message '#{@expected_message}'"
52
- else
53
- @negative_result_message << " got message '#{actual_message}'"
54
- @result = false
55
- end
56
- end
57
40
  end
58
41
 
59
42
  def custom_validate(field)
@@ -61,4 +44,4 @@ module Mongoid
61
44
  end
62
45
  end
63
46
  end
64
- end
47
+ end
@@ -2,6 +2,8 @@ module Mongoid
2
2
  module Matchers
3
3
  module Validations
4
4
  class ValidateLengthOfMatcher < HaveValidationMatcher
5
+ include WithMessage
6
+
5
7
  def initialize(name)
6
8
  super(name, :length)
7
9
  end
@@ -30,6 +32,11 @@ module Mongoid
30
32
  end
31
33
  alias :is :as_exactly
32
34
 
35
+ def with_message(message)
36
+ @expected_message = message
37
+ self
38
+ end
39
+
33
40
  def matches?(actual)
34
41
  return false unless @result = super(actual)
35
42
 
@@ -37,6 +44,7 @@ module Mongoid
37
44
  check_minimum if @minimum
38
45
  check_range if @within
39
46
  check_exact if @is
47
+ check_expected_message if @expected_message
40
48
 
41
49
  @result
42
50
  end
@@ -47,6 +55,7 @@ module Mongoid
47
55
  options_desc << "with maximum of #{@maximum}" if @maximum
48
56
  options_desc << "within the range of #{@within}" if @within
49
57
  options_desc << "as exactly #{@is}" if @is
58
+ options_desc << "with message '#{@expected_message}'" if @expected_message
50
59
  super << " #{options_desc.to_sentence}"
51
60
  end
52
61
 
@@ -104,6 +113,19 @@ module Mongoid
104
113
  end
105
114
  end
106
115
 
116
+ def check_expected_message
117
+ actual_message = @validator.options[:message]
118
+ if actual_message.nil?
119
+ @negative_result_message << " with no custom message"
120
+ @result = false
121
+ elsif actual_message == @expected_message
122
+ @positive_result_message << " with custom message '#{@expected_message}'"
123
+ else
124
+ @negative_result_message << " got message '#{actual_message}'"
125
+ @result = false
126
+ end
127
+ end
128
+
107
129
  def actual_is
108
130
  actual_is = @validator.options[:is]
109
131
  end
@@ -2,6 +2,7 @@ module Mongoid
2
2
  module Matchers
3
3
  module Validations
4
4
  class ValidateUniquenessOfMatcher < HaveValidationMatcher
5
+ include WithMessage
5
6
  def initialize(field)
6
7
  super(field, :uniqueness)
7
8
  end
@@ -22,11 +23,6 @@ module Mongoid
22
23
  self
23
24
  end
24
25
 
25
- def with_message(message)
26
- @expected_message = message
27
- self
28
- end
29
-
30
26
  def matches?(actual)
31
27
  return false unless @result = super(actual)
32
28
 
@@ -76,19 +72,6 @@ module Mongoid
76
72
  @result = false
77
73
  end
78
74
  end
79
-
80
- def check_expected_message
81
- actual_message = @validator.options[:message]
82
- if actual_message.nil?
83
- @negative_result_message << " with no custom message"
84
- @result = false
85
- elsif actual_message == @expected_message
86
- @positive_result_message << " with custom message '#{@expected_message}'"
87
- else
88
- @negative_result_message << " got message '#{actual_message}'"
89
- @result = false
90
- end
91
- end
92
75
  end
93
76
 
94
77
  def validate_uniqueness_of(field)
@@ -96,4 +79,4 @@ module Mongoid
96
79
  end
97
80
  end
98
81
  end
99
- end
82
+ end
@@ -0,0 +1,27 @@
1
+ module Mongoid
2
+ module Matchers
3
+ module Validations
4
+ module WithMessage
5
+ def with_message(message)
6
+ @expected_message = message
7
+ self
8
+ end
9
+
10
+ private
11
+
12
+ def check_expected_message
13
+ actual_message = @validator.options[:message]
14
+ if actual_message.nil?
15
+ @negative_result_message << " with no custom message"
16
+ @result = false
17
+ elsif actual_message == @expected_message
18
+ @positive_result_message << " with custom message '#{@expected_message}'"
19
+ else
20
+ @negative_result_message << " got message '#{actual_message}'"
21
+ @result = false
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
data/lib/mongoid-rspec.rb CHANGED
@@ -10,6 +10,7 @@ require 'matchers/indexes'
10
10
  require 'matchers/allow_mass_assignment'
11
11
  require 'matchers/accept_nested_attributes'
12
12
  require 'matchers/validations'
13
+ require 'matchers/validations/with_message'
13
14
  require 'matchers/validations/associated'
14
15
  require 'matchers/validations/confirmation_of'
15
16
  require 'matchers/validations/exclusion_of'
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module Rspec
3
- VERSION = "1.8.0"
3
+ VERSION = "1.8.1"
4
4
  end
5
5
  end
@@ -4,11 +4,13 @@ class Profile
4
4
  field :first_name
5
5
  field :last_name
6
6
  field :age
7
-
7
+ field :hobbies, type: Array, default: []
8
+
8
9
  embedded_in :user, :inverse_of => :profile
9
10
 
10
11
  validates_numericality_of :age, :greater_than => 0
11
12
  validates_acceptance_of :terms_of_service
13
+ validates_length_of :hobbies, minimum: 1, message: "requires at least one hobby"
12
14
 
13
15
  index({first_name: 1, last_name: 1 })
14
16
  end
@@ -26,6 +26,7 @@ describe "Validations" do
26
26
  describe Profile do
27
27
  it { should validate_numericality_of(:age).greater_than(0) }
28
28
  it { should validate_acceptance_of(:terms_of_service) }
29
+ it { should validate_length_of(:hobbies).with_minimum(1).with_message("requires at least one hobby") }
29
30
  end
30
31
 
31
32
  describe Article do
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: 1.8.0
4
+ version: 1.8.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-21 00:00:00.000000000 Z
12
+ date: 2013-05-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -93,6 +93,7 @@ files:
93
93
  - lib/matchers/validations/numericality_of.rb
94
94
  - lib/matchers/validations/presence_of.rb
95
95
  - lib/matchers/validations/uniqueness_of.rb
96
+ - lib/matchers/validations/with_message.rb
96
97
  - lib/mongoid-rspec.rb
97
98
  - lib/mongoid-rspec/version.rb
98
99
  - mongoid-rspec.gemspec
@@ -129,7 +130,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
129
130
  version: '0'
130
131
  segments:
131
132
  - 0
132
- hash: 4081406614009892373
133
+ hash: 3977837244165332206
133
134
  required_rubygems_version: !ruby/object:Gem::Requirement
134
135
  none: false
135
136
  requirements:
@@ -138,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
139
  version: '0'
139
140
  segments:
140
141
  - 0
141
- hash: 4081406614009892373
142
+ hash: 3977837244165332206
142
143
  requirements: []
143
144
  rubyforge_project: mongoid-rspec
144
145
  rubygems_version: 1.8.25