remarkable 3.1.8 → 3.1.9

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.
@@ -1,24 +1,24 @@
1
- module Spec #:nodoc:
2
- module Matchers #:nodoc:
3
- # Overwrites to provide I18n on should and should_not.
4
- #
5
- def self.generated_description
6
- return nil if last_should.nil?
7
- verb = Remarkable.t "remarkable.core.#{last_should}", :default => last_should.to_s.gsub('_',' ')
8
- "#{verb} #{last_description}"
9
- end
10
- end
11
-
12
- module Example #:nodoc:
13
- module ExampleGroupMethods #:nodoc:
14
- # Overwrites to provide I18n on example disabled message.
15
- #
16
- def xexample(description=nil, opts={}, &block)
17
- disabled = Remarkable.t 'remarkable.core.example_disabled', :default => 'Example disabled'
18
- Kernel.warn("#{disabled}: #{description}")
19
- end
20
- alias_method :xit, :xexample
21
- alias_method :xspecify, :xexample
22
- end
23
- end
24
- end
1
+ module Spec #:nodoc:
2
+ module Matchers #:nodoc:
3
+ # Overwrites to provide I18n on should and should_not.
4
+ #
5
+ def self.generated_description
6
+ return nil if last_should.nil?
7
+ verb = Remarkable.t "remarkable.core.#{last_should}", :default => last_should.to_s.gsub('_',' ')
8
+ "#{verb} #{last_description}"
9
+ end
10
+ end
11
+
12
+ module Example #:nodoc:
13
+ module ExampleGroupMethods #:nodoc:
14
+ # Overwrites to provide I18n on example disabled message.
15
+ #
16
+ def xexample(description=nil, opts={}, &block)
17
+ disabled = Remarkable.t 'remarkable.core.example_disabled', :default => 'Example disabled'
18
+ Kernel.warn("#{disabled}: #{description}")
19
+ end
20
+ alias_method :xit, :xexample
21
+ alias_method :xspecify, :xexample
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
- module Remarkable
2
- VERSION = '3.1.8' unless self.const_defined?(:VERSION)
3
- end
1
+ module Remarkable
2
+ VERSION = '3.1.9' unless self.const_defined?(:VERSION)
3
+ end
@@ -1,14 +1,14 @@
1
- en:
2
- remarkable:
3
- core:
4
- not: "not"
5
- should: "should"
6
- should_not: "should not"
7
- example_disabled: "Example disabled"
8
- failure_message_for_should: "Expected {{expectation}}"
9
- failure_message_for_should_not: "Did not expect {{expectation}}"
10
-
11
- helpers:
12
- words_connector: ", "
13
- two_words_connector: " and "
14
- last_word_connector: ", and "
1
+ en:
2
+ remarkable:
3
+ core:
4
+ not: "not"
5
+ should: "should"
6
+ should_not: "should not"
7
+ example_disabled: "Example disabled"
8
+ failure_message_for_should: "Expected {{expectation}}"
9
+ failure_message_for_should_not: "Did not expect {{expectation}}"
10
+
11
+ helpers:
12
+ words_connector: ", "
13
+ two_words_connector: " and "
14
+ last_word_connector: ", and "
@@ -1,46 +1,46 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe Remarkable::Base do
4
- subject { [1, 2, 3] }
5
-
6
- it 'should provide default structure to matchers' do
7
- [1, 2, 3].should contain(1)
8
- [1, 2, 3].should contain(1, 2)
9
- [1, 2, 3].should contain(1, 2, 3)
10
-
11
- [1, 2, 3].should_not contain(4)
12
- [1, 2, 3].should_not contain(1, 4)
13
- end
14
-
15
- it 'should not change rspec matchers default behavior' do
16
- should include(3)
17
- [1, 2, 3].should include(3)
18
-
19
- 1.should == 1
20
- true.should be_true
21
- false.should be_false
22
- proc{ 1 + '' }.should raise_error(TypeError)
23
- end
24
-
25
- it 'should store spec instance binding' do
26
- matcher = contain(1)
27
- should matcher
28
- matcher.instance_variable_get('@spec').class.ancestors.should include(Spec::Example::ExampleGroup)
29
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe Remarkable::Base do
4
+ subject { [1, 2, 3] }
5
+
6
+ it 'should provide default structure to matchers' do
7
+ [1, 2, 3].should contain(1)
8
+ [1, 2, 3].should contain(1, 2)
9
+ [1, 2, 3].should contain(1, 2, 3)
10
+
11
+ [1, 2, 3].should_not contain(4)
12
+ [1, 2, 3].should_not contain(1, 4)
13
+ end
14
+
15
+ it 'should not change rspec matchers default behavior' do
16
+ should include(3)
17
+ [1, 2, 3].should include(3)
18
+
19
+ 1.should == 1
20
+ true.should be_true
21
+ false.should be_false
22
+ proc{ 1 + '' }.should raise_error(TypeError)
23
+ end
24
+
25
+ it 'should store spec instance binding' do
26
+ matcher = contain(1)
27
+ should matcher
28
+ matcher.instance_variable_get('@spec').class.ancestors.should include(Spec::Example::ExampleGroup)
29
+ end
30
30
 
31
31
  it 'should be positive' do
32
32
  contain(1).should be_positive
33
33
  contain(1).should_not be_negative
34
34
  end
35
-
36
- it { should contain(1) }
37
- it { should_not contain(10) }
38
-
39
- class MatchersSandbox
40
- include Remarkable::Matchers
41
- end
42
-
43
- it 'should allow Macros and Matchers to be added to any class' do
44
- MatchersSandbox.new.should respond_to(:contain)
45
- end
46
- end
35
+
36
+ it { should contain(1) }
37
+ it { should_not contain(10) }
38
+
39
+ class MatchersSandbox
40
+ include Remarkable::Matchers
41
+ end
42
+
43
+ it 'should allow Macros and Matchers to be added to any class' do
44
+ MatchersSandbox.new.should respond_to(:contain)
45
+ end
46
+ end
@@ -1,54 +1,54 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
-
3
- describe Remarkable::DSL::Assertions do
4
- subject { [1, 2, 3] }
5
-
6
- before(:each) do
7
- @matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1, 2, 3)
8
- end
9
-
10
- it 'should provide default structure for assertions' do
11
- should collection_contain(1)
12
- should collection_contain(1, 2)
13
- should collection_contain(1, 2, 3)
14
-
15
- should_not collection_contain(4)
16
- should_not collection_contain(1, 4)
17
- end
18
-
19
- it 'should provide default structure for single assertions' do
20
- should single_contain(1)
21
- should_not single_contain(4)
22
- nil.should_not single_contain(1)
23
- end
24
-
25
- it 'should provide collection in description' do
26
- @matcher.description.should == 'contain 1, 2, and 3'
27
- end
28
-
29
- it 'should provide value to expectation messages' do
30
- @matcher.matches?([4])
31
- @matcher.failure_message.should == 'Expected that 1 is included in [4]'
32
- end
33
-
34
- it 'should accept blocks as argument' do
35
- should_not single_contain(4)
36
- should single_contain(4){ self << 4 }
37
- end
38
-
39
- it 'should provide an interface for default_options hook' do
40
- matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1, :args => true)
41
- matcher.instance_variable_get('@options').should == { :working => true, :args => true }
42
- end
43
-
44
- it 'should provide an interface for after_initialize hook' do
45
- matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1)
46
- matcher.instance_variable_get('@after_initialize').should be_true
47
- end
48
-
49
- it 'should provide an interface for before_assert hook' do
50
- matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1)
51
- [1, 2, 3].should matcher
52
- matcher.instance_variable_get('@before_assert').should be_true
53
- end
54
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe Remarkable::DSL::Assertions do
4
+ subject { [1, 2, 3] }
5
+
6
+ before(:each) do
7
+ @matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1, 2, 3)
8
+ end
9
+
10
+ it 'should provide default structure for assertions' do
11
+ should collection_contain(1)
12
+ should collection_contain(1, 2)
13
+ should collection_contain(1, 2, 3)
14
+
15
+ should_not collection_contain(4)
16
+ should_not collection_contain(1, 4)
17
+ end
18
+
19
+ it 'should provide default structure for single assertions' do
20
+ should single_contain(1)
21
+ should_not single_contain(4)
22
+ nil.should_not single_contain(1)
23
+ end
24
+
25
+ it 'should provide collection in description' do
26
+ @matcher.description.should == 'contain 1, 2, and 3'
27
+ end
28
+
29
+ it 'should provide value to expectation messages' do
30
+ @matcher.matches?([4])
31
+ @matcher.failure_message.should == 'Expected that 1 is included in [4]'
32
+ end
33
+
34
+ it 'should accept blocks as argument' do
35
+ should_not single_contain(4)
36
+ should single_contain(4){ self << 4 }
37
+ end
38
+
39
+ it 'should provide an interface for default_options hook' do
40
+ matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1, :args => true)
41
+ matcher.instance_variable_get('@options').should == { :working => true, :args => true }
42
+ end
43
+
44
+ it 'should provide an interface for after_initialize hook' do
45
+ matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1)
46
+ matcher.instance_variable_get('@after_initialize').should be_true
47
+ end
48
+
49
+ it 'should provide an interface for before_assert hook' do
50
+ matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1)
51
+ [1, 2, 3].should matcher
52
+ matcher.instance_variable_get('@before_assert').should be_true
53
+ end
54
+ end
@@ -1,237 +1,237 @@
1
- # encoding: utf-8
2
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
3
-
4
- describe Remarkable::DSL::Optionals do
5
-
6
- describe "without config blocks" do
7
-
8
- before(:each) do
9
- @matcher = Remarkable::Specs::Matchers::BeAPersonMatcher.new
10
- end
11
-
12
- describe "as optionals" do
13
- it "should allow optionals to be set" do
14
- @matcher.first_name('José')
15
- @matcher.options[:first_name].should == 'José'
16
-
17
- @matcher.last_name('Valim')
18
- @matcher.options[:last_name].should == 'Valim'
19
- end
20
-
21
- it "should allow defaults values" do
22
- @matcher.age
23
- @matcher.options[:age].should == 18
24
- end
25
-
26
- it "should allow alias to be set" do
27
- @matcher.family_name('Valim')
28
- @matcher.options[:last_name].should == 'Valim'
29
- end
30
-
31
- it "should allow multiple options to be given" do
32
- @matcher.bands(:incubus, :foo_fighters)
33
- @matcher.options[:bands].should == [:incubus, :foo_fighters]
34
- end
35
-
36
- it "should allow multiple options to be appended once at a time" do
37
- @matcher.bands(:incubus)
38
- @matcher.bands(:foo_fighters)
39
- @matcher.options[:bands].should == [:incubus, :foo_fighters]
40
- end
41
-
42
- it "should allow blocks to given to options" do
43
- @matcher.builder {|i| i + 10 }
44
- @matcher.options[:builder].call(10).should == 20
45
-
46
- @matcher.builder proc{|i| i + 20 }
47
- @matcher.options[:builder].call(10).should == 30
48
- end
49
- end
50
-
51
- describe "as optionals=" do
52
- it "should allow optionals to be set" do
53
- @matcher.first_name = 'José'
54
- @matcher.options[:first_name].should == 'José'
55
-
56
- @matcher.last_name = 'Valim'
57
- @matcher.options[:last_name].should == 'Valim'
58
- end
59
-
60
- it "should allow alias to be set" do
61
- @matcher.family_name = 'Valim'
62
- @matcher.options[:last_name].should == 'Valim'
63
- end
64
-
65
- it "should allow multiple options to be given" do
66
- @matcher.bands = [ :incubus, :foo_fighters ]
67
- @matcher.options[:bands].should == [ :incubus, :foo_fighters ]
68
- end
69
-
70
- it "should overwrite previous options" do
71
- @matcher.bands = [ :incubus ]
72
- @matcher.bands = [ :foo_fighters ]
73
- @matcher.options[:bands].should == [:foo_fighters]
74
- end
75
-
76
- it "should allow blocks to given to options" do
77
- @matcher.builder = proc{|i| i + 20 }
78
- @matcher.options[:builder].call(10).should == 30
79
- end
80
- end
81
-
82
- end
83
-
84
- describe "with config blocks" do
85
-
86
- def builder(*args, &block)
87
- Remarkable::Specs::Matchers::BeAPersonMatcher.new(*args, &block)
88
- end
89
-
90
- describe "as optionals" do
91
- it "should allow optionals to be set" do
92
- matcher = builder do |m|
93
- m.first_name 'José'
94
- m.last_name 'Valim'
95
- end
96
-
97
- matcher.options[:first_name].should == 'José'
98
- matcher.options[:last_name].should == 'Valim'
99
- end
100
-
101
- it "should allow defaults values" do
102
- matcher = builder do |m|
103
- m.age
104
- end
105
-
106
- matcher.options[:age].should == 18
107
- end
108
-
109
- it "should allow alias to be set" do
110
- matcher = builder do |m|
111
- m.family_name 'Valim'
112
- end
113
-
114
- matcher.options[:last_name].should == 'Valim'
115
- end
116
-
117
- it "should allow multiple options to be given" do
118
- matcher = builder do |m|
119
- m.bands(:incubus, :foo_fighters)
120
- end
121
-
122
- matcher.options[:bands].should == [:incubus, :foo_fighters]
123
- end
124
-
125
- it "should allow multiple options to be appended once at a time" do
126
- matcher = builder do |m|
127
- m.bands(:incubus)
128
- m.bands(:foo_fighters)
129
- end
130
-
131
- matcher.options[:bands].should == [:incubus, :foo_fighters]
132
- end
133
-
134
- it "should allow blocks to given to options" do
135
- matcher = builder do |m|
136
- m.builder {|i| i + 10 }
137
- end
138
-
139
- matcher.options[:builder].call(10).should == 20
140
-
141
- matcher = builder do |m|
142
- m.builder proc {|i| i + 20 }
143
- end
144
-
145
- matcher.options[:builder].call(10).should == 30
146
- end
147
- end
148
-
149
- describe "as optionals=" do
150
- it "should allow optionals to be set" do
151
- matcher = builder do |m|
152
- m.first_name = 'José'
153
- m.last_name = 'Valim'
154
- end
155
-
156
- matcher.options[:first_name].should == 'José'
157
- matcher.options[:last_name].should == 'Valim'
158
- end
159
-
160
- it "should allow alias to be set" do
161
- matcher = builder do |m|
162
- m.family_name = 'Valim'
163
- end
164
-
165
- matcher.options[:last_name].should == 'Valim'
166
- end
167
-
168
- it "should allow multiple options to be given" do
169
- matcher = builder do |m|
170
- m.bands = [ :incubus, :foo_fighters ]
171
- end
172
-
173
- matcher.options[:bands].should == [ :incubus, :foo_fighters ]
174
- end
175
-
176
- it "should overwrite previous options" do
177
- matcher = builder do |m|
178
- m.bands = [ :incubus ]
179
- m.bands = [ :foo_fighters ]
180
- end
181
-
182
- matcher.options[:bands].should == [ :foo_fighters ]
183
- end
184
-
185
- it "should allow blocks to given to options" do
186
- matcher = builder do |m|
187
- m.builder = proc {|i| i + 20 }
188
- end
189
-
190
- matcher.options[:builder].call(10).should == 30
191
- end
192
- end
193
-
194
- end
195
-
196
- describe "description" do
197
- it "should provide a description with optionals" do
198
- matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
199
- matcher.description.should == 'contain 1 not checking for blank'
200
-
201
- matcher.allow_blank(10)
202
- matcher.description.should == 'contain 1 with blank equal 10'
203
-
204
- matcher.allow_blank(true)
205
- matcher.description.should == 'contain 1 with blank equal true'
206
-
207
- matcher.allow_nil(true)
208
- matcher.description.should == 'contain 1 allowing nil and with blank equal true'
209
-
210
- matcher.allow_nil(false)
211
- matcher.description.should == 'contain 1 not allowing nil and with blank equal true'
212
- end
213
-
214
- it "should provide a sentence interpolation option to optionals" do
215
- matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
216
- matcher.values(1, 2, 3)
217
- matcher.description.should == 'contain 1 not checking for blank and values equal to 1, 2, and 3'
218
- end
219
-
220
- it "should inspect values in sentence interpolation options" do
221
- matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
222
- matcher.values(:a, :b, :c)
223
- matcher.description.should == 'contain 1 not checking for blank and values equal to :a, :b, and :c'
224
- end
225
-
226
- it "should provide a description with optionals through namespace lookup" do
227
- matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1)
228
- matcher.description.should == 'contain 1'
229
-
230
- matcher.allow_nil(true)
231
- matcher.description.should == 'contain 1 allowing nil'
232
-
233
- matcher.allow_nil(false)
234
- matcher.description.should == 'contain 1 not allowing nil'
235
- end
236
- end
237
- end
1
+ # encoding: utf-8
2
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
3
+
4
+ describe Remarkable::DSL::Optionals do
5
+
6
+ describe "without config blocks" do
7
+
8
+ before(:each) do
9
+ @matcher = Remarkable::Specs::Matchers::BeAPersonMatcher.new
10
+ end
11
+
12
+ describe "as optionals" do
13
+ it "should allow optionals to be set" do
14
+ @matcher.first_name('José')
15
+ @matcher.options[:first_name].should == 'José'
16
+
17
+ @matcher.last_name('Valim')
18
+ @matcher.options[:last_name].should == 'Valim'
19
+ end
20
+
21
+ it "should allow defaults values" do
22
+ @matcher.age
23
+ @matcher.options[:age].should == 18
24
+ end
25
+
26
+ it "should allow alias to be set" do
27
+ @matcher.family_name('Valim')
28
+ @matcher.options[:last_name].should == 'Valim'
29
+ end
30
+
31
+ it "should allow multiple options to be given" do
32
+ @matcher.bands(:incubus, :foo_fighters)
33
+ @matcher.options[:bands].should == [:incubus, :foo_fighters]
34
+ end
35
+
36
+ it "should allow multiple options to be appended once at a time" do
37
+ @matcher.bands(:incubus)
38
+ @matcher.bands(:foo_fighters)
39
+ @matcher.options[:bands].should == [:incubus, :foo_fighters]
40
+ end
41
+
42
+ it "should allow blocks to given to options" do
43
+ @matcher.builder {|i| i + 10 }
44
+ @matcher.options[:builder].call(10).should == 20
45
+
46
+ @matcher.builder proc{|i| i + 20 }
47
+ @matcher.options[:builder].call(10).should == 30
48
+ end
49
+ end
50
+
51
+ describe "as optionals=" do
52
+ it "should allow optionals to be set" do
53
+ @matcher.first_name = 'José'
54
+ @matcher.options[:first_name].should == 'José'
55
+
56
+ @matcher.last_name = 'Valim'
57
+ @matcher.options[:last_name].should == 'Valim'
58
+ end
59
+
60
+ it "should allow alias to be set" do
61
+ @matcher.family_name = 'Valim'
62
+ @matcher.options[:last_name].should == 'Valim'
63
+ end
64
+
65
+ it "should allow multiple options to be given" do
66
+ @matcher.bands = [ :incubus, :foo_fighters ]
67
+ @matcher.options[:bands].should == [ :incubus, :foo_fighters ]
68
+ end
69
+
70
+ it "should overwrite previous options" do
71
+ @matcher.bands = [ :incubus ]
72
+ @matcher.bands = [ :foo_fighters ]
73
+ @matcher.options[:bands].should == [:foo_fighters]
74
+ end
75
+
76
+ it "should allow blocks to given to options" do
77
+ @matcher.builder = proc{|i| i + 20 }
78
+ @matcher.options[:builder].call(10).should == 30
79
+ end
80
+ end
81
+
82
+ end
83
+
84
+ describe "with config blocks" do
85
+
86
+ def builder(*args, &block)
87
+ Remarkable::Specs::Matchers::BeAPersonMatcher.new(*args, &block)
88
+ end
89
+
90
+ describe "as optionals" do
91
+ it "should allow optionals to be set" do
92
+ matcher = builder do |m|
93
+ m.first_name 'José'
94
+ m.last_name 'Valim'
95
+ end
96
+
97
+ matcher.options[:first_name].should == 'José'
98
+ matcher.options[:last_name].should == 'Valim'
99
+ end
100
+
101
+ it "should allow defaults values" do
102
+ matcher = builder do |m|
103
+ m.age
104
+ end
105
+
106
+ matcher.options[:age].should == 18
107
+ end
108
+
109
+ it "should allow alias to be set" do
110
+ matcher = builder do |m|
111
+ m.family_name 'Valim'
112
+ end
113
+
114
+ matcher.options[:last_name].should == 'Valim'
115
+ end
116
+
117
+ it "should allow multiple options to be given" do
118
+ matcher = builder do |m|
119
+ m.bands(:incubus, :foo_fighters)
120
+ end
121
+
122
+ matcher.options[:bands].should == [:incubus, :foo_fighters]
123
+ end
124
+
125
+ it "should allow multiple options to be appended once at a time" do
126
+ matcher = builder do |m|
127
+ m.bands(:incubus)
128
+ m.bands(:foo_fighters)
129
+ end
130
+
131
+ matcher.options[:bands].should == [:incubus, :foo_fighters]
132
+ end
133
+
134
+ it "should allow blocks to given to options" do
135
+ matcher = builder do |m|
136
+ m.builder {|i| i + 10 }
137
+ end
138
+
139
+ matcher.options[:builder].call(10).should == 20
140
+
141
+ matcher = builder do |m|
142
+ m.builder proc {|i| i + 20 }
143
+ end
144
+
145
+ matcher.options[:builder].call(10).should == 30
146
+ end
147
+ end
148
+
149
+ describe "as optionals=" do
150
+ it "should allow optionals to be set" do
151
+ matcher = builder do |m|
152
+ m.first_name = 'José'
153
+ m.last_name = 'Valim'
154
+ end
155
+
156
+ matcher.options[:first_name].should == 'José'
157
+ matcher.options[:last_name].should == 'Valim'
158
+ end
159
+
160
+ it "should allow alias to be set" do
161
+ matcher = builder do |m|
162
+ m.family_name = 'Valim'
163
+ end
164
+
165
+ matcher.options[:last_name].should == 'Valim'
166
+ end
167
+
168
+ it "should allow multiple options to be given" do
169
+ matcher = builder do |m|
170
+ m.bands = [ :incubus, :foo_fighters ]
171
+ end
172
+
173
+ matcher.options[:bands].should == [ :incubus, :foo_fighters ]
174
+ end
175
+
176
+ it "should overwrite previous options" do
177
+ matcher = builder do |m|
178
+ m.bands = [ :incubus ]
179
+ m.bands = [ :foo_fighters ]
180
+ end
181
+
182
+ matcher.options[:bands].should == [ :foo_fighters ]
183
+ end
184
+
185
+ it "should allow blocks to given to options" do
186
+ matcher = builder do |m|
187
+ m.builder = proc {|i| i + 20 }
188
+ end
189
+
190
+ matcher.options[:builder].call(10).should == 30
191
+ end
192
+ end
193
+
194
+ end
195
+
196
+ describe "description" do
197
+ it "should provide a description with optionals" do
198
+ matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
199
+ matcher.description.should == 'contain 1 not checking for blank'
200
+
201
+ matcher.allow_blank(10)
202
+ matcher.description.should == 'contain 1 with blank equal 10'
203
+
204
+ matcher.allow_blank(true)
205
+ matcher.description.should == 'contain 1 with blank equal true'
206
+
207
+ matcher.allow_nil(true)
208
+ matcher.description.should == 'contain 1 allowing nil and with blank equal true'
209
+
210
+ matcher.allow_nil(false)
211
+ matcher.description.should == 'contain 1 not allowing nil and with blank equal true'
212
+ end
213
+
214
+ it "should provide a sentence interpolation option to optionals" do
215
+ matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
216
+ matcher.values(1, 2, 3)
217
+ matcher.description.should == 'contain 1 not checking for blank and values equal to 1, 2, and 3'
218
+ end
219
+
220
+ it "should inspect values in sentence interpolation options" do
221
+ matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
222
+ matcher.values(:a, :b, :c)
223
+ matcher.description.should == 'contain 1 not checking for blank and values equal to :a, :b, and :c'
224
+ end
225
+
226
+ it "should provide a description with optionals through namespace lookup" do
227
+ matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1)
228
+ matcher.description.should == 'contain 1'
229
+
230
+ matcher.allow_nil(true)
231
+ matcher.description.should == 'contain 1 allowing nil'
232
+
233
+ matcher.allow_nil(false)
234
+ matcher.description.should == 'contain 1 not allowing nil'
235
+ end
236
+ end
237
+ end