slimkeyfy 0.0.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.
- checksums.yaml +7 -0
- data/.gitignore +34 -0
- data/.rspec +3 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +22 -0
- data/LICENSE +21 -0
- data/README.md +172 -0
- data/bin/slimkeyfy +5 -0
- data/lib/.DS_Store +0 -0
- data/lib/slimkeyfy/console/command_line.rb +90 -0
- data/lib/slimkeyfy/console/io_action.rb +30 -0
- data/lib/slimkeyfy/console/printer.rb +50 -0
- data/lib/slimkeyfy/console/translate.rb +101 -0
- data/lib/slimkeyfy/console.rb +8 -0
- data/lib/slimkeyfy/slimutils/file_utils.rb +61 -0
- data/lib/slimkeyfy/slimutils/hash_merging.rb +84 -0
- data/lib/slimkeyfy/slimutils/key_generator.rb +70 -0
- data/lib/slimkeyfy/slimutils/yaml_processor.rb +56 -0
- data/lib/slimkeyfy/slimutils.rb +8 -0
- data/lib/slimkeyfy/transformer/base_transformer.rb +42 -0
- data/lib/slimkeyfy/transformer/controller_transformer.rb +20 -0
- data/lib/slimkeyfy/transformer/slim_transformer.rb +92 -0
- data/lib/slimkeyfy/transformer/whitespacer.rb +48 -0
- data/lib/slimkeyfy/transformer/word.rb +49 -0
- data/lib/slimkeyfy/transformer.rb +9 -0
- data/lib/slimkeyfy/version.rb +3 -0
- data/lib/slimkeyfy.rb +12 -0
- data/slimkeyfy.gemspec +21 -0
- data/vendor/bundle/bin/htmldiff +25 -0
- data/vendor/bundle/bin/ldiff +25 -0
- data/vendor/bundle/bin/rspec +23 -0
- data/vendor/bundle/build_info/diff-lcs-1.2.5.info +1 -0
- data/vendor/bundle/build_info/rspec-3.0.0.info +1 -0
- data/vendor/bundle/build_info/rspec-core-3.0.2.info +1 -0
- data/vendor/bundle/build_info/rspec-expectations-3.0.2.info +1 -0
- data/vendor/bundle/build_info/rspec-mocks-3.0.2.info +1 -0
- data/vendor/bundle/build_info/rspec-support-3.0.2.info +1 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.autotest +3 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.gemtest +0 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.hoerc +2 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.rspec +2 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/.travis.yml +22 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/Contributing.rdoc +64 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/Gemfile +20 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/History.rdoc +152 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/License.rdoc +39 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/Manifest.txt +38 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/README.rdoc +85 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/Rakefile +41 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/autotest/discover.rb +1 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/bin/htmldiff +32 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/bin/ldiff +6 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/docs/COPYING.txt +339 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/docs/artistic.txt +127 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/array.rb +7 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/block.rb +37 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/callbacks.rb +322 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/change.rb +177 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/htmldiff.rb +149 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/hunk.rb +276 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/internals.rb +301 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/ldiff.rb +195 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/string.rb +5 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs.rb +805 -0
- data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff-lcs.rb +3 -0
- data/vendor/bundle/gems/rspec-3.0.0/License.txt +24 -0
- data/vendor/bundle/gems/rspec-3.0.0/README.md +47 -0
- data/vendor/bundle/gems/rspec-3.0.0/lib/rspec.rb +3 -0
- data/vendor/bundle/gems/rspec-core-3.0.2/.document +5 -0
- data/vendor/bundle/gems/rspec-core-3.0.2/.yardopts +7 -0
- data/vendor/bundle/gems/rspec-core-3.0.2/Changelog.md +1466 -0
- data/vendor/bundle/gems/rspec-core-3.0.2/License.txt +25 -0
- data/vendor/bundle/gems/rspec-core-3.0.2/README.md +243 -0
- data/vendor/bundle/gems/rspec-core-3.0.2/exe/rspec +4 -0
- data/vendor/bundle/gems/rspec-expectations-3.0.2/.document +5 -0
- data/vendor/bundle/gems/rspec-expectations-3.0.2/.yardopts +6 -0
- data/vendor/bundle/gems/rspec-expectations-3.0.2/Changelog.md +749 -0
- data/vendor/bundle/gems/rspec-expectations-3.0.2/License.txt +24 -0
- data/vendor/bundle/gems/rspec-expectations-3.0.2/README.md +278 -0
- data/vendor/bundle/gems/rspec-mocks-3.0.2/.document +5 -0
- data/vendor/bundle/gems/rspec-mocks-3.0.2/.yardopts +6 -0
- data/vendor/bundle/gems/rspec-mocks-3.0.2/Changelog.md +733 -0
- data/vendor/bundle/gems/rspec-mocks-3.0.2/License.txt +24 -0
- data/vendor/bundle/gems/rspec-mocks-3.0.2/README.md +380 -0
- data/vendor/bundle/gems/rspec-support-3.0.2/Changelog.md +30 -0
- data/vendor/bundle/gems/rspec-support-3.0.2/LICENSE.txt +22 -0
- data/vendor/bundle/gems/rspec-support-3.0.2/README.md +17 -0
- data/vendor/bundle/specifications/diff-lcs-1.2.5.gemspec +68 -0
- data/vendor/bundle/specifications/rspec-3.0.0.gemspec +43 -0
- data/vendor/bundle/specifications/rspec-core-3.0.2.gemspec +66 -0
- data/vendor/bundle/specifications/rspec-expectations-3.0.2.gemspec +51 -0
- data/vendor/bundle/specifications/rspec-mocks-3.0.2.gemspec +48 -0
- data/vendor/bundle/specifications/rspec-support-3.0.2.gemspec +42 -0
- metadata +153 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
(The MIT License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2012 David Chelimsky, Myron Marston
|
|
4
|
+
Copyright (c) 2006 David Chelimsky, The RSpec Development Team
|
|
5
|
+
Copyright (c) 2005 Steven Baker
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
8
|
+
a copy of this software and associated documentation files (the
|
|
9
|
+
"Software"), to deal in the Software without restriction, including
|
|
10
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
11
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
12
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
13
|
+
the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be
|
|
16
|
+
included in all copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
20
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
21
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
22
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
23
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
24
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
# RSpec Mocks [](http://travis-ci.org/rspec/rspec-mocks) [](https://codeclimate.com/github/rspec/rspec-mocks) [](http://inch-pages.github.io/github/rspec/rspec-mocks)
|
|
2
|
+
|
|
3
|
+
rspec-mocks is a test-double framework for rspec with support for method stubs,
|
|
4
|
+
fakes, and message expectations on generated test-doubles and real objects
|
|
5
|
+
alike.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
gem install rspec # for rspec-core, rspec-expectations, rspec-mocks
|
|
10
|
+
gem install rspec-mocks # for rspec-mocks only
|
|
11
|
+
|
|
12
|
+
## Test Doubles
|
|
13
|
+
|
|
14
|
+
A test double is an object that stands in for another object in your system
|
|
15
|
+
during a code example. Use the `double` method, passing in an optional identifier, to create one:
|
|
16
|
+
|
|
17
|
+
```ruby
|
|
18
|
+
book = double("book")
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Most of the time you will want some confidence that your doubles resemble an
|
|
22
|
+
existing object in your system. Verifying doubles are provided for this
|
|
23
|
+
purpose. If the existing object is available, they will prevent you from adding
|
|
24
|
+
stubs and expectations for methods that do not exist or that have an invalid
|
|
25
|
+
number of parameters.
|
|
26
|
+
|
|
27
|
+
```ruby
|
|
28
|
+
book = instance_double("Book", :pages => 250)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Verifying doubles have some clever tricks to enable you to both test in
|
|
32
|
+
isolation without your dependencies loaded while still being able to validate
|
|
33
|
+
them against real objects. More detail is available in [their
|
|
34
|
+
documentation](https://github.com/rspec/rspec-mocks/blob/master/features/verifying_doubles).
|
|
35
|
+
|
|
36
|
+
## Method Stubs
|
|
37
|
+
|
|
38
|
+
A method stub is an implementation that returns a pre-determined value. Method
|
|
39
|
+
stubs can be declared on test doubles or real objects using the same syntax.
|
|
40
|
+
rspec-mocks supports 3 forms for declaring method stubs:
|
|
41
|
+
|
|
42
|
+
```ruby
|
|
43
|
+
allow(book).to receive(:title) { "The RSpec Book" }
|
|
44
|
+
allow(book).to receive(:title).and_return("The RSpec Book")
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
You can also use this shortcut, which creates a test double and declares a
|
|
48
|
+
method stub in one statement:
|
|
49
|
+
|
|
50
|
+
```ruby
|
|
51
|
+
book = double("book", :title => "The RSpec Book")
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The first argument is a name, which is used for documentation and appears in
|
|
55
|
+
failure messages. If you don't care about the name, you can leave it out,
|
|
56
|
+
making the combined instantiation/stub declaration very terse:
|
|
57
|
+
|
|
58
|
+
```ruby
|
|
59
|
+
double(:foo => 'bar')
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This is particularly nice when providing a list of test doubles to a method
|
|
63
|
+
that iterates through them:
|
|
64
|
+
|
|
65
|
+
```ruby
|
|
66
|
+
order.calculate_total_price(double(:price => 1.99), double(:price => 2.99))
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Consecutive return values
|
|
70
|
+
|
|
71
|
+
When a stub might be invoked more than once, you can provide additional
|
|
72
|
+
arguments to `and_return`. The invocations cycle through the list. The last
|
|
73
|
+
value is returned for any subsequent invocations:
|
|
74
|
+
|
|
75
|
+
```ruby
|
|
76
|
+
allow(die).to receive(:roll).and_return(1, 2, 3)
|
|
77
|
+
die.roll # => 1
|
|
78
|
+
die.roll # => 2
|
|
79
|
+
die.roll # => 3
|
|
80
|
+
die.roll # => 3
|
|
81
|
+
die.roll # => 3
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
To return an array in a single invocation, declare an array:
|
|
85
|
+
|
|
86
|
+
```ruby
|
|
87
|
+
allow(team).to receive(:players).and_return([double(:name => "David")])
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Message Expectations
|
|
91
|
+
|
|
92
|
+
A message expectation is an expectation that the test double will receive a
|
|
93
|
+
message some time before the example ends. If the message is received, the
|
|
94
|
+
expectation is satisfied. If not, the example fails.
|
|
95
|
+
|
|
96
|
+
```ruby
|
|
97
|
+
validator = double("validator")
|
|
98
|
+
expect(validator).to receive(:validate) { "02134" }
|
|
99
|
+
zipcode = Zipcode.new("02134", validator)
|
|
100
|
+
zipcode.valid?
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Test Spies
|
|
104
|
+
|
|
105
|
+
Verifies the given object received the expected message during the course of the
|
|
106
|
+
test. The method must have previously been stubbed in order for messages to be
|
|
107
|
+
verified.
|
|
108
|
+
|
|
109
|
+
Stubbing and verifying messages received in this way implements the Test Spy
|
|
110
|
+
pattern.
|
|
111
|
+
|
|
112
|
+
```ruby
|
|
113
|
+
invitation = double('invitation', :accept => true)
|
|
114
|
+
|
|
115
|
+
user.accept_invitation(invitation)
|
|
116
|
+
|
|
117
|
+
expect(invitation).to have_received(:accept)
|
|
118
|
+
|
|
119
|
+
# You can also use other common message expectations. For example:
|
|
120
|
+
expect(invitation).to have_received(:accept).with(mailer)
|
|
121
|
+
expect(invitation).to have_received(:accept).twice
|
|
122
|
+
expect(invitation).to_not have_received(:accept).with(mailer)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Nomenclature
|
|
126
|
+
|
|
127
|
+
### Mock Objects and Test Stubs
|
|
128
|
+
|
|
129
|
+
The names Mock Object and Test Stub suggest specialized Test Doubles. i.e.
|
|
130
|
+
a Test Stub is a Test Double that only supports method stubs, and a Mock
|
|
131
|
+
Object is a Test Double that supports message expectations and method
|
|
132
|
+
stubs.
|
|
133
|
+
|
|
134
|
+
There is a lot of overlapping nomenclature here, and there are many
|
|
135
|
+
variations of these patterns (fakes, spies, etc). Keep in mind that most of
|
|
136
|
+
the time we're talking about method-level concepts that are variations of
|
|
137
|
+
method stubs and message expectations, and we're applying to them to _one_
|
|
138
|
+
generic kind of object: a Test Double.
|
|
139
|
+
|
|
140
|
+
### Test-Specific Extension
|
|
141
|
+
|
|
142
|
+
a.k.a. Partial Double, a Test-Specific Extension is an extension of a
|
|
143
|
+
real object in a system that is instrumented with test-double like
|
|
144
|
+
behaviour in the context of a test. This technique is very common in Ruby
|
|
145
|
+
because we often see class objects acting as global namespaces for methods.
|
|
146
|
+
For example, in Rails:
|
|
147
|
+
|
|
148
|
+
```ruby
|
|
149
|
+
person = double("person")
|
|
150
|
+
allow(Person).to receive(:find) { person }
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
In this case we're instrumenting Person to return the person object we've
|
|
154
|
+
defined whenever it receives the `find` message. We can also set a message
|
|
155
|
+
expectation so that the example fails if `find` is not called:
|
|
156
|
+
|
|
157
|
+
```ruby
|
|
158
|
+
person = double("person")
|
|
159
|
+
expect(Person).to receive(:find) { person }
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
RSpec replaces the method we're stubbing or mocking with its own
|
|
163
|
+
test-double-like method. At the end of the example, RSpec verifies any message
|
|
164
|
+
expectations, and then restores the original methods.
|
|
165
|
+
|
|
166
|
+
## Expecting Arguments
|
|
167
|
+
|
|
168
|
+
```ruby
|
|
169
|
+
expect(double).to receive(:msg).with(*args)
|
|
170
|
+
expect(double).to_not receive(:msg).with(*args)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
You can set multiple expectations for the same message if you need to:
|
|
174
|
+
|
|
175
|
+
```ruby
|
|
176
|
+
expect(double).to receive(:msg).with("A", 1, 3)
|
|
177
|
+
expect(double).to receive(:msg).with("B", 2, 4)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Argument Matchers
|
|
181
|
+
|
|
182
|
+
Arguments that are passed to `with` are compared with actual arguments
|
|
183
|
+
received using ==. In cases in which you want to specify things about the
|
|
184
|
+
arguments rather than the arguments themselves, you can use any of the
|
|
185
|
+
matchers that ship with rspec-expectations. They don't all make syntactic
|
|
186
|
+
sense (they were primarily designed for use with RSpec::Expectations), but
|
|
187
|
+
you are free to create your own custom RSpec::Matchers.
|
|
188
|
+
|
|
189
|
+
rspec-mocks also adds some keyword Symbols that you can use to
|
|
190
|
+
specify certain kinds of arguments:
|
|
191
|
+
|
|
192
|
+
```ruby
|
|
193
|
+
expect(double).to receive(:msg).with(no_args())
|
|
194
|
+
expect(double).to receive(:msg).with(any_args())
|
|
195
|
+
expect(double).to receive(:msg).with(1, kind_of(Numeric), "b") #2nd argument can be any kind of Numeric
|
|
196
|
+
expect(double).to receive(:msg).with(1, boolean(), "b") #2nd argument can be true or false
|
|
197
|
+
expect(double).to receive(:msg).with(1, /abc/, "b") #2nd argument can be any String matching the submitted Regexp
|
|
198
|
+
expect(double).to receive(:msg).with(1, anything(), "b") #2nd argument can be anything at all
|
|
199
|
+
expect(double).to receive(:msg).with(1, duck_type(:abs, :div), "b")
|
|
200
|
+
#2nd argument can be object that responds to #abs and #div
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Receive Counts
|
|
204
|
+
|
|
205
|
+
```ruby
|
|
206
|
+
expect(double).to receive(:msg).once
|
|
207
|
+
expect(double).to receive(:msg).twice
|
|
208
|
+
expect(double).to receive(:msg).exactly(n).times
|
|
209
|
+
expect(double).to receive(:msg).at_least(:once)
|
|
210
|
+
expect(double).to receive(:msg).at_least(:twice)
|
|
211
|
+
expect(double).to receive(:msg).at_least(n).times
|
|
212
|
+
expect(double).to receive(:msg).at_most(:once)
|
|
213
|
+
expect(double).to receive(:msg).at_most(:twice)
|
|
214
|
+
expect(double).to receive(:msg).at_most(n).times
|
|
215
|
+
expect(double).to receive(:msg).any_number_of_times
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Ordering
|
|
219
|
+
|
|
220
|
+
```ruby
|
|
221
|
+
expect(double).to receive(:msg).ordered
|
|
222
|
+
expect(double).to receive(:other_msg).ordered
|
|
223
|
+
# This will fail if the messages are received out of order
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
This can include the same message with different arguments:
|
|
227
|
+
|
|
228
|
+
```ruby
|
|
229
|
+
expect(double).to receive(:msg).with("A", 1, 3).ordered
|
|
230
|
+
expect(double).to receive(:msg).with("B", 2, 4).ordered
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Setting Responses
|
|
234
|
+
|
|
235
|
+
Whether you are setting a message expectation or a method stub, you can
|
|
236
|
+
tell the object precisely how to respond. The most generic way is to pass
|
|
237
|
+
a block to `receive`:
|
|
238
|
+
|
|
239
|
+
```ruby
|
|
240
|
+
expect(double).to receive(:msg) { value }
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
When the double receives the `msg` message, it evaluates the block and returns
|
|
244
|
+
the result.
|
|
245
|
+
|
|
246
|
+
```ruby
|
|
247
|
+
expect(double).to receive(:msg).and_return(value)
|
|
248
|
+
expect(double).to receive(:msg).exactly(3).times.and_return(value1, value2, value3)
|
|
249
|
+
# returns value1 the first time, value2 the second, etc
|
|
250
|
+
expect(double).to receive(:msg).and_raise(error)
|
|
251
|
+
# error can be an instantiated object or a class
|
|
252
|
+
# if it is a class, it must be instantiable with no args
|
|
253
|
+
expect(double).to receive(:msg).and_throw(:msg)
|
|
254
|
+
expect(double).to receive(:msg).and_yield(values, to, yield)
|
|
255
|
+
expect(double).to receive(:msg).and_yield(values, to, yield).and_yield(some, other, values, this, time)
|
|
256
|
+
# for methods that yield to a block multiple times
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Any of these responses can be applied to a stub as well
|
|
260
|
+
|
|
261
|
+
```ruby
|
|
262
|
+
allow(double).to receive(:msg).and_return(value)
|
|
263
|
+
allow(double).to receive(:msg).and_return(value1, value2, value3)
|
|
264
|
+
allow(double).to receive(:msg).and_raise(error)
|
|
265
|
+
allow(double).to receive(:msg).and_throw(:msg)
|
|
266
|
+
allow(double).to receive(:msg).and_yield(values, to, yield)
|
|
267
|
+
allow(double).to receive(:msg).and_yield(values, to, yield).and_yield(some, other, values, this, time)
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## Arbitrary Handling
|
|
271
|
+
|
|
272
|
+
Once in a while you'll find that the available expectations don't solve the
|
|
273
|
+
particular problem you are trying to solve. Imagine that you expect the message
|
|
274
|
+
to come with an Array argument that has a specific length, but you don't care
|
|
275
|
+
what is in it. You could do this:
|
|
276
|
+
|
|
277
|
+
```ruby
|
|
278
|
+
expect(double).to receive(:msg) do |arg|
|
|
279
|
+
expect(arg.size).to eq 7
|
|
280
|
+
end
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
If the method being stubbed itself takes a block, and you need to yield to it
|
|
284
|
+
in some special way, you can use this:
|
|
285
|
+
|
|
286
|
+
```ruby
|
|
287
|
+
expect(double).to receive(:msg) do |&arg|
|
|
288
|
+
begin
|
|
289
|
+
arg.call
|
|
290
|
+
ensure
|
|
291
|
+
# cleanup
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
## Delegating to the Original Implementation
|
|
297
|
+
|
|
298
|
+
When working with a partial mock object, you may occasionally
|
|
299
|
+
want to set a message expecation without interfering with how
|
|
300
|
+
the object responds to the message. You can use `and_call_original`
|
|
301
|
+
to achieve this:
|
|
302
|
+
|
|
303
|
+
```ruby
|
|
304
|
+
expect(Person).to receive(:find).and_call_original
|
|
305
|
+
Person.find # => executes the original find method and returns the result
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
## Combining Expectation Details
|
|
309
|
+
|
|
310
|
+
Combining the message name with specific arguments, receive counts and responses
|
|
311
|
+
you can get quite a bit of detail in your expectations:
|
|
312
|
+
|
|
313
|
+
```ruby
|
|
314
|
+
expect(double).to receive(:<<).with("illegal value").once.and_raise(ArgumentError)
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
While this is a good thing when you really need it, you probably don't really
|
|
318
|
+
need it! Take care to specify only the things that matter to the behavior of
|
|
319
|
+
your code.
|
|
320
|
+
|
|
321
|
+
## Stubbing and Hiding Constants
|
|
322
|
+
|
|
323
|
+
See the [mutating constants
|
|
324
|
+
README](https://github.com/rspec/rspec-mocks/blob/master/features/mutating_constants/README.md)
|
|
325
|
+
for info on this feature.
|
|
326
|
+
|
|
327
|
+
## Use `before(:example)`, not `before(:context)`
|
|
328
|
+
|
|
329
|
+
Stubs in `before(:context)` are not supported. The reason is that all stubs and mocks get cleared out after each example, so any stub that is set in `before(:context)` would work in the first example that happens to run in that group, but not for any others.
|
|
330
|
+
|
|
331
|
+
Instead of `before(:context)`, use `before(:example)`.
|
|
332
|
+
|
|
333
|
+
## Settings mocks or stubs on any instance of a class
|
|
334
|
+
|
|
335
|
+
rspec-mocks provides two methods, `allow_any_instance_of` and
|
|
336
|
+
`expect_any_instance_of`, that will allow you to stub or mock any instance
|
|
337
|
+
of a class. They are used in place of `allow` or `expect`:
|
|
338
|
+
|
|
339
|
+
```ruby
|
|
340
|
+
allow_any_instance_of(Widget).to receive(:name).and_return("Wibble")
|
|
341
|
+
expect_any_instance_of(Widget).to receive(:name).and_return("Wobble")
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
These methods add the appropriate stub or expectation to all instances of
|
|
345
|
+
`Widget`.
|
|
346
|
+
|
|
347
|
+
This feature is sometimes useful when working with legacy code, though in
|
|
348
|
+
general we discourage its use for a number of reasons:
|
|
349
|
+
|
|
350
|
+
* The `rspec-mocks` API is designed for individual object instances, but this
|
|
351
|
+
feature operates on entire classes of objects. As a result there are some
|
|
352
|
+
sematically confusing edge cases. For example in
|
|
353
|
+
`expect_any_instance_of(Widget).to receive(:name).twice` it isn't clear
|
|
354
|
+
whether each specific instance is expected to receive `name` twice, or if two
|
|
355
|
+
receives total are expected. (It's the former.)
|
|
356
|
+
* Using this feature is often a design smell. It may be
|
|
357
|
+
that your test is trying to do too much or that the object under test is too
|
|
358
|
+
complex.
|
|
359
|
+
* It is the most complicated feature of `rspec-mocks`, and has historically
|
|
360
|
+
received the most bug reports. (None of the core team actively use it,
|
|
361
|
+
which doesn't help.)
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
## Further Reading
|
|
365
|
+
|
|
366
|
+
There are many different viewpoints about the meaning of mocks and stubs. If
|
|
367
|
+
you are interested in learning more, here is some recommended reading:
|
|
368
|
+
|
|
369
|
+
* Mock Objects: http://www.mockobjects.com/
|
|
370
|
+
* Endo-Testing: http://stalatest.googlecode.com/svn/trunk/Literatur/mockobjects.pdf
|
|
371
|
+
* Mock Roles, Not Objects: http://jmock.org/oopsla2004.pdf
|
|
372
|
+
* Test Double: http://www.martinfowler.com/bliki/TestDouble.html
|
|
373
|
+
* Test Double Patterns: http://xunitpatterns.com/Test%20Double%20Patterns.html
|
|
374
|
+
* Mocks aren't stubs: http://www.martinfowler.com/articles/mocksArentStubs.html
|
|
375
|
+
|
|
376
|
+
## Also see
|
|
377
|
+
|
|
378
|
+
* [http://github.com/rspec/rspec](http://github.com/rspec/rspec)
|
|
379
|
+
* [http://github.com/rspec/rspec-core](http://github.com/rspec/rspec-core)
|
|
380
|
+
* [http://github.com/rspec/rspec-expectations](http://github.com/rspec/rspec-expectations)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
### 3.0.2 / 2014-06-20
|
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.0.1...v3.0.2)
|
|
3
|
+
|
|
4
|
+
* Revert `BlockSignature` change from 3.0.1 because of a ruby bug that
|
|
5
|
+
caused it to change the block's behavior (https://bugs.ruby-lang.org/issues/9967).
|
|
6
|
+
(Myron Marston, rspec-mocks#721)
|
|
7
|
+
|
|
8
|
+
### 3.0.1 / 2014-06-19
|
|
9
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.0.0...v3.0.1)
|
|
10
|
+
|
|
11
|
+
* Fix `BlockSignature` so that it correctly differentiates between
|
|
12
|
+
required and optional block args. (Myron Marston, rspec-mocks#714)
|
|
13
|
+
|
|
14
|
+
### 3.0.0 / 2014-06-01
|
|
15
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.0.0.rc1...v3.0.0)
|
|
16
|
+
|
|
17
|
+
### 3.0.0.rc1 / 2014-05-18
|
|
18
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.0.0.beta2...v3.0.0.rc1)
|
|
19
|
+
|
|
20
|
+
### 3.0.0.beta2 / 2014-02-17
|
|
21
|
+
[Full Changelog](http://github.com/rspec/rspec-support/compare/v3.0.0.beta1...v3.0.0.beta2)
|
|
22
|
+
|
|
23
|
+
Bug Fixes:
|
|
24
|
+
|
|
25
|
+
* Issue message when :replacement is passed to `RSpec.warn_with`. (Jon Rowe)
|
|
26
|
+
|
|
27
|
+
### 3.0.0.beta1 / 2013-11-07
|
|
28
|
+
[Full Changelog](https://github.com/rspec/rspec-support/compare/0dc12d1bdbbacc757a9989f8c09cd08ef3a4837e...v3.0.0.beta1)
|
|
29
|
+
|
|
30
|
+
Initial release.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2013 David Chelimsky, Myron Marston, Jon Rowe, Sam Phippen, Xavier Shay, Bradley Schaefer
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# RSpec::Support
|
|
2
|
+
|
|
3
|
+
`RSpec::Support` provides common functionality to `RSpec::Core`,
|
|
4
|
+
`RSpec::Expectations` and `RSpec::Mocks`. It is considered
|
|
5
|
+
suitable for internal use only at this time.
|
|
6
|
+
|
|
7
|
+
## Installation / Usage
|
|
8
|
+
|
|
9
|
+
Install one or more of the `RSpec` gems.
|
|
10
|
+
|
|
11
|
+
## Contributing
|
|
12
|
+
|
|
13
|
+
1. Fork it
|
|
14
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
15
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
16
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
|
17
|
+
5. Create new Pull Request
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
# stub: diff-lcs 1.2.5 ruby lib
|
|
3
|
+
|
|
4
|
+
Gem::Specification.new do |s|
|
|
5
|
+
s.name = "diff-lcs"
|
|
6
|
+
s.version = "1.2.5"
|
|
7
|
+
|
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
9
|
+
s.require_paths = ["lib"]
|
|
10
|
+
s.authors = ["Austin Ziegler"]
|
|
11
|
+
s.cert_chain = ["-----BEGIN CERTIFICATE-----\nMIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZhdXN0\naW4xGTAXBgoJkiaJk/IsZAEZFglydWJ5Zm9yZ2UxEzARBgoJkiaJk/IsZAEZFgNv\ncmcwHhcNMTMwMjA0MDMzMzI3WhcNMTQwMjA0MDMzMzI3WjBBMQ8wDQYDVQQDDAZh\ndXN0aW4xGTAXBgoJkiaJk/IsZAEZFglydWJ5Zm9yZ2UxEzARBgoJkiaJk/IsZAEZ\nFgNvcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2mPNf4L37GhKI\nSPCYsvYWXA2/R9u5+pyUnbJ2R1o2CiRq2ZA/AIzY6N3hGnsgoWnh5RzvgTN1Lt08\nDNIrsIG2VDYk/JVt6f9J6zZ8EQHbznWa3cWYoCFaaICdk7jV1n/42hg70jEDYXl9\ngDOl0k6JmyF/rtfFu/OIkFGWeFYIuFHvRuLyUbw66+QDTOzKb3t8o55Ihgy1GVwT\ni6pkDs8LhZWXdOD+921l2Z1NZGZa9KNbJIg6vtgYKU98jQ5qr9iY3ikBAspHrFas\nK6USvGgAg8fCD5YiotBEvCBMYtfqmfrhpdU2p+gvTgeLW1Kaevwqd7ngQmFUrFG1\neUJSURv5AgMBAAGjOTA3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFAtJKMp6YYNqlgR3\n9TiZLWqvLagSMAsGA1UdDwQEAwIEsDANBgkqhkiG9w0BAQUFAAOCAQEApTPkvDm8\n7gJlUT4FfumXPvtuqP67LxUtGE8syvR0A4As+0P/wylLJFUOsGTTdZYtThhxCSJG\n+7KG2FfIcH4Zz2d97arZGAzBoi8iPht2/UtSl1fCcUI5vmJa1MiXZT2oqdW7Wydq\nrAZcBPlrYYuiwtGI0yqIOgBfXSZCWWsJsuyTKELep6mCLgz0YZUfmvKr8W/Ab3ax\nDuLzH92LSRjZJyjyAUpw/Vc2rM4giiP5jtByrb1Y1dGnQhHTMHf1GfucWm7Nw/V9\ntwEPVw8+0f88JQucxOTmTF1NbLFpiRwQUZ1zoZbNg2e7mShc/eexnVLWKFKxRoP6\nKPj3WoD+spB8fA==\n-----END CERTIFICATE-----\n"]
|
|
12
|
+
s.date = "2013-11-08"
|
|
13
|
+
s.description = "Diff::LCS computes the difference between two Enumerable sequences using the\nMcIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities\nto create a simple HTML diff output format and a standard diff-like tool.\n\nThis is release 1.2.4, fixing a bug introduced after diff-lcs 1.1.3 that did\nnot properly prune common sequences at the beginning of a comparison set.\nThanks to Paul Kunysch for fixing this issue.\n\nCoincident with the release of diff-lcs 1.2.3, we reported an issue with\nRubinius in 1.9 mode\n({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]).\nWe are happy to report that this issue has been resolved."
|
|
14
|
+
s.email = ["austin@rubyforge.org"]
|
|
15
|
+
s.executables = ["htmldiff", "ldiff"]
|
|
16
|
+
s.extra_rdoc_files = ["Contributing.rdoc", "History.rdoc", "License.rdoc", "Manifest.txt", "README.rdoc", "docs/COPYING.txt", "docs/artistic.txt"]
|
|
17
|
+
s.files = ["Contributing.rdoc", "History.rdoc", "License.rdoc", "Manifest.txt", "README.rdoc", "bin/htmldiff", "bin/ldiff", "docs/COPYING.txt", "docs/artistic.txt"]
|
|
18
|
+
s.homepage = "http://diff-lcs.rubyforge.org/"
|
|
19
|
+
s.licenses = ["MIT", "Perl Artistic v2", "GNU GPL v2"]
|
|
20
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
|
21
|
+
s.rubyforge_project = "diff-lcs"
|
|
22
|
+
s.rubygems_version = "2.2.2"
|
|
23
|
+
s.summary = "Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm"
|
|
24
|
+
|
|
25
|
+
s.installed_by_version = "2.2.2" if s.respond_to? :installed_by_version
|
|
26
|
+
|
|
27
|
+
if s.respond_to? :specification_version then
|
|
28
|
+
s.specification_version = 4
|
|
29
|
+
|
|
30
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
31
|
+
s.add_development_dependency(%q<rubyforge>, [">= 2.0.4"])
|
|
32
|
+
s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
|
|
33
|
+
s.add_development_dependency(%q<hoe-bundler>, ["~> 1.2"])
|
|
34
|
+
s.add_development_dependency(%q<hoe-doofus>, ["~> 1.0"])
|
|
35
|
+
s.add_development_dependency(%q<hoe-gemspec2>, ["~> 1.1"])
|
|
36
|
+
s.add_development_dependency(%q<hoe-git>, ["~> 1.5"])
|
|
37
|
+
s.add_development_dependency(%q<hoe-rubygems>, ["~> 1.0"])
|
|
38
|
+
s.add_development_dependency(%q<hoe-travis>, ["~> 1.2"])
|
|
39
|
+
s.add_development_dependency(%q<rake>, ["~> 10.0"])
|
|
40
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.0"])
|
|
41
|
+
s.add_development_dependency(%q<hoe>, ["~> 3.7"])
|
|
42
|
+
else
|
|
43
|
+
s.add_dependency(%q<rubyforge>, [">= 2.0.4"])
|
|
44
|
+
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
|
45
|
+
s.add_dependency(%q<hoe-bundler>, ["~> 1.2"])
|
|
46
|
+
s.add_dependency(%q<hoe-doofus>, ["~> 1.0"])
|
|
47
|
+
s.add_dependency(%q<hoe-gemspec2>, ["~> 1.1"])
|
|
48
|
+
s.add_dependency(%q<hoe-git>, ["~> 1.5"])
|
|
49
|
+
s.add_dependency(%q<hoe-rubygems>, ["~> 1.0"])
|
|
50
|
+
s.add_dependency(%q<hoe-travis>, ["~> 1.2"])
|
|
51
|
+
s.add_dependency(%q<rake>, ["~> 10.0"])
|
|
52
|
+
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
|
53
|
+
s.add_dependency(%q<hoe>, ["~> 3.7"])
|
|
54
|
+
end
|
|
55
|
+
else
|
|
56
|
+
s.add_dependency(%q<rubyforge>, [">= 2.0.4"])
|
|
57
|
+
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
|
58
|
+
s.add_dependency(%q<hoe-bundler>, ["~> 1.2"])
|
|
59
|
+
s.add_dependency(%q<hoe-doofus>, ["~> 1.0"])
|
|
60
|
+
s.add_dependency(%q<hoe-gemspec2>, ["~> 1.1"])
|
|
61
|
+
s.add_dependency(%q<hoe-git>, ["~> 1.5"])
|
|
62
|
+
s.add_dependency(%q<hoe-rubygems>, ["~> 1.0"])
|
|
63
|
+
s.add_dependency(%q<hoe-travis>, ["~> 1.2"])
|
|
64
|
+
s.add_dependency(%q<rake>, ["~> 10.0"])
|
|
65
|
+
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
|
66
|
+
s.add_dependency(%q<hoe>, ["~> 3.7"])
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
# stub: rspec 3.0.0 ruby lib
|
|
3
|
+
|
|
4
|
+
Gem::Specification.new do |s|
|
|
5
|
+
s.name = "rspec"
|
|
6
|
+
s.version = "3.0.0"
|
|
7
|
+
|
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
9
|
+
s.require_paths = ["lib"]
|
|
10
|
+
s.authors = ["Steven Baker", "David Chelimsky", "Myron Marston"]
|
|
11
|
+
s.cert_chain = ["-----BEGIN CERTIFICATE-----\nMIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMRIwEAYDVQQDDAlyc3Bl\nYy1kZXYxGzAZBgoJkiaJk/IsZAEZFgtnb29nbGVnb3VwczETMBEGCgmSJomT8ixk\nARkWA2NvbTAeFw0xMzExMDcxOTQyNTlaFw0xNDExMDcxOTQyNTlaMEYxEjAQBgNV\nBAMMCXJzcGVjLWRldjEbMBkGCgmSJomT8ixkARkWC2dvb2dsZWdvdXBzMRMwEQYK\nCZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nnhCeZouDLXWO55no+EdZNCtjXjfJQ1X9TbPcvBDD29OypIUce2h/VdKXB2gI7ZHs\nF5NkPggslTErGFmWAtIiur7u943RVqHOsyoIsy065F9fCtrykkA+22elvTDha4Iz\nRUCvuhQ3klatYk4jF+cGt1jNONNVdLOiy0bMynvcM7hoVQ2AomwGs+cEOWQ/4dkD\nJcNV3qfzF5QBcTD2372XNM53b25nYVQSX2KH5FF7BhlKyov33bOm2gA9M+mWIujW\nqgkyxVlfrlE+ZBgV3wXn1Cojg1LpTq35yOArgwioyrwwlZZJR9joN9s/nDklfr5A\n+dyETjFc6cmEPWZrt2cJBQIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD\nAgSwMB0GA1UdDgQWBBSW+WD7hn1swJ1A7i8tbuFeuNCJCjAkBgNVHREEHTAbgRly\nc3BlYy1kZXZAZ29vZ2xlZ291cHMuY29tMCQGA1UdEgQdMBuBGXJzcGVjLWRldkBn\nb29nbGVnb3Vwcy5jb20wDQYJKoZIhvcNAQEFBQADggEBAH27jAZ8sD7vnXupj6Y+\nBaBdfHtCkFaslLJ0aKuMDIVXwYuKfqoW15cZPDLmSIEBuQFM3lw6d/hEEL4Uo2jZ\nFvtmH5OxifPDzFyUtCL4yp6qgNe/Xf6sDsRg6FmKcpgqCwNOmsViaf0LPSUH/GYQ\n3Teoz8QCaDbD7AKsffT7eDrnbHnKweO1XdemRJC98u/yYxnGzMSWKEsn09etBlZ9\n7H67k5Z3uf6cfLZgToWL6zShzZY3Nun5r73YsNf2/QZOe4UZe4vfGvn6baw53ys9\n1yHC1AcSYpvi2dAbOiHT5iQF+krm4wse8KctXgTNnjMsHEoGKulJS2/sZl90jcCz\nmuA=\n-----END CERTIFICATE-----\n"]
|
|
12
|
+
s.date = "2014-06-02"
|
|
13
|
+
s.description = "BDD for Ruby"
|
|
14
|
+
s.email = "rspec@googlegroups.com"
|
|
15
|
+
s.extra_rdoc_files = ["README.md"]
|
|
16
|
+
s.files = ["README.md"]
|
|
17
|
+
s.homepage = "http://github.com/rspec"
|
|
18
|
+
s.licenses = ["MIT"]
|
|
19
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
20
|
+
s.rubyforge_project = "rspec"
|
|
21
|
+
s.rubygems_version = "2.2.2"
|
|
22
|
+
s.summary = "rspec-3.0.0"
|
|
23
|
+
|
|
24
|
+
s.installed_by_version = "2.2.2" if s.respond_to? :installed_by_version
|
|
25
|
+
|
|
26
|
+
if s.respond_to? :specification_version then
|
|
27
|
+
s.specification_version = 4
|
|
28
|
+
|
|
29
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
30
|
+
s.add_runtime_dependency(%q<rspec-core>, ["~> 3.0.0"])
|
|
31
|
+
s.add_runtime_dependency(%q<rspec-expectations>, ["~> 3.0.0"])
|
|
32
|
+
s.add_runtime_dependency(%q<rspec-mocks>, ["~> 3.0.0"])
|
|
33
|
+
else
|
|
34
|
+
s.add_dependency(%q<rspec-core>, ["~> 3.0.0"])
|
|
35
|
+
s.add_dependency(%q<rspec-expectations>, ["~> 3.0.0"])
|
|
36
|
+
s.add_dependency(%q<rspec-mocks>, ["~> 3.0.0"])
|
|
37
|
+
end
|
|
38
|
+
else
|
|
39
|
+
s.add_dependency(%q<rspec-core>, ["~> 3.0.0"])
|
|
40
|
+
s.add_dependency(%q<rspec-expectations>, ["~> 3.0.0"])
|
|
41
|
+
s.add_dependency(%q<rspec-mocks>, ["~> 3.0.0"])
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
# stub: rspec-core 3.0.2 ruby lib
|
|
3
|
+
|
|
4
|
+
Gem::Specification.new do |s|
|
|
5
|
+
s.name = "rspec-core"
|
|
6
|
+
s.version = "3.0.2"
|
|
7
|
+
|
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
9
|
+
s.require_paths = ["lib"]
|
|
10
|
+
s.authors = ["Steven Baker", "David Chelimsky", "Chad Humphries", "Myron Marston"]
|
|
11
|
+
s.bindir = "exe"
|
|
12
|
+
s.cert_chain = ["-----BEGIN CERTIFICATE-----\nMIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMRIwEAYDVQQDDAlyc3Bl\nYy1kZXYxGzAZBgoJkiaJk/IsZAEZFgtnb29nbGVnb3VwczETMBEGCgmSJomT8ixk\nARkWA2NvbTAeFw0xMzExMDcxOTQyNTlaFw0xNDExMDcxOTQyNTlaMEYxEjAQBgNV\nBAMMCXJzcGVjLWRldjEbMBkGCgmSJomT8ixkARkWC2dvb2dsZWdvdXBzMRMwEQYK\nCZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nnhCeZouDLXWO55no+EdZNCtjXjfJQ1X9TbPcvBDD29OypIUce2h/VdKXB2gI7ZHs\nF5NkPggslTErGFmWAtIiur7u943RVqHOsyoIsy065F9fCtrykkA+22elvTDha4Iz\nRUCvuhQ3klatYk4jF+cGt1jNONNVdLOiy0bMynvcM7hoVQ2AomwGs+cEOWQ/4dkD\nJcNV3qfzF5QBcTD2372XNM53b25nYVQSX2KH5FF7BhlKyov33bOm2gA9M+mWIujW\nqgkyxVlfrlE+ZBgV3wXn1Cojg1LpTq35yOArgwioyrwwlZZJR9joN9s/nDklfr5A\n+dyETjFc6cmEPWZrt2cJBQIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD\nAgSwMB0GA1UdDgQWBBSW+WD7hn1swJ1A7i8tbuFeuNCJCjAkBgNVHREEHTAbgRly\nc3BlYy1kZXZAZ29vZ2xlZ291cHMuY29tMCQGA1UdEgQdMBuBGXJzcGVjLWRldkBn\nb29nbGVnb3Vwcy5jb20wDQYJKoZIhvcNAQEFBQADggEBAH27jAZ8sD7vnXupj6Y+\nBaBdfHtCkFaslLJ0aKuMDIVXwYuKfqoW15cZPDLmSIEBuQFM3lw6d/hEEL4Uo2jZ\nFvtmH5OxifPDzFyUtCL4yp6qgNe/Xf6sDsRg6FmKcpgqCwNOmsViaf0LPSUH/GYQ\n3Teoz8QCaDbD7AKsffT7eDrnbHnKweO1XdemRJC98u/yYxnGzMSWKEsn09etBlZ9\n7H67k5Z3uf6cfLZgToWL6zShzZY3Nun5r73YsNf2/QZOe4UZe4vfGvn6baw53ys9\n1yHC1AcSYpvi2dAbOiHT5iQF+krm4wse8KctXgTNnjMsHEoGKulJS2/sZl90jcCz\nmuA=\n-----END CERTIFICATE-----\n"]
|
|
13
|
+
s.date = "2014-06-20"
|
|
14
|
+
s.description = "BDD for Ruby. RSpec runner and example groups."
|
|
15
|
+
s.email = "rspec@googlegroups.com"
|
|
16
|
+
s.executables = ["rspec"]
|
|
17
|
+
s.files = ["exe/rspec"]
|
|
18
|
+
s.homepage = "http://github.com/rspec/rspec-core"
|
|
19
|
+
s.licenses = ["MIT"]
|
|
20
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
21
|
+
s.required_ruby_version = Gem::Requirement.new(">= 1.8.7")
|
|
22
|
+
s.rubyforge_project = "rspec"
|
|
23
|
+
s.rubygems_version = "2.2.2"
|
|
24
|
+
s.summary = "rspec-core-3.0.2"
|
|
25
|
+
|
|
26
|
+
s.installed_by_version = "2.2.2" if s.respond_to? :installed_by_version
|
|
27
|
+
|
|
28
|
+
if s.respond_to? :specification_version then
|
|
29
|
+
s.specification_version = 4
|
|
30
|
+
|
|
31
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
32
|
+
s.add_runtime_dependency(%q<rspec-support>, ["~> 3.0.0"])
|
|
33
|
+
s.add_development_dependency(%q<rake>, ["~> 10.0.0"])
|
|
34
|
+
s.add_development_dependency(%q<cucumber>, ["~> 1.3"])
|
|
35
|
+
s.add_development_dependency(%q<minitest>, ["~> 5.3"])
|
|
36
|
+
s.add_development_dependency(%q<aruba>, ["~> 0.5"])
|
|
37
|
+
s.add_development_dependency(%q<nokogiri>, ["= 1.5.2"])
|
|
38
|
+
s.add_development_dependency(%q<coderay>, ["~> 1.0.9"])
|
|
39
|
+
s.add_development_dependency(%q<mocha>, ["~> 0.13.0"])
|
|
40
|
+
s.add_development_dependency(%q<rr>, ["~> 1.0.4"])
|
|
41
|
+
s.add_development_dependency(%q<flexmock>, ["~> 0.9.0"])
|
|
42
|
+
else
|
|
43
|
+
s.add_dependency(%q<rspec-support>, ["~> 3.0.0"])
|
|
44
|
+
s.add_dependency(%q<rake>, ["~> 10.0.0"])
|
|
45
|
+
s.add_dependency(%q<cucumber>, ["~> 1.3"])
|
|
46
|
+
s.add_dependency(%q<minitest>, ["~> 5.3"])
|
|
47
|
+
s.add_dependency(%q<aruba>, ["~> 0.5"])
|
|
48
|
+
s.add_dependency(%q<nokogiri>, ["= 1.5.2"])
|
|
49
|
+
s.add_dependency(%q<coderay>, ["~> 1.0.9"])
|
|
50
|
+
s.add_dependency(%q<mocha>, ["~> 0.13.0"])
|
|
51
|
+
s.add_dependency(%q<rr>, ["~> 1.0.4"])
|
|
52
|
+
s.add_dependency(%q<flexmock>, ["~> 0.9.0"])
|
|
53
|
+
end
|
|
54
|
+
else
|
|
55
|
+
s.add_dependency(%q<rspec-support>, ["~> 3.0.0"])
|
|
56
|
+
s.add_dependency(%q<rake>, ["~> 10.0.0"])
|
|
57
|
+
s.add_dependency(%q<cucumber>, ["~> 1.3"])
|
|
58
|
+
s.add_dependency(%q<minitest>, ["~> 5.3"])
|
|
59
|
+
s.add_dependency(%q<aruba>, ["~> 0.5"])
|
|
60
|
+
s.add_dependency(%q<nokogiri>, ["= 1.5.2"])
|
|
61
|
+
s.add_dependency(%q<coderay>, ["~> 1.0.9"])
|
|
62
|
+
s.add_dependency(%q<mocha>, ["~> 0.13.0"])
|
|
63
|
+
s.add_dependency(%q<rr>, ["~> 1.0.4"])
|
|
64
|
+
s.add_dependency(%q<flexmock>, ["~> 0.9.0"])
|
|
65
|
+
end
|
|
66
|
+
end
|