rspec 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +31 -1
- data/Manifest.txt +14 -12
- data/Rakefile +1 -1
- data/Upgrade.rdoc +43 -3
- data/examples/failing/failing_implicit_docstrings_example.rb +5 -5
- data/examples/passing/implicit_docstrings_example.rb +3 -3
- data/features/before_and_after_blocks/before_and_after_blocks.feature +20 -21
- data/features/example_groups/example_group_with_should_methods.feature +20 -8
- data/features/example_groups/implicit_docstrings.feature +36 -20
- data/features/example_groups/nested_groups.feature +25 -10
- data/features/extensions/custom_example_group.feature +19 -0
- data/features/formatters/custom_formatter.feature +30 -0
- data/features/heckle/heckle.feature +7 -7
- data/features/interop/examples_and_tests_together.feature +63 -14
- data/features/interop/rspec_output.feature +25 -0
- data/features/interop/test_but_not_test_unit.feature +19 -7
- data/features/interop/test_case_with_should_methods.feature +37 -8
- data/features/matchers/{create_matcher.feature → define_matcher.feature} +54 -30
- data/features/matchers/{create_matcher_outside_rspec.feature → define_matcher_outside_rspec.feature} +7 -7
- data/features/mock_framework_integration/use_flexmock.feature +3 -3
- data/features/mock_framework_integration/use_mocha.feature +3 -3
- data/features/mock_framework_integration/use_rr.feature +3 -3
- data/features/mocks/mix_stubs_and_mocks.feature +4 -4
- data/features/pending/pending_examples.feature +18 -18
- data/features/runner/specify_line_number.feature +32 -0
- data/features/step_definitions/running_rspec_steps.rb +41 -0
- data/features/subject/explicit_subject.feature +4 -4
- data/features/subject/implicit_subject.feature +4 -4
- data/features/support/env.rb +64 -11
- data/features/support/matchers/smart_match.rb +10 -35
- data/lib/spec.rb +1 -0
- data/lib/spec/deprecation.rb +40 -0
- data/lib/spec/dsl/main.rb +10 -5
- data/lib/spec/example.rb +1 -27
- data/lib/spec/example/args_and_options.rb +27 -0
- data/lib/spec/example/before_and_after_hooks.rb +30 -21
- data/lib/spec/example/errors.rb +8 -18
- data/lib/spec/example/example_group_factory.rb +0 -4
- data/lib/spec/example/example_group_methods.rb +27 -41
- data/lib/spec/example/example_group_proxy.rb +12 -22
- data/lib/spec/example/example_methods.rb +8 -18
- data/lib/spec/example/example_proxy.rb +4 -4
- data/lib/spec/example/pending.rb +3 -4
- data/lib/spec/example/predicate_matchers.rb +1 -1
- data/lib/spec/example/subject.rb +2 -0
- data/lib/spec/expectations.rb +1 -26
- data/lib/spec/expectations/extensions.rb +1 -1
- data/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/lib/spec/expectations/handler.rb +21 -10
- data/lib/spec/matchers/be.rb +3 -3
- data/lib/spec/matchers/be_close.rb +17 -21
- data/lib/spec/matchers/be_instance_of.rb +7 -26
- data/lib/spec/matchers/be_kind_of.rb +7 -26
- data/lib/spec/matchers/dsl.rb +9 -4
- data/lib/spec/matchers/eql.rb +24 -25
- data/lib/spec/matchers/equal.rb +25 -25
- data/lib/spec/matchers/exist.rb +5 -21
- data/lib/spec/matchers/include.rb +22 -44
- data/lib/spec/matchers/match.rb +5 -25
- data/lib/spec/matchers/match_array.rb +8 -4
- data/lib/spec/matchers/matcher.rb +13 -2
- data/lib/spec/matchers/pretty.rb +1 -0
- data/lib/spec/matchers/simple_matcher.rb +2 -2
- data/lib/spec/mocks/mock.rb +10 -10
- data/lib/spec/mocks/spec_methods.rb +1 -1
- data/lib/spec/runner/configuration.rb +53 -42
- data/lib/spec/{expectations → runner}/differs/default.rb +0 -0
- data/lib/spec/{expectations → runner}/differs/load-diff-lcs.rb +0 -0
- data/lib/spec/runner/drb_command_line.rb +1 -1
- data/lib/spec/runner/example_group_runner.rb +0 -12
- data/lib/spec/runner/formatter/base_formatter.rb +77 -30
- data/lib/spec/runner/formatter/base_text_formatter.rb +19 -24
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +1 -1
- data/lib/spec/runner/formatter/html_formatter.rb +4 -6
- data/lib/spec/runner/formatter/nested_text_formatter.rb +2 -2
- data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +0 -4
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +4 -5
- data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +2 -2
- data/lib/spec/runner/option_parser.rb +14 -7
- data/lib/spec/runner/options.rb +17 -7
- data/lib/spec/runner/reporter.rb +69 -64
- data/lib/spec/version.rb +1 -1
- data/spec/spec/dsl/main_spec.rb +7 -0
- data/spec/spec/example/example_group_methods_spec.rb +16 -32
- data/spec/spec/example/example_group_proxy_spec.rb +25 -5
- data/spec/spec/example/example_group_spec.rb +2 -2
- data/spec/spec/example/example_methods_spec.rb +19 -24
- data/spec/spec/example/example_proxy_spec.rb +11 -1
- data/spec/spec/example/pending_module_spec.rb +2 -108
- data/spec/spec/example/predicate_matcher_spec.rb +23 -3
- data/spec/spec/expectations/extensions/object_spec.rb +9 -9
- data/spec/spec/expectations/fail_with_spec.rb +13 -13
- data/spec/spec/expectations/handler_spec.rb +44 -15
- data/spec/spec/matchers/be_close_spec.rb +9 -0
- data/spec/spec/matchers/be_instance_of_spec.rb +6 -4
- data/spec/spec/matchers/be_kind_of_spec.rb +5 -3
- data/spec/spec/matchers/be_spec.rb +1 -5
- data/spec/spec/matchers/compatibility_spec.rb +1 -1
- data/spec/spec/matchers/dsl_spec.rb +10 -1
- data/spec/spec/matchers/eql_spec.rb +8 -4
- data/spec/spec/matchers/equal_spec.rb +8 -4
- data/spec/spec/matchers/exist_spec.rb +1 -1
- data/spec/spec/matchers/include_spec.rb +1 -1
- data/spec/spec/matchers/match_array_spec.rb +26 -1
- data/spec/spec/matchers/match_spec.rb +2 -2
- data/spec/spec/matchers/matcher_methods_spec.rb +0 -3
- data/spec/spec/matchers/matcher_spec.rb +53 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
- data/spec/spec/mocks/mock_spec.rb +6 -0
- data/spec/spec/runner/configuration_spec.rb +11 -1
- data/spec/spec/runner/drb_command_line_spec.rb +13 -1
- data/spec/spec/runner/example_group_runner_spec.rb +0 -7
- data/spec/spec/runner/formatter/base_formatter_spec.rb +19 -12
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +2 -2
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +4 -4
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +2 -2
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +31 -34
- data/spec/spec/runner/formatter/html_formatter_spec.rb +20 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +20 -20
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +22 -3
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +24 -3
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +6 -6
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +25 -28
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +2 -2
- data/spec/spec/runner/option_parser_spec.rb +108 -40
- data/spec/spec/runner/reporter_spec.rb +16 -17
- data/spec/spec_helper.rb +4 -1
- metadata +20 -18
- data/features/example_groups/output.feature +0 -20
- data/features/step_definitions/running_rspec.rb +0 -69
- data/lib/spec/expectations/extensions/object.rb +0 -63
- data/resources/spec/example_group_with_should_methods.rb +0 -12
- data/resources/spec/simple_spec.rb +0 -8
- data/resources/test/spec_and_test_together.rb +0 -56
- data/resources/test/spec_including_test_but_not_unit.rb +0 -11
- data/resources/test/test_case_with_should_methods.rb +0 -29
| @@ -32,7 +32,7 @@ module Spec | |
| 32 32 | 
             
                      parent_example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe('Parent')
         | 
| 33 33 | 
             
                      child_example_group = Class.new(parent_example_group).describe('Child')
         | 
| 34 34 |  | 
| 35 | 
            -
                      formatter. | 
| 35 | 
            +
                      formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
         | 
| 36 36 |  | 
| 37 37 | 
             
                      formatter.example_started('when foo')
         | 
| 38 38 | 
             
                      Time.stub!(:now).and_return(now+1)
         | 
| @@ -50,7 +50,7 @@ module Spec | |
| 50 50 |  | 
| 51 51 | 
             
                    it "should print the top 10 results" do
         | 
| 52 52 | 
             
                      example_group = Class.new(::Spec::Example::ExampleGroup).describe("ExampleGroup")
         | 
| 53 | 
            -
                      formatter. | 
| 53 | 
            +
                      formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
         | 
| 54 54 | 
             
                      formatter.instance_variable_set("@time", Time.now)
         | 
| 55 55 |  | 
| 56 56 | 
             
                      15.times do 
         | 
| @@ -60,7 +60,26 @@ module Spec | |
| 60 60 | 
             
                      io.should_receive(:print).exactly(10)
         | 
| 61 61 | 
             
                      formatter.start_dump
         | 
| 62 62 | 
             
                    end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                    it "should have method_missing as private" do
         | 
| 65 | 
            +
                      ProfileFormatter.private_instance_methods.should include("method_missing")
         | 
| 66 | 
            +
                    end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                    it "should respond_to? all messages" do
         | 
| 69 | 
            +
                      formatter = ProfileFormatter.new({ }, StringIO.new)
         | 
| 70 | 
            +
                      formatter.should respond_to(:just_about_anything)
         | 
| 71 | 
            +
                    end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                    it "should respond_to? anything, when given the private flag" do
         | 
| 74 | 
            +
                      formatter = ProfileFormatter.new({ }, StringIO.new)
         | 
| 75 | 
            +
                      formatter.respond_to?(:method_missing, true).should be_true
         | 
| 76 | 
            +
                    end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                    it "should not respond_to? method_missing (because it's private)" do
         | 
| 79 | 
            +
                      formatter = ProfileFormatter.new({ }, StringIO.new)
         | 
| 80 | 
            +
                      formatter.respond_to?(:method_missing).should be_false
         | 
| 81 | 
            +
                    end
         | 
| 63 82 | 
             
                  end
         | 
| 64 83 | 
             
                end
         | 
| 65 84 | 
             
              end
         | 
| 66 | 
            -
            end
         | 
| 85 | 
            +
            end
         | 
| @@ -30,7 +30,7 @@ module Spec | |
| 30 30 | 
             
                        end
         | 
| 31 31 | 
             
                      end
         | 
| 32 32 | 
             
                      example = example_group.examples.first
         | 
| 33 | 
            -
                      @formatter. | 
| 33 | 
            +
                      @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
         | 
| 34 34 | 
             
                      @formatter.example_pending(example, "message", "#{__FILE__}:#{__LINE__}")
         | 
| 35 35 | 
             
                      @io.rewind
         | 
| 36 36 | 
             
                      @formatter.dump_summary(3, 2, 1, 1)
         | 
| @@ -97,8 +97,8 @@ EOE | |
| 97 97 | 
             
                      end
         | 
| 98 98 | 
             
                      example = example_group.examples.first
         | 
| 99 99 | 
             
                      file = __FILE__
         | 
| 100 | 
            -
                      line = __LINE__  | 
| 101 | 
            -
                      @formatter. | 
| 100 | 
            +
                      line = __LINE__ - 5
         | 
| 101 | 
            +
                      @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
         | 
| 102 102 | 
             
                      @formatter.example_pending(example, "message", "#{__FILE__}:#{__LINE__}")
         | 
| 103 103 | 
             
                      @formatter.dump_pending
         | 
| 104 104 | 
             
                      @io.string.should ==(<<-HERE)
         | 
| @@ -143,6 +143,27 @@ HERE | |
| 143 143 | 
             
                      @io.string.should eql("")
         | 
| 144 144 | 
             
                    end
         | 
| 145 145 | 
             
                  end
         | 
| 146 | 
            +
             | 
| 147 | 
            +
                  describe ProgressBarFormatter, "method_missing" do
         | 
| 148 | 
            +
                    it "should have method_missing as private" do
         | 
| 149 | 
            +
                      ProgressBarFormatter.private_instance_methods.should include("method_missing")
         | 
| 150 | 
            +
                    end
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                    it "should respond_to? all messages" do
         | 
| 153 | 
            +
                      formatter = ProgressBarFormatter.new({ }, StringIO.new)
         | 
| 154 | 
            +
                      formatter.should respond_to(:just_about_anything)
         | 
| 155 | 
            +
                    end
         | 
| 156 | 
            +
             | 
| 157 | 
            +
                    it "should respond_to? anything, when given the private flag" do
         | 
| 158 | 
            +
                      formatter = ProgressBarFormatter.new({ }, StringIO.new)
         | 
| 159 | 
            +
                      formatter.respond_to?(:method_missing, true).should be_true
         | 
| 160 | 
            +
                    end
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                    it "should not respond_to? method_missing (because it's private)" do
         | 
| 163 | 
            +
                      formatter = ProgressBarFormatter.new({ }, StringIO.new)
         | 
| 164 | 
            +
                      formatter.respond_to?(:method_missing).should be_false
         | 
| 165 | 
            +
                    end
         | 
| 166 | 
            +
                  end
         | 
| 146 167 | 
             
                end
         | 
| 147 168 | 
             
              end
         | 
| 148 169 | 
             
            end
         | 
| @@ -20,11 +20,11 @@ module Spec | |
| 20 20 |  | 
| 21 21 | 
             
                      describe "where ExampleGroup has no superclasss with a description" do
         | 
| 22 22 | 
             
                        before do
         | 
| 23 | 
            -
                           | 
| 23 | 
            +
                          example_group_started
         | 
| 24 24 | 
             
                        end
         | 
| 25 25 |  | 
| 26 | 
            -
                        def  | 
| 27 | 
            -
                          formatter. | 
| 26 | 
            +
                        def example_group_started
         | 
| 27 | 
            +
                          formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
         | 
| 28 28 | 
             
                        end
         | 
| 29 29 |  | 
| 30 30 | 
             
                        describe "#dump_summary" do
         | 
| @@ -39,7 +39,7 @@ module Spec | |
| 39 39 | 
             
                          end
         | 
| 40 40 | 
             
                        end
         | 
| 41 41 |  | 
| 42 | 
            -
                        describe "# | 
| 42 | 
            +
                        describe "#example_group_started" do
         | 
| 43 43 | 
             
                          it "should push ExampleGroup name" do
         | 
| 44 44 | 
             
                            io.string.should eql("\nExampleGroup\n")
         | 
| 45 45 | 
             
                          end
         | 
| @@ -73,10 +73,10 @@ module Spec | |
| 73 73 | 
             
                          describe "where ExampleGroup has two superclasses with a description" do
         | 
| 74 74 | 
             
                            attr_reader :child_example_group, :grand_child_example_group
         | 
| 75 75 |  | 
| 76 | 
            -
                            def  | 
| 76 | 
            +
                            def example_group_started
         | 
| 77 77 | 
             
                              @child_example_group = Class.new(example_group).describe("Child ExampleGroup")
         | 
| 78 78 | 
             
                              @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup")
         | 
| 79 | 
            -
                              formatter. | 
| 79 | 
            +
                              formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
         | 
| 80 80 | 
             
                            end
         | 
| 81 81 |  | 
| 82 82 | 
             
                            describe "when having an error" do
         | 
| @@ -192,9 +192,9 @@ a { | |
| 192 192 | 
             
                  <div class="failure" id="failure_1">
         | 
| 193 193 | 
             
                    <div class="message"><pre>Mock 'poke me' expected :poke with (any args) once, but received it 0 times</pre></div>
         | 
| 194 194 | 
             
                    <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/examples/failing/mocking_example.rb&line=13">./examples/failing/mocking_example.rb:13</a> 
         | 
| 195 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 196 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 197 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 195 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=49">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:49</a> 
         | 
| 196 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> :in `chdir'
         | 
| 197 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> </pre></div>
         | 
| 198 198 | 
             
                <pre class="ruby"><code><span class="linenum">11</span>  <span class="ident">it</span> <span class="punct">"</span><span class="string">should fail when expected message not received</span><span class="punct">"</span> <span class="keyword">do</span>
         | 
| 199 199 | 
             
            <span class="linenum">12</span>    <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">("</span><span class="string">poke me</span><span class="punct">")</span>
         | 
| 200 200 | 
             
            <span class="offending"><span class="linenum">13</span>    <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:poke</span><span class="punct">)</span></span>
         | 
| @@ -208,9 +208,9 @@ a { | |
| 208 208 | 
             
                  <div class="failure" id="failure_2">
         | 
| 209 209 | 
             
                    <div class="message"><pre>Mock 'one two three' received :three out of order</pre></div>
         | 
| 210 210 | 
             
                    <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/examples/failing/mocking_example.rb&line=22">./examples/failing/mocking_example.rb:22</a> 
         | 
| 211 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 212 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 213 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 211 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=49">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:49</a> 
         | 
| 212 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> :in `chdir'
         | 
| 213 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> </pre></div>
         | 
| 214 214 | 
             
                <pre class="ruby"><code><span class="linenum">20</span>    <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:three</span><span class="punct">).</span><span class="ident">ordered</span>
         | 
| 215 215 | 
             
            <span class="linenum">21</span>    <span class="ident">mock</span><span class="punct">.</span><span class="ident">one</span>
         | 
| 216 216 | 
             
            <span class="offending"><span class="linenum">22</span>    <span class="ident">mock</span><span class="punct">.</span><span class="ident">three</span></span>
         | 
| @@ -224,9 +224,9 @@ a { | |
| 224 224 | 
             
                  <div class="failure" id="failure_3">
         | 
| 225 225 | 
             
                    <div class="message"><pre>Mock 'don't talk to me' expected :any_message_at_all with (no args) 0 times, but received it once</pre></div>
         | 
| 226 226 | 
             
                    <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/examples/failing/mocking_example.rb&line=29">./examples/failing/mocking_example.rb:29</a> 
         | 
| 227 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 228 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 229 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 227 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=49">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:49</a> 
         | 
| 228 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> :in `chdir'
         | 
| 229 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> </pre></div>
         | 
| 230 230 | 
             
                <pre class="ruby"><code><span class="linenum">27</span>    <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">("</span><span class="string">don't talk to me</span><span class="punct">")</span>
         | 
| 231 231 | 
             
            <span class="linenum">28</span>    <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_not_receive</span><span class="punct">(</span><span class="symbol">:any_message_at_all</span><span class="punct">)</span>
         | 
| 232 232 | 
             
            <span class="offending"><span class="linenum">29</span>    <span class="ident">mock</span><span class="punct">.</span><span class="ident">any_message_at_all</span></span>
         | 
| @@ -239,9 +239,9 @@ a { | |
| 239 239 | 
             
                  <div class="failure" id="failure_4">
         | 
| 240 240 | 
             
                    <div class="message"><pre>Expected pending 'here is the bug' to fail. No Error was raised.</pre></div>
         | 
| 241 241 | 
             
                    <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/examples/failing/mocking_example.rb&line=33">./examples/failing/mocking_example.rb:33</a> 
         | 
| 242 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 243 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 244 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 242 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=49">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:49</a> 
         | 
| 243 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> :in `chdir'
         | 
| 244 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> </pre></div>
         | 
| 245 245 | 
             
                <pre class="ruby"><code><span class="linenum">31</span>
         | 
| 246 246 | 
             
            <span class="linenum">32</span>  <span class="ident">it</span> <span class="punct">"</span><span class="string">has a bug we need to fix</span><span class="punct">"</span> <span class="keyword">do</span>
         | 
| 247 247 | 
             
            <span class="offending"><span class="linenum">33</span>    <span class="ident">pending</span> <span class="punct">"</span><span class="string">here is the bug</span><span class="punct">"</span> <span class="keyword">do</span></span>
         | 
| @@ -269,9 +269,9 @@ Diff: | |
| 269 269 | 
             
             framework for Ruby
         | 
| 270 270 | 
             
            </pre></div>
         | 
| 271 271 | 
             
                    <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/examples/failing/diffing_spec.rb&line=13">./examples/failing/diffing_spec.rb:13</a> 
         | 
| 272 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 273 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 274 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 272 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=49">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:49</a> 
         | 
| 273 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> :in `chdir'
         | 
| 274 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> </pre></div>
         | 
| 275 275 | 
             
                <pre class="ruby"><code><span class="linenum">11</span><span class="ident">framework</span> <span class="keyword">for</span> <span class="constant">Ruby</span>
         | 
| 276 276 | 
             
            <span class="linenum">12</span><span class="constant">EOF</span>
         | 
| 277 277 | 
             
            <span class="offending"><span class="linenum">13</span>    <span class="ident">usa</span><span class="punct">.</span><span class="ident">should</span> <span class="punct">==</span> <span class="ident">uk</span></span>
         | 
| @@ -282,27 +282,24 @@ Diff: | |
| 282 282 | 
             
                <dd class="spec failed">
         | 
| 283 283 | 
             
                  <span class="failed_spec_name">should print diff of different objects' pretty representation</span>
         | 
| 284 284 | 
             
                  <div class="failure" id="failure_6">
         | 
| 285 | 
            -
                    <div class="message"><pre> | 
| 285 | 
            +
                    <div class="message"><pre>
         | 
| 286 | 
            +
            expected <Animal
         | 
| 286 287 | 
             
            name=bob,
         | 
| 287 288 | 
             
            species=tortoise
         | 
| 288 289 | 
             
            >
         | 
| 289 | 
            -
             | 
| 290 | 
            +
             | 
| 291 | 
            +
                 got <Animal
         | 
| 290 292 | 
             
            name=bob,
         | 
| 291 293 | 
             
            species=giraffe
         | 
| 292 294 | 
             
            >
         | 
| 293 | 
            -
             | 
| 294 | 
            -
             | 
| 295 | 
            -
             | 
| 296 | 
            -
             <Animal
         | 
| 297 | 
            -
             name=bob,
         | 
| 298 | 
            -
            -species=tortoise
         | 
| 299 | 
            -
            +species=giraffe
         | 
| 300 | 
            -
             >
         | 
| 295 | 
            +
             | 
| 296 | 
            +
             | 
| 297 | 
            +
            (compared using eql?)
         | 
| 301 298 | 
             
            </pre></div>
         | 
| 302 299 | 
             
                    <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/examples/failing/diffing_spec.rb&line=34">./examples/failing/diffing_spec.rb:34</a> 
         | 
| 303 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 304 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 305 | 
            -
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line= | 
| 300 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=49">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:49</a> 
         | 
| 301 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> :in `chdir'
         | 
| 302 | 
            +
            <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec-dev/example_rails_app/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb&line=45">./spec/spec/runner/formatter/text_mate_formatter_spec.rb:45</a> </pre></div>
         | 
| 306 303 | 
             
                <pre class="ruby"><code><span class="linenum">32</span>    <span class="ident">expected</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">"</span><span class="string">bob</span><span class="punct">",</span> <span class="punct">"</span><span class="string">giraffe</span><span class="punct">"</span>
         | 
| 307 304 | 
             
            <span class="linenum">33</span>    <span class="ident">actual</span>   <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">"</span><span class="string">bob</span><span class="punct">",</span> <span class="punct">"</span><span class="string">tortoise</span><span class="punct">"</span>
         | 
| 308 305 | 
             
            <span class="offending"><span class="linenum">34</span>    <span class="ident">expected</span><span class="punct">.</span><span class="ident">should</span> <span class="ident">eql</span><span class="punct">(</span><span class="ident">actual</span><span class="punct">)</span></span>
         | 
| @@ -49,10 +49,10 @@ module Spec | |
| 49 49 | 
             
                    #       Spec::Runner::CommandLine.run(
         | 
| 50 50 | 
             
                    #         ::Spec::Runner::OptionParser.parse(args, err, out)
         | 
| 51 51 | 
             
                    #       )
         | 
| 52 | 
            -
                    #
         | 
| 52 | 
            +
                    # 
         | 
| 53 53 | 
             
                    #       seconds = /\d+\.\d+ seconds/
         | 
| 54 54 | 
             
                    #       html = out.string.gsub seconds, 'x seconds'
         | 
| 55 | 
            -
                    #
         | 
| 55 | 
            +
                    # 
         | 
| 56 56 | 
             
                    #       File.open(expected_file, 'w') {|io| io.write(html)}
         | 
| 57 57 | 
             
                    #     end
         | 
| 58 58 | 
             
                    #   end
         | 
| @@ -35,13 +35,15 @@ describe "OptionParser" do | |
| 35 35 | 
             
              end
         | 
| 36 36 |  | 
| 37 37 | 
             
              it "should turn off the debugger option if drb is specified later" do
         | 
| 38 | 
            +
                @parser.stub!(:parse_drb).with(no_args).and_return(true)
         | 
| 38 39 | 
             
                options = parse(["-u", "--drb"])
         | 
| 39 | 
            -
                options.debug. | 
| 40 | 
            +
                options.debug.should be_false
         | 
| 40 41 | 
             
              end
         | 
| 41 42 |  | 
| 42 43 | 
             
              it "should turn off the debugger option if drb is specified first" do
         | 
| 44 | 
            +
                @parser.stub!(:parse_drb).with(no_args).and_return(true)
         | 
| 43 45 | 
             
                options = parse(["--drb", "-u"])
         | 
| 44 | 
            -
                options.debug. | 
| 46 | 
            +
                options.debug.should be_false
         | 
| 45 47 | 
             
              end
         | 
| 46 48 |  | 
| 47 49 | 
             
              it "should accept dry run option" do
         | 
| @@ -81,7 +83,7 @@ describe "OptionParser" do | |
| 81 83 | 
             
                Spec::Runner::OptionParser.stub!(:spec_command?).and_return(true)
         | 
| 82 84 | 
             
                options = parse([])
         | 
| 83 85 | 
             
                @out.rewind
         | 
| 84 | 
            -
                @out.read.should match(/Usage: spec \(FILE | 
| 86 | 
            +
                @out.read.should match(/Usage: spec \(FILE\(:LINE\)\?\|DIRECTORY\|GLOB\)\+ \[options\]/m)
         | 
| 85 87 | 
             
              end
         | 
| 86 88 |  | 
| 87 89 | 
             
              it "should not print help to stdout if no args and NOT spec_command?" do
         | 
| @@ -94,7 +96,7 @@ describe "OptionParser" do | |
| 94 96 | 
             
              it "should print help to stdout" do
         | 
| 95 97 | 
             
                options = parse(["--help"])
         | 
| 96 98 | 
             
                @out.rewind
         | 
| 97 | 
            -
                @out.read.should match(/Usage: spec \(FILE | 
| 99 | 
            +
                @out.read.should match(/Usage: spec \(FILE\(:LINE\)\?\|DIRECTORY\|GLOB\)\+ \[options\]/m)
         | 
| 98 100 | 
             
              end
         | 
| 99 101 |  | 
| 100 102 | 
             
              it "should print instructions about how to require missing formatter" do
         | 
| @@ -169,14 +171,14 @@ describe "OptionParser" do | |
| 169 171 | 
             
                options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
         | 
| 170 172 | 
             
              end
         | 
| 171 173 |  | 
| 172 | 
            -
              it "should use  | 
| 174 | 
            +
              it "should use silent formatter when format is s" do
         | 
| 173 175 | 
             
                options = parse(["--format", "l"])
         | 
| 174 | 
            -
                options.formatters[0].class.should equal(Spec::Runner::Formatter:: | 
| 176 | 
            +
                options.formatters[0].class.should equal(Spec::Runner::Formatter::SilentFormatter)
         | 
| 175 177 | 
             
              end
         | 
| 176 178 |  | 
| 177 | 
            -
              it "should use  | 
| 179 | 
            +
              it "should use silent formatter when format is silent" do
         | 
| 178 180 | 
             
                options = parse(["--format", "silent"])
         | 
| 179 | 
            -
                options.formatters[0].class.should equal(Spec::Runner::Formatter:: | 
| 181 | 
            +
                options.formatters[0].class.should equal(Spec::Runner::Formatter::SilentFormatter)
         | 
| 180 182 | 
             
              end
         | 
| 181 183 |  | 
| 182 184 | 
             
              it "should use html formatter with explicit output when format is html:test.html" do
         | 
| @@ -279,40 +281,87 @@ describe "OptionParser" do | |
| 279 281 | 
             
                  options.filename_pattern = "*_fixture.rb"
         | 
| 280 282 | 
             
                  options
         | 
| 281 283 | 
             
                end
         | 
| 282 | 
            -
             | 
| 283 | 
            -
                 | 
| 284 | 
            -
                   | 
| 285 | 
            -
             | 
| 286 | 
            -
             | 
| 287 | 
            -
             | 
| 288 | 
            -
                  options.examples.should eql(["d"])
         | 
| 289 | 
            -
                end
         | 
| 290 | 
            -
              
         | 
| 291 | 
            -
                it "should fail with error message if file is dir along with --line" do
         | 
| 292 | 
            -
                  options = parse([dir, "--line", "169"])
         | 
| 293 | 
            -
                  options.line_number.should == 169
         | 
| 294 | 
            -
                  options.run_examples
         | 
| 295 | 
            -
                  @err.string.should match(/You must specify one file, not a directory when using the --line option/n)
         | 
| 296 | 
            -
                end
         | 
| 297 | 
            -
              
         | 
| 298 | 
            -
                it "should fail with error message if file does not exist along with --line" do
         | 
| 299 | 
            -
                  options = parse(["some file", "--line", "169"])
         | 
| 300 | 
            -
                  proc do
         | 
| 284 | 
            +
             | 
| 285 | 
            +
                describe 'with the --line flag' do
         | 
| 286 | 
            +
                  it "should correctly identify the spec" do
         | 
| 287 | 
            +
                    options = parse([file, "--line", "13"])
         | 
| 288 | 
            +
                    options.line_number.should == 13
         | 
| 289 | 
            +
                    options.examples.should be_empty
         | 
| 301 290 | 
             
                    options.run_examples
         | 
| 302 | 
            -
             | 
| 303 | 
            -
             | 
| 304 | 
            -
             | 
| 305 | 
            -
             | 
| 306 | 
            -
             | 
| 307 | 
            -
             | 
| 308 | 
            -
             | 
| 291 | 
            +
                    options.examples.should eql(["d"])
         | 
| 292 | 
            +
                  end
         | 
| 293 | 
            +
             | 
| 294 | 
            +
                  it "should fail with error message if specified file is a dir" do
         | 
| 295 | 
            +
                    options = parse([dir, "--line", "169"])
         | 
| 296 | 
            +
                    options.line_number.should == 169
         | 
| 297 | 
            +
                    options.run_examples
         | 
| 298 | 
            +
                    @err.string.should match(/You must specify one file, not a directory when providing a line number/n)
         | 
| 299 | 
            +
                  end
         | 
| 300 | 
            +
               
         | 
| 301 | 
            +
                
         | 
| 302 | 
            +
                  it "should fail with error message if file does not exist" do
         | 
| 303 | 
            +
                    options = parse(["some file", "--line", "169"])
         | 
| 304 | 
            +
                    proc do
         | 
| 305 | 
            +
                      options.run_examples
         | 
| 306 | 
            +
                    end.should raise_error
         | 
| 307 | 
            +
                  end
         | 
| 308 | 
            +
                
         | 
| 309 | 
            +
                  it "should fail with error message if more than one files are specified" do
         | 
| 310 | 
            +
                    options = parse([file, file, "--line", "169"])
         | 
| 311 | 
            +
                    options.run_examples
         | 
| 312 | 
            +
                    @err.string.should match(/Only one file can be specified when providing a line number/n)
         | 
| 313 | 
            +
                  end
         | 
| 314 | 
            +
                
         | 
| 315 | 
            +
                  it "should fail with error message if using simultaneously with --example" do
         | 
| 316 | 
            +
                    options = parse([file, "--example", "some example", "--line", "169"])
         | 
| 317 | 
            +
                    options.run_examples
         | 
| 318 | 
            +
                    @err.string.should match(/You cannot use --example and specify a line number/n)
         | 
| 319 | 
            +
                  end
         | 
| 309 320 | 
             
                end
         | 
| 310 | 
            -
             | 
| 311 | 
            -
                 | 
| 312 | 
            -
             | 
| 313 | 
            -
                   | 
| 314 | 
            -
             | 
| 321 | 
            +
             | 
| 322 | 
            +
                describe 'with the colon syntax (filename:LINE_NUMBER)' do
         | 
| 323 | 
            +
             | 
| 324 | 
            +
                  it "should strip the line number from the file name" do
         | 
| 325 | 
            +
                    options = parse(["#{file}:13"])
         | 
| 326 | 
            +
                    options.files.should include(file)
         | 
| 327 | 
            +
                  end
         | 
| 328 | 
            +
             | 
| 329 | 
            +
                  it "should correctly identify the spec" do
         | 
| 330 | 
            +
                    options = parse(["#{file}:13"])
         | 
| 331 | 
            +
                    options.line_number.should == 13
         | 
| 332 | 
            +
                    options.examples.should be_empty
         | 
| 333 | 
            +
                    options.run_examples
         | 
| 334 | 
            +
                    options.examples.should eql(["d"])
         | 
| 335 | 
            +
                  end
         | 
| 336 | 
            +
             | 
| 337 | 
            +
                  it "should fail with error message if specified file is a dir" do
         | 
| 338 | 
            +
                    options = parse(["#{dir}:169"])
         | 
| 339 | 
            +
                    options.line_number.should == 169
         | 
| 340 | 
            +
                    options.run_examples
         | 
| 341 | 
            +
                    @err.string.should match(/You must specify one file, not a directory when providing a line number/n)
         | 
| 342 | 
            +
                  end
         | 
| 343 | 
            +
               
         | 
| 344 | 
            +
                
         | 
| 345 | 
            +
                  it "should fail with error message if file does not exist" do
         | 
| 346 | 
            +
                    options = parse(["some file:169"])
         | 
| 347 | 
            +
                    proc do
         | 
| 348 | 
            +
                      options.run_examples
         | 
| 349 | 
            +
                    end.should raise_error
         | 
| 350 | 
            +
                  end
         | 
| 351 | 
            +
                
         | 
| 352 | 
            +
                  it "should fail with error message if more than one files are specified" do
         | 
| 353 | 
            +
                    options = parse([file, "#{file}:169"])
         | 
| 354 | 
            +
                    options.run_examples
         | 
| 355 | 
            +
                    @err.string.should match(/Only one file can be specified when providing a line number/n)
         | 
| 356 | 
            +
                  end
         | 
| 357 | 
            +
                
         | 
| 358 | 
            +
                  it "should fail with error message if using simultaneously with --example" do
         | 
| 359 | 
            +
                    options = parse(["#{file}:169", "--example", "some example"])
         | 
| 360 | 
            +
                    options.run_examples
         | 
| 361 | 
            +
                    @err.string.should match(/You cannot use --example and specify a line number/n)
         | 
| 362 | 
            +
                  end
         | 
| 315 363 | 
             
                end
         | 
| 364 | 
            +
             | 
| 316 365 | 
             
              end
         | 
| 317 366 |  | 
| 318 367 | 
             
              if [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM}
         | 
| @@ -350,12 +399,31 @@ describe "OptionParser" do | |
| 350 399 | 
             
                options = parse(["--options", File.dirname(__FILE__) + "/spec_drb.opts"])    
         | 
| 351 400 | 
             
              end
         | 
| 352 401 |  | 
| 353 | 
            -
              it "should send all the arguments  | 
| 402 | 
            +
              it "should send all the arguments other than --drb back to the parser after parsing options" do
         | 
| 354 403 | 
             
                Spec::Runner::DrbCommandLine.should_receive(:run).and_return do |options|
         | 
| 355 404 | 
             
                  options.argv.should == ["example_file.rb", "--colour"]
         | 
| 356 405 | 
             
                end
         | 
| 357 406 | 
             
                options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"])    
         | 
| 358 407 | 
             
              end
         | 
| 408 | 
            +
              
         | 
| 409 | 
            +
              it "runs specs locally if no drb is running when --drb is specified" do
         | 
| 410 | 
            +
                Spec::Runner::DrbCommandLine.should_receive(:run).and_return(false)
         | 
| 411 | 
            +
                options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"])    
         | 
| 412 | 
            +
                options.__send__(:examples_should_be_run?).should be_true
         | 
| 413 | 
            +
              end
         | 
| 414 | 
            +
             | 
| 415 | 
            +
              it "says its running specs locally if no drb is running when --drb is specified" do
         | 
| 416 | 
            +
                Spec::Runner::DrbCommandLine.should_receive(:run).and_return(false)
         | 
| 417 | 
            +
                options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"])    
         | 
| 418 | 
            +
                options.error_stream.rewind
         | 
| 419 | 
            +
                options.error_stream.string.should =~ /Running specs locally/
         | 
| 420 | 
            +
              end
         | 
| 421 | 
            +
             | 
| 422 | 
            +
              it "does not run specs locally if drb is running when --drb is specified" do
         | 
| 423 | 
            +
                Spec::Runner::DrbCommandLine.should_receive(:run).and_return(true)
         | 
| 424 | 
            +
                options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"])    
         | 
| 425 | 
            +
                options.__send__(:examples_should_be_run?).should be_false
         | 
| 426 | 
            +
              end
         | 
| 359 427 |  | 
| 360 428 | 
             
              it "should read spaced and multi-line options from file when --options is specified" do
         | 
| 361 429 | 
             
                options = parse(["--options", File.dirname(__FILE__) + "/spec_spaced.opts"])
         | 
| @@ -35,12 +35,12 @@ module Spec | |
| 35 35 | 
             
                  end
         | 
| 36 36 |  | 
| 37 37 | 
             
                  it "should tell formatter when example_group is added" do
         | 
| 38 | 
            -
                    formatter.should_receive(: | 
| 38 | 
            +
                    formatter.should_receive(:example_group_started).with(example_group_proxy)
         | 
| 39 39 | 
             
                    example_group.notify(reporter)
         | 
| 40 40 | 
             
                  end
         | 
| 41 41 |  | 
| 42 42 | 
             
                  it "should handle multiple example_groups with same name" do
         | 
| 43 | 
            -
                    formatter.should_receive(: | 
| 43 | 
            +
                    formatter.should_receive(:example_group_started).exactly(3).times
         | 
| 44 44 | 
             
                    formatter.should_receive(:example_started).exactly(3).times
         | 
| 45 45 | 
             
                    formatter.should_receive(:example_passed).exactly(3).times
         | 
| 46 46 | 
             
                    formatter.should_receive(:start_dump)
         | 
| @@ -68,11 +68,11 @@ module Spec | |
| 68 68 | 
             
                    passing = ::Spec::Example::ExampleGroupDouble.new(example_proxy)
         | 
| 69 69 | 
             
                    failing = ::Spec::Example::ExampleGroupDouble.new(example_proxy)
         | 
| 70 70 |  | 
| 71 | 
            -
                    formatter.should_receive(: | 
| 71 | 
            +
                    formatter.should_receive(:example_group_started).exactly(2).times
         | 
| 72 72 | 
             
                    formatter.should_receive(:example_passed).with(description_of(passing)).exactly(2).times
         | 
| 73 73 | 
             
                    formatter.should_receive(:example_failed).with(description_of(failing), 1, failure)
         | 
| 74 74 | 
             
                    formatter.should_receive(:example_failed).with(description_of(failing), 2, failure)
         | 
| 75 | 
            -
                    formatter.should_receive(:dump_failure).exactly(2).times
         | 
| 75 | 
            +
                    formatter.should_receive(:dump_failure).exactly(2).times 
         | 
| 76 76 | 
             
                    formatter.should_receive(:start_dump)
         | 
| 77 77 | 
             
                    formatter.should_receive(:dump_pending)
         | 
| 78 78 | 
             
                    formatter.should_receive(:close).with(no_args)
         | 
| @@ -163,38 +163,37 @@ module Spec | |
| 163 163 | 
             
                  describe "reporting one pending example (ExamplePendingError)" do
         | 
| 164 164 | 
             
                    before :each do
         | 
| 165 165 | 
             
                      @pending_error = Spec::Example::ExamplePendingError.new("reason")
         | 
| 166 | 
            -
                      @pending_caller = @pending_error.pending_caller
         | 
| 167 166 | 
             
                    end
         | 
| 168 167 |  | 
| 169 168 | 
             
                    it "should tell formatter example is pending" do
         | 
| 170 169 | 
             
                      example = ExampleGroup.new(example_proxy)
         | 
| 171 | 
            -
                      formatter.should_receive(:example_pending).with(description_of(example), "reason" | 
| 172 | 
            -
                      formatter.should_receive(: | 
| 170 | 
            +
                      formatter.should_receive(:example_pending).with(description_of(example), "reason")
         | 
| 171 | 
            +
                      formatter.should_receive(:example_group_started).with(example_group_proxy)
         | 
| 173 172 | 
             
                      example_group.notify(reporter)
         | 
| 174 173 | 
             
                      reporter.example_finished(description_of(example), @pending_error)
         | 
| 175 174 | 
             
                    end
         | 
| 176 175 |  | 
| 177 176 | 
             
                    it "should account for pending example in stats" do
         | 
| 178 177 | 
             
                      example = ExampleGroup.new(example_proxy)
         | 
| 179 | 
            -
                      formatter.should_receive(:example_pending).with(description_of(example), "reason" | 
| 178 | 
            +
                      formatter.should_receive(:example_pending).with(description_of(example), "reason")
         | 
| 180 179 | 
             
                      formatter.should_receive(:start_dump)
         | 
| 181 180 | 
             
                      formatter.should_receive(:dump_pending)
         | 
| 182 181 | 
             
                      formatter.should_receive(:dump_summary).with(anything(), 1, 0, 1)
         | 
| 183 182 | 
             
                      formatter.should_receive(:close).with(no_args)
         | 
| 184 | 
            -
                      formatter.should_receive(: | 
| 183 | 
            +
                      formatter.should_receive(:example_group_started).with(example_group_proxy)
         | 
| 185 184 | 
             
                      example_group.notify(reporter)
         | 
| 186 185 | 
             
                      reporter.example_finished(description_of(example), @pending_error)
         | 
| 187 186 | 
             
                      reporter.dump
         | 
| 188 187 | 
             
                    end
         | 
| 189 188 |  | 
| 190 | 
            -
                    describe "to formatters which have example_pending's arity of  | 
| 189 | 
            +
                    describe "to formatters which have example_pending's arity of 3 (which is now deprecated)" do
         | 
| 191 190 | 
             
                      before :each do
         | 
| 192 | 
            -
                         | 
| 191 | 
            +
                        Spec.stub!(:warn)
         | 
| 193 192 |  | 
| 194 193 | 
             
                        @deprecated_formatter = Class.new(@formatter.class) do
         | 
| 195 194 | 
             
                          attr_reader :example_passed_to_method, :message_passed_to_method
         | 
| 196 195 |  | 
| 197 | 
            -
                          def example_pending(example_passed_to_method, message_passed_to_method)
         | 
| 196 | 
            +
                          def example_pending(example_passed_to_method, message_passed_to_method, deprecated_third_arg=nil)
         | 
| 198 197 | 
             
                            @example_passed_to_method = example_passed_to_method
         | 
| 199 198 | 
             
                            @message_passed_to_method = message_passed_to_method
         | 
| 200 199 | 
             
                          end
         | 
| @@ -204,12 +203,12 @@ module Spec | |
| 204 203 | 
             
                      end
         | 
| 205 204 |  | 
| 206 205 | 
             
                      it "should pass the correct example description to the formatter" do
         | 
| 207 | 
            -
                         | 
| 208 | 
            -
                        example = ExampleGroup.new( | 
| 206 | 
            +
                        proxy = Spec::Example::ExampleProxy.new("name")
         | 
| 207 | 
            +
                        example = ExampleGroup.new(proxy)
         | 
| 209 208 | 
             
                        example_group.notify(reporter)
         | 
| 210 209 | 
             
                        reporter.example_finished(description_of(example), @pending_error)
         | 
| 211 210 |  | 
| 212 | 
            -
                        @deprecated_formatter.example_passed_to_method.should ==  | 
| 211 | 
            +
                        @deprecated_formatter.example_passed_to_method.should == proxy
         | 
| 213 212 | 
             
                      end
         | 
| 214 213 |  | 
| 215 214 | 
             
                      it "should pass the correct pending error message to the formatter" do
         | 
| @@ -221,7 +220,7 @@ module Spec | |
| 221 220 | 
             
                      end
         | 
| 222 221 |  | 
| 223 222 | 
             
                      it "should raise a deprecation warning" do
         | 
| 224 | 
            -
                         | 
| 223 | 
            +
                        Spec.should_receive(:warn)
         | 
| 225 224 |  | 
| 226 225 | 
             
                        example = ExampleGroup.new(example_proxy)
         | 
| 227 226 | 
             
                        example_group.notify(reporter)
         | 
| @@ -235,7 +234,7 @@ module Spec | |
| 235 234 | 
             
                      formatter.should_receive(:example_failed) do |name, counter, failure|
         | 
| 236 235 | 
             
                        failure.header.should == "'example_group should do something' FIXED"
         | 
| 237 236 | 
             
                      end
         | 
| 238 | 
            -
                      formatter.should_receive(: | 
| 237 | 
            +
                      formatter.should_receive(:example_group_started).with(example_group_proxy)
         | 
| 239 238 | 
             
                      example_group.notify(reporter)
         | 
| 240 239 | 
             
                      reporter.example_finished(description_of(example_group.examples.first), Spec::Example::PendingExampleFixedError.new("reason"))
         | 
| 241 240 | 
             
                    end
         |