forked from rspec/rspec.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfile.Changelog.html
1529 lines (1529 loc) · 79.4 KB
/
file.Changelog.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>
File: Changelog
— Documentation by YARD 0.8.7.6
</title>
<link rel="stylesheet" href="/stylesheets/docs/style.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="/stylesheets/docs/common.css" type="text/css" charset="utf-8" />
<script type="text/javascript" charset="utf-8">
hasFrames = window.top.frames.main ? true : false;
relpath = '';
framesUrl = "frames.html#!file.Changelog.html";
</script>
<script type="text/javascript" charset="utf-8" src="/javascripts/docs/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="/javascripts/docs/app.js"></script>
</head>
<body>
<div id="header">
<div id="menu">
<a href="_index.html">Index</a> »
<span class="title">File: Changelog</span>
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="class_list.html">
Class List
</a>
<a class="full_list_link" id="method_list_link"
href="method_list.html">
Method List
</a>
<a class="full_list_link" id="file_list_link"
href="file_list.html">
File List
</a>
</div>
<div class="clear"></div>
</div>
<iframe id="search_frame"></iframe>
<div id="content"><div id='filecontents'><h3>3.0.5 Development</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.4...3-0-maintenance">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Change how we assign constant names to example group classes so that
it avoids a problem with <code>describe "Core"</code>. (Daniela Wellisz, #1679)</li>
<li>Handle rendering exceptions that have a different encoding than that
of their original source file. (Jon Rowe, #1681)</li>
<li>Allow access to message_lines without colour for failed examples even
when they're part of a shared example group. (tomykaira, #1689)</li>
</ul>
<h3>3.0.4 / 2014-08-14</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.3...v3.0.4">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix processing order of CLI options so that if <code>config.files_to_run</code>
is accessed from a file loaded by <code>--require</code>, <code>--pattern</code> is still
applied. (Myron Marston, #1652)</li>
<li>Fix <code>config.pattern=</code> so that it still takes affect even if
<code>config.files_to_run</code> has already been accessed. (Myron Marston, #1652)</li>
</ul>
<h3>3.0.3 / 2014-07-21</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.2...v3.0.3">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Properly convert both parts of a description into strings before
concatenation. (@nicklink483, #1636)</li>
<li>Exclude the working directory when figuring out folders to ignore.
(Jon Rowe, Myron Marston, #1616)</li>
<li>Allow <code>::RSpec::Core::Notifications::FailedExampleNotification#message_lines</code>
to be accessed without a colouriser. (@tomykaira, #1637)</li>
</ul>
<h3>3.0.2 / 2014-06-19</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.1...v3.0.2">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix regression in CLI option handling that prevented <code>--tag slow</code>
passed at the command line from overriding <code>--tag ~slow</code> in <code>.rspec</code>.
(Colin Jones, #1602)</li>
<li>Fix metadata <code>:example_group</code> deprecation warning so that it gets
issued at the call site of the configuration that specified it as
a filter rather than later when an example group is defined.
(Myron Marston, #1562)</li>
<li>Make the line that is printed when a shared example group fails indicating
where the concrete example group is white, separating it from the stack trace
that is produced for the failure. (Sam Phippen, Jon Rowe, #1606)</li>
</ul>
<h3>3.0.1 / 2014-06-12</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.0...v3.0.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix a couple ruby warnings caused by rspec-core when loaded.
(Prem Sichanugrist, #1584)</li>
<li>Example groups named <code>Config</code> will no longer cause a Ruby warning to be
issued. (Jimmy Cuadra, #1580)</li>
</ul>
<h3>3.0.0 / 2014-06-01</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.0.rc1...v3.0.0">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>BaseTextFormatter</code> so that it does not re-close a closed output
stream. (Myron Marston)</li>
<li>Fix regression in metadata that caused the metadata hash of a top-level
example group to have a <code>:parent_example_group</code> key even though it has
no parent example group. (Myron Marston)</li>
</ul>
<p>Enhancements:</p>
<ul>
<li>Alter the default <code>spec_helper.rb</code> to no longer recommend
<code>config.full_backtrace = true</code> see #1536 for discussion. (Jon Rowe)</li>
</ul>
<h3>3.0.0.rc1 / 2014-05-18</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.0.beta2...v3.0.0.rc1">Full Changelog</a></p>
<p>Breaking Changes for 3.0.0:</p>
<ul>
<li>Change <code>described_class</code> so that in a nested group like <code>describe
MyClass</code>, it returns <code>MyClass</code> rather than the outer group's described
class. (Myron Marston)</li>
<li>Refactor filter manager so that it no longer subclasses Hash and has a
tighter, more domain-specific interface. (Sergey Pchelincev)</li>
<li>Remove legacy colours definitions from <code>BaseTextFormatter</code>. (Jon Rowe)</li>
<li>Remove console color definitions from <code>BaseTextFormatter</code>. (Jon Rowe)</li>
<li>Restructure example group metadata so that the computed keys are
exposed directly off of the metadata hash rather than being on
a nested <code>:example_group</code> subhash. In addition, the parent example
group metadata is now available as <code>[:parent_example_group]</code> rather
than <code>[:example_group][:example_group]</code>. Deprecated access via the
old key structure is still provided. (Myron Marston)</li>
<li>Remove <code>:describes</code> metadata key. It duplicates <code>:described_class</code>
for no good reason. Deprecated access via <code>:describes</code> is still
provided. (Myron Marston)</li>
<li>Rename <code>:example_group_block</code> metadata key to <code>:block</code>.
(Myron Marston)</li>
<li>Remove deprecated <code>RSpec::Core::Example#options</code>. (Myron Marston)</li>
<li>Move <code>BaseTextFormatter#colorize_summary</code> to <code>SummaryNotification#colorize_with</code>
(Jon Rowe).</li>
<li><code>describe some_hash</code> treated <code>some_hash</code> as metadata in RSpec 2.x but
will treat it as the described object in RSpec 3.0. Metadata must
always come after the description args. (Myron Marston)</li>
<li>Remove deprecated <code>display_name</code> alias of <code>ExampleGroup.description</code>.
(Myron Marston)</li>
<li>Remove deprecated <code>describes</code> alias of <code>ExampleGroup.described_class</code>.
(Myron Marston)</li>
<li>Remove deprecated <code>RSpec::Core::ExampleGroup.alias_it_behaves_like_to</code>.
Use <code>RSpec::Core::Configuration#alias_it_behaves_like_to</code> instead.
(Myron Marston)</li>
<li>Remove deprecated <code>RSpec::Core::ExampleGroup.alias_example_to</code>.
Use <code>RSpec::Core::Configuration#alias_example_to</code> instead.
(Myron Marston)</li>
<li>Removed <code>focused</code> example alias and change example/group aliases
<code>fit</code>, <code>focus</code>, <code>fcontext</code> and <code>fdescribe</code> to no longer include
<code>:focused => true</code> metadata. They only contain <code>:focus => true</code>
metadata now. This means that you will need to filter them with
<code>filter_run :focus</code>, not <code>filter_run :focused</code>. (Myron Marston)</li>
<li>Remove <code>--line-number</code> filtering. It's semantically dubious since it's
a global filter (potentially applied to multiple files) but there's no
meaningful connection between the same line number in multiple files.
Instead use the <code>rspec path/to/spec.rb:23:46</code> form, which is terser
and makes more sense as it is scoped to a file. (Myron Marston)</li>
<li>Remove <code>--default_path</code> as an alias for <code>--default-path</code>. (Jon Rowe)</li>
<li>Remove deprecated <code>share_examples_for</code>. There's still
<code>shared_examples</code> and <code>shared_examples_for</code>. (Myron Marston)</li>
<li>Rename <code>RSpec::Core::Configuration#warnings</code> to
<code>RSpec::Core::Configuration#warnings?</code> since it's a boolean flag.
(Myron Marston)</li>
<li>RSpec's global state is no longer reset after a spec run. This gives
more flexibility to alternate runners to decide when and if they
want the state reset. Alternate runners are now responsible for
calling this (or doing a similar reset) if they are going to run
the spec suite multiple times in the same process. (Sam Phippen)</li>
<li>Merge <code>RSpec::Core::CommandLine</code> (never formally declared public)
into <code>RSpec::Core::Runner</code>. (Myron Marston)</li>
<li>Remove <code>color_enabled</code> as an alias of <code>color</code>. (Jon Rowe)</li>
<li>Remove <code>backtrace_cleaner</code> as an alias of <code>backtrace_formatter</code>. (Jon Rowe)</li>
<li>Remove <code>filename_pattern</code> as an alias of <code>pattern</code>. (Jon Rowe)</li>
<li>Extract support for legacy formatters to <code>rspec-legacy_formatters</code>. (Jon Rowe)</li>
<li><code>RSpec::Configuration#formatters</code> now returns a dup to prevent mutation. (Jon Rowe)</li>
<li>Replace <code>stdlib</code> as an available expectation framework with <code>test_unit</code> and
<code>minitest</code>. (Aaron Kromer)</li>
<li>Remove backtrace formatting helpers from <code>BaseTextFormatter</code>. (Jon Rowe)</li>
<li>Extract profiler support to <code>ProfileFormatter</code> and <code>ProfileNotification</code>.
Formatters should implement <code>dump_profile</code> if they wish to respond to <code>--profile</code>.
(Jon Rowe)</li>
<li>Extract remaining formatter state to reporter and notifications. Introduce
<code>ExamplesNotification</code> to share information about examples that was previously
held in <code>BaseFormatter</code>. (Jon Rowe)</li>
</ul>
<p>Enhancements:</p>
<ul>
<li>Add <code>config.default_formatter</code> attribute, which can be used to set a
formatter which will only be used if no other formatter is set
(e.g. via <code>--formatter</code>). (Myron Marston)</li>
<li>Support legacy colour definitions in <code>LegacyFormatterAdaptor</code>. (Jon Rowe)</li>
<li>Migrate <code>execution_result</code> (exposed by metadata) from a hash to a
first-class object with appropriate attributes. <code>status</code> is now
stored and returned as a symbol rather than a string. It retains
deprecated hash behavior for backwards compatibility. (Myron Marston)</li>
<li>Provide console code helper for formatters. (Jon Rowe)</li>
<li>Use raw ruby hashes for the metadata hashes rather than a subclass of
a hash. Computed metadata entries are now computed in advance rather
than being done lazily on first access. (Myron Marston)</li>
<li>Add <code>:block</code> metadata entry to the example metadata, bringing
parity with <code>:block</code> in the example group metadata. (Myron Marston)</li>
<li>Add <code>fspecify</code> and <code>fexample</code> as aliases of <code>specify</code> and <code>example</code>
with <code>:focus => true</code> metadata for parity with <code>fit</code>. (Myron Marston)</li>
<li>Add legacy support for <code>colorize_summary</code>. (Jon Rowe)</li>
<li>Restructure runner so it can be more easily customized in a subclass
for an alternate runner. (Ben Hoskings)</li>
<li>Document <code>RSpec::Core::ConfigurationOptions</code> as an officially
supported public API. (Myron Marston)</li>
<li>Add <code>--deprecation-out</code> CLI option which directs deprecation warnings
to the named file. (Myron Marston)</li>
<li>Minitest 5 compatability for <code>expect_with :stdlib</code> (now available as
<code>expect_with :minitest</code>). (Xavier Shay)</li>
<li>Reporter now notifies formatters of the load time of RSpec and your
specs via <code>StartNotification</code> and <code>SummaryNotification</code>. (Jon Rowe)</li>
<li>Add <code>disable_monkey_patching!</code> config option that disables all monkey
patching from whatever pieces of RSpec you use. (Alexey Fedorov)</li>
<li>Add <code>Pathname</code> support for setting all output streams. (Aaron Kromer)</li>
<li>Add <code>config.define_derived_metadata</code>, which can be used to apply
additional metadata to all groups or examples that match a given
filter. (Myron Marston)</li>
<li>Provide formatted and colorized backtraces via <code>FailedExampleNotification</code>
and send <code>PendingExampleFixedNotifications</code> when the error is due to a
passing spec you expect to fail. (Jon Rowe)</li>
<li>Add <code>dump_profile</code> to formatter API to allow formatters to implement
support for <code>--profile</code>. (Jon Rowe)</li>
<li>Allow colourising text via <code>ConsoleCodes</code> with RSpec 'states'
(e.g. <code>:success</code>, <code>:failure</code>) rather than direct colour codes. (Jon Rowe)</li>
<li>Expose <code>fully_formatted</code> methods off the formatter notification objects
that make it easy for a custom formatter to produce formatted output
like rspec-core's. (Myron Marston)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>spec_helper.rb</code> file generated by <code>rspec --init</code> so that the
recommended settings correctly use the documentation formatter
when running one file. (Myron Marston)</li>
<li>Fix ordering problem where descriptions were generated after
tearing down mocks, which resulted in unexpected exceptions.
(Bradley Schaefer, Aaron Kromer, Andrey Savchenko)</li>
<li>Allow a symbol to be used as an implicit subject (e.g. <code>describe
:foo</code>). (Myron Marston)</li>
<li>Prevent creating an isolated context (i.e. using <code>RSpec.describe</code>) when
already inside a context. There is no reason to do this, and it could
potentially cause unexpected bugs. (Xavier Shay)</li>
<li>Fix shared example group scoping so that when two shared example
groups share the same name at different levels of nested contexts,
the one in the nearest context is used. (Myron Marston)</li>
<li>Fix <code>--warnings</code> option so that it enables warnings immediately so
that it applies to files loaded by <code>--require</code>. (Myron Marston)</li>
<li>Issue a warning when you set <code>config.deprecation_stream</code> too late for
it to take effect because the reporter has already been setup. (Myron Marston)</li>
<li>Add the full <code>RSpec::Core::Example</code> interface to the argument yielded
to <code>around</code> hooks. (Myron Marston)</li>
<li>Line number always takes precendence when running specs with filters.
(Xavier Shay)</li>
<li>Ensure :if and :unless metadata filters are treated as a special case
and are always in-effect. (Bradley Schaefer)</li>
<li>Ensure the currently running installation of RSpec is used when
the rake task shells out to <code>rspec</code>, even if a newer version is also
installed. (Postmodern)</li>
<li>Using a legacy formatter as default no longer causes an infinite loop.
(Xavier Shay)</li>
</ul>
<h3>3.0.0.beta2 / 2014-02-17</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v3.0.0.beta1...v3.0.0.beta2">Full Changelog</a></p>
<p>Breaking Changes for 3.0.0:</p>
<ul>
<li>Make <code>mock_with</code> option more strict. Strings are no longer supported
(e.g. <code>mock_with "mocha"</code>) -- use a symbol instead. Also, unrecognized
values will now result in an error rather than falling back to the
null mocking adapter. If you want to use the null mocking adapter,
use <code>mock_with :nothing</code> (as has been documented for a long time).
(Myron Marston)</li>
<li>Remove support for overriding RSpec's built-in <code>:if</code> and <code>:unless</code>
filters. (Ashish Dixit)</li>
<li>Custom formatters are now required to call
<code>RSpec::Core::Formatters.register(formatter_class, *notifications)</code>
where <code>notifications</code> is the list of events the formatter wishes to
be notified about. Notifications are handled by methods matching the
names on formatters. This allows us to add or remove notifications
without breaking existing formatters. (Jon Rowe)</li>
<li>Change arguments passed to formatters. Rather than passing multiple
arguments (which limits are ability to add additional arguments as
doing so would break existing formatters), we now pass a notification
value object that exposes the same data via attributes. This will
allow us to add new bits of data to a notification event without
breaking existing formatters. (Jon Rowe)</li>
<li>Remove support for deprecated <code>:alias</code> option for
<code>RSpec.configuration.add_setting</code>. (Myron Marston)</li>
<li>Remove support for deprecated <code>RSpec.configuration.requires = [...]</code>.
(Myron Marston)</li>
<li>Remove support for deprecated <code>--formatter</code> CLI option. (Myron Marston)</li>
<li>Remove support for deprecated <code>--configure</code> CLI option. (Myron Marston)</li>
<li>Remove support for deprecated <code>RSpec::Core::RakeTask#spec_opts=</code>.
(Myron Marston)</li>
<li>An example group level <code>pending</code> block or <code>:pending</code> metadata now executes
the example and cause a failure if it passes, otherwise it will be pending if
it fails. The old "never run" behaviour is still used for <code>xexample</code>, <code>xit</code>,
and <code>xspecify</code>, or via a new <code>skip</code> method or <code>:skip</code> metadata option.
(Xavier Shay)</li>
<li>After calling <code>pending</code> inside an example, the remainder of the example will
now be run. If it passes a failure is raised, otherwise the example is marked
pending. The old "never run" behaviour is provided a by a new <code>skip</code> method.
(Xavier Shay)</li>
<li>Pending blocks inside an example have been removed as a feature with no
direct replacement. Use <code>skip</code> or <code>pending</code> without a block. (Xavier Shay)</li>
<li>Pending statement is no longer allowed in <code>before(:all)</code> hooks. Use <code>skip</code>
instead. (Xavier Shay)</li>
<li>Remove <code>show_failures_in_pending_blocks</code> configuration option. (Xavier Shay)</li>
<li>Remove support for specifying the documentation formatter using
's', 'n', 'spec' or 'nested'. (Jon Rowe)</li>
</ul>
<p>Enhancements:</p>
<ul>
<li>Add example run time to JSON formatter output. (Karthik Kastury)</li>
<li>Add more suggested settings to the files generated by
<code>rspec --init</code>. (Myron Marston)</li>
<li>Add <code>config.alias_example_group_to</code>, which can be used to define a
new method that defines an example group with the provided metadata.
(Michi Huber)</li>
<li>Add <code>xdescribe</code> and <code>xcontext</code> as shortcuts to skip an example group.
(Myron Marston)</li>
<li>Add <code>fdescribe</code> and <code>fcontext</code> as shortcuts to focus an example group.
(Myron Marston)</li>
<li>Don't autorun specs via <code>#at_exit</code> by default. <code>require 'rspec/autorun'</code>
is only needed when running specs via <code>ruby</code>, as it always has been.
Running specs via <code>rake</code> or <code>rspec</code> are both unaffected. (Ben Hoskings)</li>
<li>Add <code>expose_dsl_globally</code> config option, defaulting to true. When disabled
it will remove the monkey patches rspec-core adds to <code>main</code> and <code>Module</code>
(e.g. <code>describe</code>, <code>shared_examples_for</code>, etc). (Jon Rowe)</li>
<li>Expose RSpec DSL entry point methods (<code>describe</code>,
<code>shared_examples_for</code>, etc) on the <code>RSpec</code> constant. Intended for use
when <code>expose_dsl_globally</code> is set to <code>false</code>. (Jon Rowe)</li>
<li>For consistency, expose all example group aliases (including
<code>context</code>) on the <code>RSpec</code> constant. If <code>expose_dsl_globally</code> is set to
<code>true</code>, also expose them on <code>main</code> and <code>Module</code>. Historically, only <code>describe</code>
was exposed. (Jon Rowe, Michi Huber)</li>
<li>Add hook scope <code>:example</code> as an alias for <code>:each</code>, and <code>:context</code> as an alias
for <code>:all</code>. (John Feminella)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Fix failure (undefined method <code>path</code>) in end-of-run summary
when <code>raise_errors_for_deprecations!</code> is configured. (Myron Marston)</li>
<li>Issue error when attempting to use <code>-i</code> or <code>--I</code> on command line,
too close to <code>-I</code> to be considered short hand for <code>--init</code>. (Jon Rowe)</li>
<li>Prevent adding formatters to an output target if the same
formatter has already been added to that output. (Alex Peattie)</li>
<li>Allow a matcher-generated example description to be used when
the example is pending. (Myron Marston)</li>
<li>Ensure the configured <code>failure_exit_code</code> is used by the rake
task when there is a failure. (Jon Rowe)</li>
<li>Restore behaviour whereby system exclusion filters take priority over working
directory (was broken in beta1). (Jon Rowe)</li>
<li>Prevent RSpec mangling file names that have substrings containing <code>line_number</code>
or <code>default_path</code>. (Matijs van Zuijlen)</li>
</ul>
<h3>3.0.0.beta1 / 2013-11-07</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.1...v3.0.0.beta1">Full Changelog</a></p>
<p>Breaking Changes for 3.0.0:</p>
<ul>
<li>Remove explicit support for 1.8.6. (Jon Rowe)</li>
<li>Remove <code>RSpec::Core::ExampleGroup#example</code> and
<code>RSpec::Core::ExampleGroup#running_example</code> methods. If you need
access to the example (e.g. to get its metadata), use a block arg
instead. (David Chelimsky)</li>
<li>Remove <code>TextMateFormatter</code>, it has been moved to <code>rspec-tmbundle</code>.
(Aaron Kromer)</li>
<li>Remove RCov integration. (Jon Rowe)</li>
<li>Remove deprecated support for RSpec 1 constructs (Myron Marston):
<ul>
<li>The <code>Spec</code> and <code>Rspec</code> constants (rather than <code>RSpec</code>).</li>
<li><code>Spec::Runner.configure</code> rather than <code>RSpec.configure</code>.</li>
<li><code>Rake::SpecTask</code> rather than <code>RSpec::Core::RakeTask</code>.</li>
</ul></li>
<li>Remove deprecated support for <code>share_as</code>. (Myron Marston)</li>
<li>Remove <code>--debug</code> option (and corresponding option on
<code>RSpec::Core::Configuration</code>). Instead, use <code>-r<debugger gem name></code> to
load whichever debugger gem you wish to use (e.g. <code>ruby-debug</code>,
<code>debugger</code>, or <code>pry</code>). (Myron Marston)</li>
<li>Extract Autotest support to a seperate gem. (Jon Rowe)</li>
<li>Raise an error when a <code>let</code> or <code>subject</code> declaration is
accessed in a <code>before(:all)</code> or <code>after(:all)</code> hook. (Myron Marston)</li>
<li>Extract <code>its</code> support to a separate gem. (Peter Alfvin)</li>
<li>Disallow use of a shared example group from sibling contexts, making them
fully isolated. 2.14 and 2.99 allowed this but printed a deprecation warning.
(Jon Rowe)</li>
<li>Remove <code>RSpec::Core::Configuration#output</code> and
<code>RSpec::Core::Configuration#out</code> aliases of
<code>RSpec::Core::Configuration#output_stream</code>. (Myron Marston)</li>
<li>Remove legacy ordering APIs deprecated in 2.99.0.beta1. (Myron
Marston)</li>
</ul>
<p>Enhancements:</p>
<ul>
<li>Replace unmaintained syntax gem with coderay gem. (Xavier Shay)</li>
<li>Times in profile output are now bold instead of <code>failure_color</code>.
(Matthew Boedicker)</li>
<li>Add <code>--no-fail-fast</code> command line option. (Gonzalo Rodríguez-Baltanás Díaz)</li>
<li>Runner now considers the local system ip address when running under Drb.
(Adrian CB)</li>
<li>JsonFormatter now includes <code>--profile</code> information. (Alex / @MasterLambaster)</li>
<li>Always treat symbols passed as metadata args as hash
keys with true values. RSpec 2 supported this with the
<code>treat_symbols_as_metadata_keys_with_true_values</code> but
now this behavior is always enabled. (Myron Marston)</li>
<li>Add <code>--dry-run</code> option, which prints the formatter output
of your suite without running any examples or hooks.
(Thomas Stratmann, Myron Marston)</li>
<li>Document the configuration options and default values in the <code>spec_helper.rb</code>
file that is generated by RSpec. (Parker Selbert)</li>
<li>Give generated example group classes a friendly name derived
from the docstring, rather than something like "Nested_2".
(Myron Marston)</li>
<li>Avoid affecting randomization of user code when shuffling
examples so that users can count on their own seeds
working. (Travis Herrick)</li>
<li>Ordering is no longer a single global property of the test suite.
Each group can pick an ordering using <code>:order</code> metadata. (Andy
Lindeman, Sam Phippen, Myron Marston)</li>
<li>Allow named custom ordering strategies to be registered, which can
then be used on individual example groups. (Andy Lindeman, Sam
Phippen, Myron Marston)</li>
</ul>
<p>Deprecations:</p>
<ul>
<li><code>treat_symbols_as_metadata_keys_with_true_values</code> is deprecated and no
longer has an affect now that the behavior it enabled is always
enabled. (Myron Marston)</li>
</ul>
<h3>2.99.2 / 2014-08-19</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.1...v2.99.2">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Improve deprecation warning for RSpec 3 change in <code>describe <a symbol></code>
behavior. (Jon Rowe, #1667)</li>
</ul>
<h3>2.99.1 / 2014-06-19</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.0...v2.99.1">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Add missing deprecation warning for when <code>RSpec::Core::Runner</code> is used
multiple times in the same process. In 2.x RSpec's global state was
automatically cleared between runs but in 3.0 you need to call <code>RSpec.reset</code>
manually in these situations. (Sam Phippen, #1587)</li>
<li>Prevent deprecation being accidentally issues when doubles used with <code>be_</code>
matchers due to automatically generated descriptions. (Jon Rowe, #1573)</li>
<li>Load <code>rspec/core</code> when loading <code>rspec/core/rake_task</code> to ensure we can
issue deprecations correctly. (Jon Rowe, #1612)</li>
</ul>
<h3>2.99.0 / 2014-06-01</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.0.rc1...v2.99.0">Full Changelog</a></p>
<p>Bug Fixes:</p>
<ul>
<li>Fix <code>BaseTextFormatter</code> so that it does not re-close a closed output
stream. (Myron Marston)</li>
<li>Use <code>RSpec::Configuration#backtrace_exclusion_patterns</code> rather than the
deprecated <code>RSpec::Configuration#backtrace_clean_patterns</code> when mocking
with rr. (David Dollar)</li>
</ul>
<h3>2.99.0.rc1 / 2014-05-18</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.0.beta2...v2.99.0.rc1">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Add <code>--deprecation-out</code> CLI option which directs deprecation warnings
to the named file. (Myron Marston)</li>
<li>Backport support for <code>skip</code> in metadata to skip execution of an example.
(Xavier Shay, #1472)</li>
<li>Add <code>Pathname</code> support for setting all output streams. (Aaron Kromer)</li>
<li>Add <code>test_unit</code> and <code>minitest</code> expectation frameworks. (Aaron Kromer)</li>
</ul>
<p>Deprecations:</p>
<ul>
<li>Deprecate <code>RSpec::Core::Pending::PendingDeclaredInExample</code>, use
<code>SkipDeclaredInExample</code> instead. (Xavier Shay)</li>
<li>Issue a deprecation when <code>described_class</code> is accessed from within
a nested <code>describe <SomeClass></code> example group, since <code>described_class</code>
will return the innermost described class in RSpec 3 rather than the
outermost described class, as it behaved in RSpec 2. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::FilterManager::DEFAULT_EXCLUSIONS</code>,
<code>RSpec::Core::FilterManager::STANDALONE_FILTERS</code> and use of
<code>#empty_without_conditional_filters?</code> on those filters. (Sergey Pchelincev)</li>
<li>Deprecate <code>RSpec::Core::Example#options</code> in favor of
<code>RSpec::Core::Example#metadata</code>. (Myron Marston)</li>
<li>Issue warning when passing a symbol or hash to <code>describe</code> or <code>context</code>
as the first argument. In RSpec 2.x this would be treated as metadata
but in RSpec 3 it'll be treated as the described object. To continue
having it treated as metadata, pass a description before the symbol or
hash. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::BaseTextFormatter::VT100_COLORS</code> and
<code>RSpec::Core::BaseTextFormatter::VT100_COLOR_CODES</code> in favour
of <code>RSpec::Core::BaseTextFormatter::ConsoleCodes::VT100_CODES</code> and
<code>RSpec::Core::BaseTextFormatter::ConsoleCodes::VT100_CODE_VALUES</code>.
(Jon Rowe)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.display_name</code> in favor of
<code>RSpec::Core::ExampleGroup.description</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.describes</code> in favor of
<code>RSpec::Core::ExampleGroup.described_class</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.alias_example_to</code> in favor of
<code>RSpec::Core::Configuration#alias_example_to</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.alias_it_behaves_like_to</code> in favor
of <code>RSpec::Core::Configuration#alias_it_behaves_like_to</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::ExampleGroup.focused</code> in favor of
<code>RSpec::Core::ExampleGroup.focus</code>. (Myron Marston)</li>
<li>Add deprecation warning for <code>config.filter_run :focused</code> since
example aliases <code>fit</code> and <code>focus</code> will no longer include
<code>:focused</code> metadata but will continue to include <code>:focus</code>. (Myron Marston)</li>
<li>Deprecate filtering by <code>:line_number</code> (e.g. <code>--line-number</code> from the
CLI). Use location filtering instead. (Myron Marston)</li>
<li>Deprecate <code>--default_path</code> as an alternative to <code>--default-path</code>. (Jon Rowe)</li>
<li>Deprecate <code>RSpec::Core::Configuration#warnings</code> in favor of
<code>RSpec::Core::Configuration#warnings?</code>. (Myron Marston)</li>
<li>Deprecate <code>share_examples_for</code> in favor of <code>shared_examples_for</code> or
just <code>shared_examples</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::CommandLine</code> in favor of
<code>RSpec::Core::Runner</code>. (Myron Marston)</li>
<li>Deprecate <code>#color_enabled</code>, <code>#color_enabled=</code> and <code>#color?</code> in favour of
<code>#color</code>, <code>#color=</code> and <code>#color_enabled? output</code>. (Jon Rowe)</li>
<li>Deprecate <code>#filename_pattern</code> in favour of <code>#pattern</code>. (Jon Rowe)</li>
<li>Deprecate <code>#backtrace_cleaner</code> in favour of <code>#backtrace_formatter</code>. (Jon Rowe)</li>
<li>Deprecate mutating <code>RSpec::Configuration#formatters</code>. (Jon Rowe)</li>
<li>Deprecate <code>stdlib</code> as an available expectation framework in favour of
<code>test_unit</code> and <code>minitest</code>. (Aaron Kromer)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Issue a warning when you set <code>config.deprecation_stream</code> too late for
it to take effect because the reporter has already been setup. (Myron Marston)</li>
<li><code>skip</code> with a block should not execute the block. (Xavier Shay)</li>
</ul>
<h3>2.99.0.beta2 / 2014-02-17</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.99.0.beta1...v2.99.0.beta2">Full Changelog</a></p>
<p>Enhancements:</p>
<ul>
<li>Add <code>is_expected</code> for one-liners that read well with the
<code>expect</code>-based syntax. <code>is_expected</code> is simply defined as
<code>expect(subject)</code> and can be used in an expression like:
<code>it { is_expected.to read_well }</code>. (Myron Marston)</li>
<li>Backport <code>skip</code> from RSpec 3, which acts like <code>pending</code> did in RSpec 2
when not given a block, since the behavior of <code>pending</code> is changing in
RSpec 3. (Xavier Shay)</li>
</ul>
<p>Deprecations:</p>
<ul>
<li>Deprecate inexact <code>mock_with</code> config options. RSpec 3 will only support
the exact symbols <code>:rspec</code>, <code>:mocha</code>, <code>:flexmock</code>, <code>:rr</code> or <code>:nothing</code>
(or any module that implements the adapter interface). RSpec 2 did
fuzzy matching but this will not be supported going forward.
(Myron Marston)</li>
<li>Deprecate <code>show_failures_in_pending_blocks</code> config option. To achieve
the same behavior as the option enabled, you can use a custom
formatter instead. (Xavier Shay)</li>
<li>Add a deprecation warning for the fact that the behavior of <code>pending</code>
is changing in RSpec 3 -- rather than skipping the example (as it did
in 2.x when no block was provided), it will run the example and mark
it as failed if no exception is raised. Use <code>skip</code> instead to preserve
the old behavior. (Xavier Shay)</li>
<li>Deprecate 's', 'n', 'spec' and 'nested' as aliases for documentation
formatter. (Jon Rowe)</li>
<li>Deprecate <code>RSpec::Core::Reporter#abort</code> in favor of
<code>RSpec::Core::Reporter#finish</code>. (Jon Rowe)</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Fix failure (undefined method <code>path</code>) in end-of-run summary
when <code>raise_errors_for_deprecations!</code> is configured. (Myron Marston)</li>
<li>Fix issue were overridding spec ordering from the command line wasn't
fully recognised interally. (Jon Rowe)</li>
</ul>
<h3>2.99.0.beta1 / 2013-11-07</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.7...v2.99.0.beta1">Full Changelog</a></p>
<p>Enhancements</p>
<ul>
<li>Block-based DSL methods that run in the context of an example
(<code>it</code>, <code>before(:each)</code>, <code>after(:each)</code>, <code>let</code> and <code>subject</code>)
now yield the example as a block argument. (David Chelimsky)</li>
<li>Warn when the name of more than one example group is submitted to
<code>include_examples</code> and it's aliases. (David Chelimsky)</li>
<li>Add <code>expose_current_running_example_as</code> config option for
use during the upgrade process when external gems use the
deprecated <code>RSpec::Core::ExampleGroup#example</code> and
<code>RSpec::Core::ExampleGroup#running_example</code> methods. (Myron Marston)</li>
<li>Limit spamminess of deprecation messages. (Bradley Schaefer, Loren Segal)</li>
<li>Add <code>config.raise_errors_for_deprecations!</code> option, which turns
deprecations warnings into errors to surface the full backtrace
of the call site. (Myron Marston)</li>
</ul>
<p>Deprecations</p>
<ul>
<li>Deprecate <code>RSpec::Core::ExampleGroup#example</code> and
<code>RSpec::Core::ExampleGroup#running_example</code> methods. If you need
access to the example (e.g. to get its metadata), use a block argument
instead. (David Chelimsky)</li>
<li>Deprecate use of <code>autotest/rspec2</code> in favour of <code>rspec-autotest</code>. (Jon Rowe)</li>
<li>Deprecate RSpec's built-in debugger support. Use a CLI option like
<code>-rruby-debug</code> (for the ruby-debug gem) or <code>-rdebugger</code> (for the
debugger gem) instead. (Myron Marston)</li>
<li>Deprecate <code>RSpec.configuration.treat_symbols_as_metadata_keys_with_true_values = false</code>.
RSpec 3 will not support having this option set to <code>false</code>. (Myron Marston)</li>
<li>Deprecate accessing a <code>let</code> or <code>subject</code> declaration in
a <code>after(:all)</code> hook. (Myron Marston, Jon Rowe)</li>
<li>Deprecate built-in <code>its</code> usage in favor of <code>rspec-its</code> gem due to planned
removal in RSpec 3. (Peter Alfvin)</li>
<li>Deprecate <code>RSpec::Core::PendingExampleFixedError</code> in favor of
<code>RSpec::Core::Pending::PendingExampleFixedError</code>. (Myron Marston)</li>
<li>Deprecate <code>RSpec::Core::Configuration#out</code> and
<code>RSpec::Core::Configuration#output</code> in favor of
<code>RSpec::Core::Configuration#output_stream</code>. (Myron Marston)</li>
<li>Deprecate legacy ordering APIs.
<ul>
<li>You should use <code>register_ordering(:global)</code> instead of these:</li>
<li><code>RSpec::Core::Configuration#order_examples</code></li>
<li><code>RSpec::Core::Configuration#order_groups</code></li>
<li><code>RSpec::Core::Configuration#order_groups_and_examples</code></li>
<li>These are deprecated with no replacement because in RSpec 3
ordering is a property of individual example groups rather than
just a global property of the entire test suite:</li>
<li><code>RSpec::Core::Configuration#order</code></li>
<li><code>RSpec::Core::Configuration#randomize?</code></li>
<li><code>--order default</code> is deprecated in favor of <code>--order defined</code>
(Myron Marston)</li>
</ul></li>
</ul>
<h3>2.14.8 / 2014-02-27</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.7...v2.14.8">Full Changelog</a></p>
<p>Bug fixes:</p>
<ul>
<li>Fix regression with the <code>textmateformatter</code> that prevented backtrace links
from being clickable. (Stefan Daschek)</li>
</ul>
<h3>2.14.7 / 2013-10-29</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.6...v2.14.7">Full Changelog</a></p>
<p>Bug fixes:</p>
<ul>
<li>Fix regression in 2.14.6 that broke the Fivemat formatter.
It depended upon either
<code>example.execution_result[:exception].pending_fixed?</code> (which
was removed in 2.14.6 to fix an issue with frozen error objects)
or <code>RSpec::Core::PendingExampleFixedError</code> (which was renamed
to <code>RSpec::Core::Pending::PendingExampleFixedError</code> in 2.8.
This fix makes a constant alias for the old error name.
(Myron Marston)</li>
</ul>
<h3>2.14.6 / 2013-10-15</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.5...v2.14.6">Full Changelog</a></p>
<p>Bug fixes:</p>
<ul>
<li>Format stringified numbers correctly when mathn library is loaded.
(Jay Hayes)</li>
<li>Fix an issue that prevented the use of frozen error objects. (Lars
Gierth)</li>
</ul>
<h3>2.14.5 / 2013-08-13</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.4...v2.14.5">Full Changelog</a></p>
<p>Bug fixes:</p>
<ul>
<li>Fix a <code>NoMethodError</code> that was being raised when there were no shared
examples or contexts declared and <code>RSpec.world.reset</code> is invoked.
(thepoho, Jon Rowe, Myron Marston)</li>
<li>Fix a deprecation warning that was being incorrectly displayed when
<code>shared_examples</code> are declared at top level in a <code>module</code> scope.
(Jon Rowe)</li>
<li>Fix after(:all) hooks so consecutive (same context) scopes will run even if
one raises an error. (Jon Rowe, Trejkaz)</li>
<li>JsonFormatter no longer dies if <code>dump_profile</code> isn't defined (Alex / @MasterLambaster, Jon Rowe)</li>
</ul>
<h3>2.14.4 / 2013-07-21</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.3...v2.14.4">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Fix regression in 2.14: ensure configured requires (via <code>-r</code> option)
are loaded before spec files are loaded. This allows the spec files
to programatically change the file pattern (Jon Rowe).</li>
<li>Autoload <code>RSpec::Mocks</code> and <code>RSpec::Expectations</code> when referenced if
they are not already loaded (<code>RSpec::Matches</code> has been autoloaded
for a while). In the <code>rspec</code> gem, we changed it recently to stop
loading <code>rspec/mocks</code> and <code>rspec/expectations</code> by default, as some
users reported problems where they were intending to use mocha,
not rspec-mocks, but rspec-mocks was loaded and causing a conflict.
rspec-core loads mocks and expectations at the appropriate time, so
it seemed like a safe change -- but caused a problem for some authors
of libraries that integrate with RSpec. This fixes that problem.
(Myron Marston)</li>
<li>Gracefully handle a command like <code>rspec --profile path/to/spec.rb</code>:
the <code>path/to/spec.rb</code> arg was being wrongly treated as the <code>profile</code>
integer arg, which got cast <code>0</code> using <code>to_i</code>, causing no profiled
examples to be printed. (Jon Rowe)</li>
</ul>
<h3>2.14.3 / 2013-07-13</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.2...v2.14.3">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Fix deprecation notices issued from <code>RSpec::Core::RakeTask</code> so
that they work properly when all of rspec-core is not loaded.
(This was a regression in 2.14) (Jon Rowe)</li>
</ul>
<h3>2.14.2 / 2013-07-09</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.1...v2.14.2">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Fix regression caused by 2.14.1 release: formatters that
report that they <code>respond_to?</code> a notification, but had
no corresponding method would raise an error when registered.
The new fix is to just implement <code>start</code> on the deprecation
formatter to fix the original JRuby/ruby-debug issue.
(Jon Rowe)</li>
</ul>
<h3>2.14.1 / 2013-07-08</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.0...v2.14.1">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Address deprecation formatter failure when using <code>ruby-debug</code> on
JRuby: fix <code>RSpec::Core::Reporter</code> to not send a notification
when the formatter's implementation of the notification method
comes from <code>Kernel</code> (Alex Portnov, Jon Rowe).</li>
</ul>
<h3>2.14.0 / 2013-07-06</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.14.0.rc1...v2.14.0">Full Changelog</a></p>
<p>Enhancements</p>
<ul>
<li>Apply focus to examples defined with <code>fit</code> (equivalent of
<code>it "description", focus: true</code>) (Michael de Silva)</li>
</ul>
<p>Bug fix</p>
<ul>
<li>Ensure methods defined by <code>let</code> take precedence over others
when there is a name collision (e.g. from an included module).
(Jon Rowe, Andy Lindeman and Myron Marston)</li>
</ul>
<h3>2.14.0.rc1 / 2013-05-27</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.13.1...v2.14.0.rc1">Full Changelog</a></p>
<p>Enhancements</p>
<ul>
<li>Improved Windows detection inside Git Bash, for better <code>--color</code> handling.</li>
<li>Add profiling of the slowest example groups to <code>--profile</code> option.
The output is sorted by the slowest average example groups.</li>
<li>Don't show slow examples if there's a failure and both <code>--fail-fast</code>
and <code>--profile</code> options are used (Paweł Gościcki).</li>
<li>Rather than always adding <code>spec</code> to the load path, add the configured
<code>--default-path</code> to the load path (which defaults to <code>spec</code>). This
better supports folks who choose to put their specs in a different
directory (John Feminella).</li>
<li>Add some logic to test time duration precision. Make it a
function of time, dropping precision as the time increases. (Aaron Kromer)</li>
<li>Add new <code>backtrace_inclusion_patterns</code> config option. Backtrace lines
that match one of these patterns will <em>always</em> be included in the
backtrace, even if they match an exclusion pattern, too (Sam Phippen).</li>
<li>Support ERB trim mode using the <code>-</code> when parsing <code>.rspec</code> as ERB
(Gabor Garami).</li>
<li>Give a better error message when let and subject are called without a block.
(Sam Phippen).</li>
<li>List the precedence of <code>.rspec-local</code> in the configuration documentation
(Sam Phippen)</li>
<li>Support <code>{a,b}</code> shell expansion syntax in <code>--pattern</code> option
(Konstantin Haase).</li>
<li>Add cucumber documentation for --require command line option
(Bradley Schaefer)</li>
<li>Expose configuration options via config:
<ul>
<li><code>config.libs</code> returns the libs configured to be added onto the load path</li>
<li><code>full_backtrace?</code> returns the state of the backtrace cleaner</li>
<li><code>debug?</code> returns true when the debugger is loaded</li>
<li><code>line_numbers</code> returns the line numbers we are filtering by (if any)</li>
<li><code>full_description</code> returns the RegExp used to filter descriptions
(Jon Rowe)</li>
</ul></li>
<li>Add setters for RSpec.world and RSpec.configuration (Alex Soulim)</li>
<li>Configure ruby's warning behaviour with <code>--warnings</code> (Jon Rowe)</li>
<li>Fix an obscure issue on old versions of <code>1.8.7</code> where <code>Time.dup</code> wouldn't
allow access to <code>Time.now</code> (Jon Rowe)</li>
<li>Make <code>shared_examples_for</code> context aware, so that keys may be safely reused
in multiple contexts without colliding. (Jon Rowe)</li>
<li>Add a configurable <code>deprecation_stream</code> (Jon Rowe)</li>
<li>Publish deprecations through a formatter (David Chelimsky)</li>
</ul>
<p>Bug fixes</p>
<ul>
<li>Make JSON formatter behave the same when it comes to <code>--profile</code> as
the text formatter (Paweł Gościcki).</li>
<li>Fix named subjects so that if an inner group defines a method that
overrides the named method, <code>subject</code> still retains the originally
declared value (Myron Marston).</li>
<li>Fix random ordering so that it does not cause <code>rand</code> in examples in
nested sibling contexts to return the same value (Max Shytikov).</li>
<li>Use the new <code>backtrace_inclusion_patterns</code> config option to ensure
that folks who develop code in a directory matching one of the default
exclusion patterns (e.g. <code>gems</code>) still get the normal backtrace
filtering (Sam Phippen).</li>
<li>Fix ordering of <code>before</code> hooks so that <code>before</code> hooks declared in
<code>RSpec.configure</code> run before <code>before</code> hooks declared in a shared
context (Michi Huber and Tejas Dinkar).</li>
<li>Fix <code>Example#full_description</code> so that it gets filled in by the last
matcher description (as <code>Example#description</code> already did) when no
doc string has been provided (David Chelimsky).</li>
<li>Fix the memoized methods (<code>let</code> and <code>subject</code>) leaking <code>define_method</code>
as a <code>public</code> method. (Thomas Holmes and Jon Rowe) (#873)</li>
<li>Fix warnings coming from the test suite. (Pete Higgins)</li>
</ul>
<p>Deprecations</p>
<ul>
<li>Deprecate <code>Configuration#backtrace_clean_patterns</code> in favor of
<code>Configuration#backtrace_exclusion_patterns</code> for greater consistency
and symmetry with new <code>backtrace_inclusion_patterns</code> config option
(Sam Phippen).</li>
<li>Deprecate <code>Configuration#requires=</code> in favor of using ruby's
<code>require</code>. Requires specified by the command line can still be
accessed by the <code>Configuration#require</code> reader. (Bradley Schaefer)</li>
<li>Deprecate calling <code>SharedExampleGroups</code> defined across sibling contexts
(Jon Rowe)</li>
</ul>
<h3>2.13.1 / 2013-03-12</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.13.0...v2.13.1">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Use hook classes as proxies rather than extending hook blocks to support
lambdas for before/after/around hooks. (David Chelimsky)</li>
<li>Fix regression in 2.13.0 that caused confusing behavior when overriding
a named subject with an unnamed subject in an inner group and then
referencing the outer group subject's name. The fix for this required
us to disallow using <code>super</code> in a named subject (which is confusing,
anyway -- named subjects create 2 methods, so which method on the
parent example group are you <code>super</code>ing to?) but <code>super</code> in an unnamed
subject continues to work (Myron Marston).</li>
<li>Do not allow a referenced <code>let</code> or <code>subject</code> in <code>before(:all)</code> to cause
other <code>let</code> declarations to leak across examples (Myron Marston).</li>
<li>Work around odd ruby 1.9 bug with <code>String#match</code> that was triggered
by passing it a regex from a <code>let</code> declaration. For more info, see
<a href="http://bugs.ruby-lang.org/issues/8059">http://bugs.ruby-lang.org/issues/8059</a> (Aaron Kromer).</li>
<li>Add missing <code>require 'set'</code> to <code>base_text_formatter.rb</code> (Tom
Anderson).</li>
</ul>
<p>Deprecations</p>
<ul>
<li>Deprecate accessing <code>let</code> or <code>subject</code> declarations in <code>before(:all)</code>.
These were not intended to be called in a <code>before(:all)</code> hook, as
they exist to define state that is reset between each example, while
<code>before(:all)</code> exists to define state that is shared across examples
in an example group (Myron Marston).</li>
</ul>
<h3>2.13.0 / 2013-02-23</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.12.2...v2.13.0">Full Changelog</a></p>
<p>Enhancements</p>
<ul>
<li>Allow <code>--profile</code> option to take a count argument that
determines the number of slow examples to dump
(Greggory Rothmeier).</li>
<li>Add <code>subject!</code> that is the analog to <code>let!</code>. It defines an
explicit subject and sets a <code>before</code> hook that will invoke
the subject (Zubin Henner).</li>
<li>Fix <code>let</code> and <code>subject</code> declaration so that <code>super</code>
and <code>return</code> can be used in them, just like in a normal
method. (Myron Marston)</li>
<li>Allow output colors to be configured individually.
(Charlie Maffitt)</li>
<li>Always dump slow examples when <code>--profile</code> option is given,
even when an example failed (Myron Marston).</li>
</ul>
<p>Bug fixes</p>
<ul>
<li>Don't blow up when dumping error output for instances
of anonymous error classes (Myron Marston).</li>
<li>Fix default backtrace filters so lines from projects
containing "gems" in the name are not filtered, but
lines from installed gems still are (Myron Marston).</li>
<li>Fix autotest command so that is uses double quotes
rather than single quotes for windows compatibility
(Jonas Tingeborn).</li>
<li>Fix <code>its</code> so that uses of <code>subject</code> in a <code>before</code> or <code>let</code>
declaration in the parent group continue to reference the
parent group's subject. (Olek Janiszewski)</li>
</ul>
<h3>2.12.2 / 2012-12-13</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.12.1...v2.12.2">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Fix <code>RSpec::Core::RakeTask</code> so that it is compatible with rake 0.8.7
on ruby 1.8.7. We had accidentally broke it in the 2.12 release
(Myron Marston).</li>
<li>Fix <code>RSpec::Core::RakeTask</code> so it is tolerant of the <code>Rspec</code> constant
for backwards compatibility (Patrick Van Stee)</li>
</ul>
<h3>2.12.1 / 2012-12-01</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.12.0...v2.12.1">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Specs are run even if another at_exit hook calls <code>exit</code>. This allows
Test::Unit and RSpec to run together. (Suraj N. Kurapati)</li>
<li>Fix full doc string concatenation so that it handles the case of a
method string (e.g. "#foo") being nested under a context string
(e.g. "when it is tuesday"), so that we get "when it is tuesday #foo"
rather than "when it is tuesday#foo". (Myron Marston)</li>
<li>Restore public API I unintentionally broke in 2.12.0:
<code>RSpec::Core::Formatters::BaseFormatter#format_backtrce(backtrace, example)</code>
(Myron Marston).</li>
</ul>
<h3>2.12.0 / 2012-11-12</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.11.1...v2.12.0">Full Changelog</a></p>
<p>Enhancements</p>
<ul>
<li>Add support for custom ordering strategies for groups and examples.
(Myron Marston)</li>
<li>JSON Formatter (Alex Chaffee)</li>
<li>Refactor rake task internals (Sam Phippen)</li>
<li>Refactor HtmlFormatter (Pete Hodgson)</li>
<li>Autotest supports a path to Ruby that contains spaces (dsisnero)</li>
<li>Provide a helpful warning when a shared example group is redefined.
(Mark Burns).</li>
<li><code>--default_path</code> can be specified as <code>--default-line</code>. <code>--line_number</code> can be
specified as <code>--line-number</code>. Hyphens are more idiomatic command line argument
separators (Sam Phippen).</li>
<li>A more useful error message is shown when an invalid command line option is
used (Jordi Polo).</li>
<li>Add <code>format_docstrings { |str| }</code> config option. It can be used to
apply formatting rules to example group and example docstrings.
(Alex Tan)</li>
<li>Add support for an <code>.rspec-local</code> options file. This is intended to
allow individual developers to set options in a git-ignored file that
override the common project options in <code>.rspec</code>. (Sam Phippen)</li>
<li>Support for mocha 0.13.0. (Andy Lindeman)</li>
</ul>
<p>Bug fixes</p>
<ul>
<li>Remove override of <code>ExampleGroup#ancestors</code>. This is a core ruby method that
RSpec shouldn't override. Instead, define <code>ExampleGroup#parent_groups</code>. (Myron
Marston)</li>
<li>Limit monkey patching of shared example/context declaration methods
(<code>shared_examples_for</code>, etc.) to just the objects that need it rather than
every object in the system (Myron Marston).</li>
<li>Fix Metadata#fetch to support computed values (Sam Goldman).</li>
<li>Named subject can now be referred to from within subject block in a nested
group (tomykaira).</li>
<li>Fix <code>fail_fast</code> so that it properly exits when an error occurs in a
<code>before(:all) hook</code> (Bradley Schaefer).</li>
<li>Make the order spec files are loaded consistent, regardless of the
order of the files returned by the OS or the order passed at
the command line (Jo Liss and Sam Phippen).</li>
<li>Ensure instance variables from <code>before(:all)</code> are always exposed
from <code>after(:all)</code>, even if an error occurs in <code>before(:all)</code>
(Sam Phippen).</li>
<li><code>rspec --init</code> no longer generates an incorrect warning about <code>--configure</code>
being deprecated (Sam Phippen).</li>
<li>Fix pluralization of <code>1 seconds</code> (Odin Dutton)</li>
<li>Fix ANSICON url (Jarmo Pertman)</li>
<li>Use dup of Time so reporting isn't clobbered by examples that modify Time
without properly restoring it. (David Chelimsky)</li>
</ul>
<p>Deprecations</p>
<ul>
<li><code>share_as</code> is no longer needed. <code>shared_context</code> and/or
<code>RSpec::SharedContext</code> provide better mechanisms (Sam Phippen).</li>
<li>Deprecate <code>RSpec.configuration</code> with a block (use <code>RSpec.configure</code>).</li>
</ul>
<h3>2.11.1 / 2012-07-18</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.11.0...v2.11.1">Full Changelog</a></p>
<p>Bug fixes</p>
<ul>
<li>Fix the way we autoload RSpec::Matchers so that custom matchers can be
defined before rspec-core has been configured to definitely use
rspec-expectations. (Myron Marston)</li>
<li>Fix typo in --help message printed for -e option. (Jo Liss)</li>
<li>Fix ruby warnings. (Myron Marston)</li>
<li>Ignore mock expectation failures when the example has already failed.
Mock expectation failures have always been ignored in this situation,
but due to my changes in 27059bf1 it was printing a confusing message.
(Myron Marston).</li>
</ul>
<h3>2.11.0 / 2012-07-07</h3>
<p><a href="http://github.com/rspec/rspec-core/compare/v2.10.1...v2.11.0">Full Changelog</a></p>
<p>Enhancements</p>
<ul>
<li>Support multiple <code>--example</code> options. (Daniel Doubrovkine @dblock)</li>
<li>Named subject e.g. <code>subject(:article) { Article.new }</code>
<ul>
<li>see <a href="http://blog.davidchelimsky.net/2012/05/13/spec-smell-explicit-use-of-subject/">http://blog.davidchelimsky.net/2012/05/13/spec-smell-explicit-use-of-subject/</a>
for background.</li>
<li>thanks to Bradley Schaefer for suggesting it and Avdi Grimm for almost
suggesting it.</li>
</ul></li>
<li><code>config.mock_with</code> and <code>config.expect_with</code> yield custom config object to a
block if given
<ul>
<li>aids decoupling from rspec-core's configuation</li>
</ul></li>
<li><code>include_context</code> and <code>include_examples</code> support a block, which gets eval'd
in the current context (vs the nested context generated by <code>it_behaves_like</code>).</li>
<li>Add <code>config.order = 'random'</code> to the <code>spec_helper.rb</code> generated by <code>rspec
--init</code>.</li>
<li>Delay the loading of DRb (Myron Marston).</li>
<li>Limit monkey patching of <code>describe</code> onto just the objects that need it rather
than every object in the system (Myron Marston).</li>
</ul>
<p>Bug fixes</p>
<ul>
<li>Support alternative path separators. For example, on Windows, you can now do
this: <code>rspec spec\subdir</code>. (Jarmo Pertman @jarmo)</li>