slimkeyfy 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +34 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +6 -0
  5. data/Gemfile.lock +22 -0
  6. data/LICENSE +21 -0
  7. data/README.md +172 -0
  8. data/bin/slimkeyfy +5 -0
  9. data/lib/.DS_Store +0 -0
  10. data/lib/slimkeyfy/console/command_line.rb +90 -0
  11. data/lib/slimkeyfy/console/io_action.rb +30 -0
  12. data/lib/slimkeyfy/console/printer.rb +50 -0
  13. data/lib/slimkeyfy/console/translate.rb +101 -0
  14. data/lib/slimkeyfy/console.rb +8 -0
  15. data/lib/slimkeyfy/slimutils/file_utils.rb +61 -0
  16. data/lib/slimkeyfy/slimutils/hash_merging.rb +84 -0
  17. data/lib/slimkeyfy/slimutils/key_generator.rb +70 -0
  18. data/lib/slimkeyfy/slimutils/yaml_processor.rb +56 -0
  19. data/lib/slimkeyfy/slimutils.rb +8 -0
  20. data/lib/slimkeyfy/transformer/base_transformer.rb +42 -0
  21. data/lib/slimkeyfy/transformer/controller_transformer.rb +20 -0
  22. data/lib/slimkeyfy/transformer/slim_transformer.rb +92 -0
  23. data/lib/slimkeyfy/transformer/whitespacer.rb +48 -0
  24. data/lib/slimkeyfy/transformer/word.rb +49 -0
  25. data/lib/slimkeyfy/transformer.rb +9 -0
  26. data/lib/slimkeyfy/version.rb +3 -0
  27. data/lib/slimkeyfy.rb +12 -0
  28. data/slimkeyfy.gemspec +21 -0
  29. data/vendor/bundle/bin/htmldiff +25 -0
  30. data/vendor/bundle/bin/ldiff +25 -0
  31. data/vendor/bundle/bin/rspec +23 -0
  32. data/vendor/bundle/build_info/diff-lcs-1.2.5.info +1 -0
  33. data/vendor/bundle/build_info/rspec-3.0.0.info +1 -0
  34. data/vendor/bundle/build_info/rspec-core-3.0.2.info +1 -0
  35. data/vendor/bundle/build_info/rspec-expectations-3.0.2.info +1 -0
  36. data/vendor/bundle/build_info/rspec-mocks-3.0.2.info +1 -0
  37. data/vendor/bundle/build_info/rspec-support-3.0.2.info +1 -0
  38. data/vendor/bundle/gems/diff-lcs-1.2.5/.autotest +3 -0
  39. data/vendor/bundle/gems/diff-lcs-1.2.5/.gemtest +0 -0
  40. data/vendor/bundle/gems/diff-lcs-1.2.5/.hoerc +2 -0
  41. data/vendor/bundle/gems/diff-lcs-1.2.5/.rspec +2 -0
  42. data/vendor/bundle/gems/diff-lcs-1.2.5/.travis.yml +22 -0
  43. data/vendor/bundle/gems/diff-lcs-1.2.5/Contributing.rdoc +64 -0
  44. data/vendor/bundle/gems/diff-lcs-1.2.5/Gemfile +20 -0
  45. data/vendor/bundle/gems/diff-lcs-1.2.5/History.rdoc +152 -0
  46. data/vendor/bundle/gems/diff-lcs-1.2.5/License.rdoc +39 -0
  47. data/vendor/bundle/gems/diff-lcs-1.2.5/Manifest.txt +38 -0
  48. data/vendor/bundle/gems/diff-lcs-1.2.5/README.rdoc +85 -0
  49. data/vendor/bundle/gems/diff-lcs-1.2.5/Rakefile +41 -0
  50. data/vendor/bundle/gems/diff-lcs-1.2.5/autotest/discover.rb +1 -0
  51. data/vendor/bundle/gems/diff-lcs-1.2.5/bin/htmldiff +32 -0
  52. data/vendor/bundle/gems/diff-lcs-1.2.5/bin/ldiff +6 -0
  53. data/vendor/bundle/gems/diff-lcs-1.2.5/docs/COPYING.txt +339 -0
  54. data/vendor/bundle/gems/diff-lcs-1.2.5/docs/artistic.txt +127 -0
  55. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/array.rb +7 -0
  56. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/block.rb +37 -0
  57. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/callbacks.rb +322 -0
  58. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/change.rb +177 -0
  59. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/htmldiff.rb +149 -0
  60. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/hunk.rb +276 -0
  61. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/internals.rb +301 -0
  62. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/ldiff.rb +195 -0
  63. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/string.rb +5 -0
  64. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs.rb +805 -0
  65. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff-lcs.rb +3 -0
  66. data/vendor/bundle/gems/rspec-3.0.0/License.txt +24 -0
  67. data/vendor/bundle/gems/rspec-3.0.0/README.md +47 -0
  68. data/vendor/bundle/gems/rspec-3.0.0/lib/rspec.rb +3 -0
  69. data/vendor/bundle/gems/rspec-core-3.0.2/.document +5 -0
  70. data/vendor/bundle/gems/rspec-core-3.0.2/.yardopts +7 -0
  71. data/vendor/bundle/gems/rspec-core-3.0.2/Changelog.md +1466 -0
  72. data/vendor/bundle/gems/rspec-core-3.0.2/License.txt +25 -0
  73. data/vendor/bundle/gems/rspec-core-3.0.2/README.md +243 -0
  74. data/vendor/bundle/gems/rspec-core-3.0.2/exe/rspec +4 -0
  75. data/vendor/bundle/gems/rspec-expectations-3.0.2/.document +5 -0
  76. data/vendor/bundle/gems/rspec-expectations-3.0.2/.yardopts +6 -0
  77. data/vendor/bundle/gems/rspec-expectations-3.0.2/Changelog.md +749 -0
  78. data/vendor/bundle/gems/rspec-expectations-3.0.2/License.txt +24 -0
  79. data/vendor/bundle/gems/rspec-expectations-3.0.2/README.md +278 -0
  80. data/vendor/bundle/gems/rspec-mocks-3.0.2/.document +5 -0
  81. data/vendor/bundle/gems/rspec-mocks-3.0.2/.yardopts +6 -0
  82. data/vendor/bundle/gems/rspec-mocks-3.0.2/Changelog.md +733 -0
  83. data/vendor/bundle/gems/rspec-mocks-3.0.2/License.txt +24 -0
  84. data/vendor/bundle/gems/rspec-mocks-3.0.2/README.md +380 -0
  85. data/vendor/bundle/gems/rspec-support-3.0.2/Changelog.md +30 -0
  86. data/vendor/bundle/gems/rspec-support-3.0.2/LICENSE.txt +22 -0
  87. data/vendor/bundle/gems/rspec-support-3.0.2/README.md +17 -0
  88. data/vendor/bundle/specifications/diff-lcs-1.2.5.gemspec +68 -0
  89. data/vendor/bundle/specifications/rspec-3.0.0.gemspec +43 -0
  90. data/vendor/bundle/specifications/rspec-core-3.0.2.gemspec +66 -0
  91. data/vendor/bundle/specifications/rspec-expectations-3.0.2.gemspec +51 -0
  92. data/vendor/bundle/specifications/rspec-mocks-3.0.2.gemspec +48 -0
  93. data/vendor/bundle/specifications/rspec-support-3.0.2.gemspec +42 -0
  94. 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 [![Build Status](https://secure.travis-ci.org/rspec/rspec-mocks.png?branch=master)](http://travis-ci.org/rspec/rspec-mocks) [![Code Climate](https://codeclimate.com/github/rspec/rspec-mocks.png)](https://codeclimate.com/github/rspec/rspec-mocks) [![Inline docs](http://inch-pages.github.io/github/rspec/rspec-mocks.png)](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