Hello community,

here is the log from the commit of package rubygem-rspec-core for 
openSUSE:Factory checked in at 2019-12-28 13:39:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rspec-core (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-rspec-core.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-rspec-core"

Sat Dec 28 13:39:58 2019 rev:27 rq:747739 version:3.9.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rspec-core/rubygem-rspec-core.changes    
2019-07-22 12:16:12.707731034 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-rspec-core.new.6675/rubygem-rspec-core.changes
  2019-12-28 13:40:05.898920253 +0100
@@ -1,0 +2,26 @@
+Tue Nov 12 14:46:03 UTC 2019 - Manuel Schnitzer <[email protected]>
+
+- updated to version 3.9.0
+
+  [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.2...v3.9.0)
+
+  Enhancements:
+  * Improve the handling of errors during loading support files, if a file
+    errors before loading specs, RSpec will now skip loading the specs.
+    (David Rodríguez, #2568)
+  * Add support for --example-matches to run examples by regular expression.
+    (Sam Joseph, Matt Rider, @okothkongo1, #2586)
+  * Add `did_you_mean` suggestions for file names encountering a `LoadError`
+    outside of examples. (@obromios, #2601)
+  * Add a minimalist quick fix style formatter, only outputs failures as
+    `file:line:message`. (Romain Tartière, #2614)
+  * Convert string number values to integer when used for 
`RSpec::Configuration#fail_fast`
+    (Viktor Fonic, #2634)
+  * Issue warning when invalid values are used for 
`RSpec::Configuration#fail_fast`
+    (Viktor Fonic, #2634)
+  * Add support for running the Rake task in a clean environment.
+    (Jon Rowe, #2632)
+  * Indent messages by there example group / example in the documentation 
formatter.
+    (Samuel Williams, #2649)
+
+-------------------------------------------------------------------

Old:
----
  rspec-core-3.8.2.gem

New:
----
  rspec-core-3.9.0.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-rspec-core.spec ++++++
--- /var/tmp/diff_new_pack.Y32z1T/_old  2019-12-28 13:40:06.554920583 +0100
+++ /var/tmp/diff_new_pack.Y32z1T/_new  2019-12-28 13:40:06.558920585 +0100
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-rspec-core
-Version:        3.8.2
+Version:        3.9.0
 Release:        0
 %define mod_name rspec-core
 %define mod_full_name %{mod_name}-%{version}

++++++ rspec-core-3.8.2.gem -> rspec-core-3.9.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Changelog.md new/Changelog.md
--- old/Changelog.md    2019-06-29 12:58:42.000000000 +0200
+++ new/Changelog.md    2019-10-07 23:38:46.000000000 +0200
@@ -1,3 +1,25 @@
+### 3.9.0 / 2019-10-07
+[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.2...v3.9.0)
+
+Enhancements:
+* Improve the handling of errors during loading support files, if a file
+  errors before loading specs, RSpec will now skip loading the specs.
+  (David Rodríguez, #2568)
+* Add support for --example-matches to run examples by regular expression.
+  (Sam Joseph, Matt Rider, @okothkongo1, #2586)
+* Add `did_you_mean` suggestions for file names encountering a `LoadError`
+  outside of examples. (@obromios, #2601)
+* Add a minimalist quick fix style formatter, only outputs failures as
+  `file:line:message`. (Romain Tartière, #2614)
+* Convert string number values to integer when used for 
`RSpec::Configuration#fail_fast`
+  (Viktor Fonic, #2634)
+* Issue warning when invalid values are used for 
`RSpec::Configuration#fail_fast`
+  (Viktor Fonic, #2634)
+* Add support for running the Rake task in a clean environment.
+  (Jon Rowe, #2632)
+* Indent messages by there example group / example in the documentation 
formatter.
+  (Samuel Williams, #2649)
+
 ### 3.8.2 / 2019-06-29
 [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.1...v3.8.2)
 
@@ -8,7 +30,7 @@
   (Myron Marston, #2635).
 
 ### 3.8.1 / 2019-06-13
-[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.0...3.8.1)
+[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.0...v3.8.1)
 
 Bug Fixes:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       2019-06-29 12:58:42.000000000 +0200
+++ new/README.md       2019-10-07 23:38:46.000000000 +0200
@@ -53,7 +53,7 @@
 
 ## Nested Groups
 
-You can also declare nested nested groups using the `describe` or `context`
+You can also declare nested groups using the `describe` or `context`
 methods:
 
 ```ruby
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
Binary files old/checksums.yaml.gz.sig and new/checksums.yaml.gz.sig differ
Binary files old/data.tar.gz.sig and new/data.tar.gz.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/bisect/server.rb 
new/lib/rspec/core/bisect/server.rb
--- old/lib/rspec/core/bisect/server.rb 2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/bisect/server.rb 2019-10-07 23:38:46.000000000 +0200
@@ -33,7 +33,7 @@
 
         def start
           # Only allow remote DRb requests from this machine.
-          DRb.install_acl ACL.new(%w[ deny all allow localhost allow 127.0.0.1 
])
+          DRb.install_acl ACL.new(%w[ deny all allow localhost allow 127.0.0.1 
allow ::1 ])
 
           # We pass `nil` as the first arg to allow it to pick a DRb port.
           @drb = DRb.start_service(nil, self)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/configuration.rb 
new/lib/rspec/core/configuration.rb
--- old/lib/rspec/core/configuration.rb 2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/configuration.rb 2019-10-07 23:38:46.000000000 +0200
@@ -202,10 +202,33 @@
         only_failures? && !example_status_persistence_file_path
       end
 
-      # @macro add_setting
+      # @macro define_reader
       # If specified, indicates the number of failures required before cleaning
-      # up and exit (default: `nil`).
-      add_setting :fail_fast
+      # up and exit (default: `nil`). Can also be `true` to fail and exit on 
first
+      # failure
+      define_reader :fail_fast
+
+      # @see fail_fast
+      def fail_fast=(value)
+        case value
+        when true, 'true'
+          @fail_fast = true
+        when false, 'false', 0
+          @fail_fast = false
+        when nil
+          @fail_fast = nil
+        else
+          @fail_fast = value.to_i
+
+          if value.to_i == 0
+            # TODO: in RSpec 4, consider raising an error here.
+            RSpec.warning "Cannot set `RSpec.configuration.fail_fast`" \
+              " to `#{value.inspect}`. Only `true`, `false`, `nil` and 
integers" \
+              " are valid values."
+            @fail_fast = true
+          end
+        end
+      end
 
       # @macro add_setting
       # Prints the formatter output of your suite without running any
@@ -1106,7 +1129,7 @@
       #
       #   # This lets you do this:
       #
-      #   describe Thing do
+      #   RSpec.describe Thing do
       #     pending "does something" do
       #       thing = Thing.new
       #     end
@@ -1114,7 +1137,7 @@
       #
       #   # ... which is the equivalent of
       #
-      #   describe Thing do
+      #   RSpec.describe Thing do
       #     it "does something", :pending => true do
       #       thing = Thing.new
       #     end
@@ -1167,7 +1190,7 @@
       #
       #   # allows the user to include a shared example group like:
       #
-      #   describe Entity do
+      #   RSpec.describe Entity do
       #     it_has_behavior 'sortability' do
       #       let(:sortable) { Entity.new }
       #     end
@@ -1718,7 +1741,7 @@
       #     rspec.expose_current_running_example_as :example
       #   end
       #
-      #   describe MyClass do
+      #   RSpec.describe MyClass do
       #     before do
       #       # `example` can be used here because of the above config.
       #       do_something if example.metadata[:type] == "foo"
@@ -2051,6 +2074,11 @@
 
       def load_file_handling_errors(method, file)
         __send__(method, file)
+      rescue LoadError => ex
+        relative_file = Metadata.relative_path(file)
+        suggestions = DidYouMean.new(relative_file).call
+        reporter.notify_non_example_exception(ex, "An error occurred while 
loading #{relative_file}.#{suggestions}")
+        RSpec.world.wants_to_quit = true
       rescue Support::AllExceptionsExceptOnesWeMustNotRescue => ex
         relative_file = Metadata.relative_path(file)
         reporter.notify_non_example_exception(ex, "An error occurred while 
loading #{relative_file}.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/did_you_mean.rb 
new/lib/rspec/core/did_you_mean.rb
--- old/lib/rspec/core/did_you_mean.rb  1970-01-01 01:00:00.000000000 +0100
+++ new/lib/rspec/core/did_you_mean.rb  2019-10-07 23:38:46.000000000 +0200
@@ -0,0 +1,46 @@
+module RSpec
+  module Core
+    # @private
+    # Wrapper around Ruby's `DidYouMean::SpellChecker` when available to 
provide file name suggestions.
+    class DidYouMean
+      attr_reader :relative_file_name
+
+      def initialize(relative_file_name)
+        @relative_file_name = relative_file_name
+      end
+
+      if defined?(::DidYouMean::SpellChecker)
+        # provide probable suggestions
+        def call
+          checker = ::DidYouMean::SpellChecker.new(:dictionary => 
Dir["spec/**/*.rb"])
+          probables = checker.correct(relative_file_name.sub('./', ''))[0..2]
+          return '' unless probables.any?
+
+          formats probables
+        end
+      else
+        # return a hint if API for ::DidYouMean::SpellChecker not supported
+        def call
+          "\nHint: Install the `did_you_mean` gem in order to provide 
suggestions for similarly named files."
+        end
+      end
+
+      private
+
+      def formats(probables)
+        rspec_format = probables.map { |s, _| "rspec ./#{s}" }
+        red_font(top_and_tail rspec_format)
+      end
+
+      def top_and_tail(rspec_format)
+        spaces = ' ' * 20
+        rspec_format.insert(0, ' - Did you mean?').join("\n#{spaces}") + "\n"
+      end
+
+      def red_font(mytext)
+        colorizer = ::RSpec::Core::Formatters::ConsoleCodes
+        colorizer.wrap mytext, :failure
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/example_group.rb 
new/lib/rspec/core/example_group.rb
--- old/lib/rspec/core/example_group.rb 2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/example_group.rb 2019-10-07 23:38:46.000000000 +0200
@@ -7,7 +7,7 @@
     # ExampleGroup and {Example} are the main structural elements of
     # rspec-core. Consider this example:
     #
-    #     describe Thing do
+    #     RSpec.describe Thing do
     #       it "does something" do
     #       end
     #     end
@@ -90,7 +90,7 @@
       # Returns the class or module passed to the `describe` method (or alias).
       # Returns nil if the subject is not a class or module.
       # @example
-      #     describe Thing do
+      #     RSpec.describe Thing do
       #       it "does something" do
       #         described_class == Thing
       #       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/formatters/documentation_formatter.rb 
new/lib/rspec/core/formatters/documentation_formatter.rb
--- old/lib/rspec/core/formatters/documentation_formatter.rb    2019-06-29 
12:58:42.000000000 +0200
+++ new/lib/rspec/core/formatters/documentation_formatter.rb    2019-10-07 
23:38:46.000000000 +0200
@@ -6,12 +6,19 @@
     module Formatters
       # @private
       class DocumentationFormatter < BaseTextFormatter
-        Formatters.register self, :example_group_started, 
:example_group_finished,
+        Formatters.register self, :example_started, :example_group_started, 
:example_group_finished,
                             :example_passed, :example_pending, :example_failed
 
         def initialize(output)
           super
           @group_level = 0
+
+          @example_running = false
+          @messages = []
+        end
+
+        def example_started(_notification)
+          @example_running = true
         end
 
         def example_group_started(notification)
@@ -27,19 +34,44 @@
 
         def example_passed(passed)
           output.puts passed_output(passed.example)
+
+          flush_messages
+          @example_running = false
         end
 
         def example_pending(pending)
           output.puts pending_output(pending.example,
                                      
pending.example.execution_result.pending_message)
+
+          flush_messages
+          @example_running = false
         end
 
         def example_failed(failure)
           output.puts failure_output(failure.example)
+
+          flush_messages
+          @example_running = false
+        end
+
+        def message(notification)
+          if @example_running
+            @messages << notification.message
+          else
+            output.puts "#{current_indentation}#{notification.message}"
+          end
         end
 
       private
 
+        def flush_messages
+          @messages.each do |message|
+            output.puts "#{current_indentation(1)}#{message}"
+          end
+
+          @messages.clear
+        end
+
         def passed_output(example)
           
ConsoleCodes.wrap("#{current_indentation}#{example.description.strip}", 
:success)
         end
@@ -61,8 +93,8 @@
           @next_failure_index += 1
         end
 
-        def current_indentation
-          '  ' * @group_level
+        def current_indentation(offset=0)
+          '  ' * (@group_level + offset)
         end
       end
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/formatters/failure_list_formatter.rb 
new/lib/rspec/core/formatters/failure_list_formatter.rb
--- old/lib/rspec/core/formatters/failure_list_formatter.rb     1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/rspec/core/formatters/failure_list_formatter.rb     2019-10-07 
23:38:46.000000000 +0200
@@ -0,0 +1,23 @@
+RSpec::Support.require_rspec_core "formatters/base_formatter"
+
+module RSpec
+  module Core
+    module Formatters
+      # @private
+      class FailureListFormatter < BaseFormatter
+        Formatters.register self, :example_failed, :dump_profile, :message
+
+        def example_failed(failure)
+          output.puts 
"#{failure.example.location}:#{failure.example.description}"
+        end
+
+        # Discard profile and messages
+        #
+        # These outputs are not really relevant in the context of this failure
+        # list formatter.
+        def dump_profile(_profile); end
+        def message(_message); end
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/formatters.rb 
new/lib/rspec/core/formatters.rb
--- old/lib/rspec/core/formatters.rb    2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/formatters.rb    2019-10-07 23:38:46.000000000 +0200
@@ -74,6 +74,7 @@
   autoload :JsonFormatter,            'rspec/core/formatters/json_formatter'
   autoload :BisectDRbFormatter,       
'rspec/core/formatters/bisect_drb_formatter'
   autoload :ExceptionPresenter,       
'rspec/core/formatters/exception_presenter'
+  autoload :FailureListFormatter,     
'rspec/core/formatters/failure_list_formatter'
 
   # Register the formatter class
   # @param formatter_class [Class] formatter class to register
@@ -212,6 +213,8 @@
         JsonFormatter
       when 'bisect-drb'
         BisectDRbFormatter
+      when 'f', 'failures'
+        FailureListFormatter
       end
     end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/hooks.rb new/lib/rspec/core/hooks.rb
--- old/lib/rspec/core/hooks.rb 2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/hooks.rb 2019-10-07 23:38:46.000000000 +0200
@@ -60,7 +60,8 @@
       #     before(:example)  # Declared in the current group.
       #
       # If more than one `before` is declared within any one scope, they are 
run
-      # in the order in which they are declared.
+      # in the order in which they are declared. Any `around` hooks will 
execute
+      # later than any `before` hook regardless of scope.
       #
       # ### Conditions
       #
@@ -74,11 +75,11 @@
       #       end
       #     end
       #
-      #     describe Something, :authorized => true do
+      #     RSpec.describe Something, :authorized => true do
       #       # The before hook will run in before each example in this group.
       #     end
       #
-      #     describe SomethingElse do
+      #     RSpec.describe SomethingElse do
       #       it "does something", :authorized => true do
       #         # The before hook will run before this example.
       #       end
@@ -159,7 +160,7 @@
       #
       # @example before(:example) declared in an {ExampleGroup}
       #
-      #     describe Thing do
+      #     RSpec.describe Thing do
       #       before(:example) do
       #         @thing = Thing.new
       #       end
@@ -171,7 +172,7 @@
       #
       # @example before(:context) declared in an {ExampleGroup}
       #
-      #     describe Parser do
+      #     RSpec.describe Parser do
       #       before(:context) do
       #         File.open(file_to_parse, 'w') do |f|
       #           f.write <<-CONTENT
@@ -261,7 +262,8 @@
       #
       # This is the reverse of the order in which `before` hooks are run.
       # Similarly, if more than one `after` is declared within any one scope,
-      # they are run in reverse order of that in which they are declared.
+      # they are run in reverse order of that in which they are declared. Also
+      # `around` hooks will all have run before any after hooks are invoked.
       #
       # @note The `:example` and `:context` scopes are also available as
       #       `:each` and `:all`, respectively. Use whichever you prefer.
@@ -329,6 +331,12 @@
       #     around(:example) {|ex| Database.transaction(&ex)}
       #     around(:example) {|ex| FakeFS(&ex)}
       #
+      # ### Order
+      #
+      # All `around` hooks execute immediately surrounding an example, this 
means
+      # that all `before` hooks will have run and no `after` hooks will have 
run yet.
+      #
+      # They are not a synonym for `before`/`after`.
       def around(*args, &block)
         hooks.register :prepend, :around, *args, &block
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/memoized_helpers.rb 
new/lib/rspec/core/memoized_helpers.rb
--- old/lib/rspec/core/memoized_helpers.rb      2019-06-29 12:58:42.000000000 
+0200
+++ new/lib/rspec/core/memoized_helpers.rb      2019-10-07 23:38:46.000000000 
+0200
@@ -10,7 +10,7 @@
       # @note `subject` was contributed by Joe Ferris to support the one-liner
       #   syntax embraced by shoulda matchers:
       #
-      #       describe Widget do
+      #       RSpec.describe Widget do
       #         it { is_expected.to validate_presence_of(:name) }
       #         # or
       #         it { should validate_presence_of(:name) }
@@ -23,7 +23,7 @@
       # @example
       #
       #   # Explicit declaration of subject.
-      #   describe Person do
+      #   RSpec.describe Person do
       #     subject { Person.new(:birthdate => 19.years.ago) }
       #     it "should be eligible to vote" do
       #       subject.should be_eligible_to_vote
@@ -32,7 +32,7 @@
       #   end
       #
       #   # Implicit subject => { Person.new }.
-      #   describe Person do
+      #   RSpec.describe Person do
       #     it "should be eligible to vote" do
       #       subject.should be_eligible_to_vote
       #       # ^ ^ explicit reference to subject not recommended
@@ -40,7 +40,7 @@
       #   end
       #
       #   # One-liner syntax - expectation is set on the subject.
-      #   describe Person do
+      #   RSpec.describe Person do
       #     it { is_expected.to be_eligible_to_vote }
       #     # or
       #     it { should be_eligible_to_vote }
@@ -67,7 +67,7 @@
       #
       # @example
       #
-      #   describe Person do
+      #   RSpec.describe Person do
       #     it { should be_eligible_to_vote }
       #   end
       #
@@ -86,7 +86,7 @@
       #
       # @example
       #
-      #   describe Person do
+      #   RSpec.describe Person do
       #     it { should_not be_eligible_to_vote }
       #   end
       #
@@ -270,7 +270,7 @@
         #
         # @example
         #
-        #   describe Thing do
+        #   RSpec.describe Thing do
         #     let(:thing) { Thing.new }
         #
         #     it "does something" do
@@ -342,7 +342,7 @@
         #     end
         #   end
         #
-        #   describe Thing do
+        #   RSpec.describe Thing do
         #     after(:example) { Thing.reset_count }
         #
         #     context "using let" do
@@ -398,13 +398,13 @@
         #
         # @example
         #
-        #   describe CheckingAccount, "with $50" do
+        #   RSpec.describe CheckingAccount, "with $50" do
         #     subject { CheckingAccount.new(Money.new(50, :USD)) }
         #     it { is_expected.to have_a_balance_of(Money.new(50, :USD)) }
         #     it { is_expected.not_to be_overdrawn }
         #   end
         #
-        #   describe CheckingAccount, "with a non-zero starting balance" do
+        #   RSpec.describe CheckingAccount, "with a non-zero starting balance" 
do
         #     subject(:account) { CheckingAccount.new(Money.new(50, :USD)) }
         #     it { is_expected.not_to be_overdrawn }
         #     it "has a balance equal to the starting balance" do
@@ -452,7 +452,7 @@
         #     end
         #   end
         #
-        #   describe Thing do
+        #   RSpec.describe Thing do
         #     after(:example) { Thing.reset_count }
         #
         #     context "using subject" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/metadata.rb 
new/lib/rspec/core/metadata.rb
--- old/lib/rspec/core/metadata.rb      2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/metadata.rb      2019-10-07 23:38:46.000000000 +0200
@@ -7,7 +7,7 @@
     # In addition to metadata that is used internally, this also stores
     # user-supplied metadata, e.g.
     #
-    #     describe Something, :type => :ui do
+    #     RSpec.describe Something, :type => :ui do
     #       it "does something", :slow => true do
     #         # ...
     #       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/option_parser.rb 
new/lib/rspec/core/option_parser.rb
--- old/lib/rspec/core/option_parser.rb 2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/option_parser.rb 2019-10-07 23:38:46.000000000 +0200
@@ -37,6 +37,7 @@
     # rubocop:disable Metrics/AbcSize
     # rubocop:disable CyclomaticComplexity
     # rubocop:disable PerceivedComplexity
+    # rubocop:disable Metrics/BlockLength
     def parser(options)
       OptionParser.new do |parser|
         parser.summary_width = 34
@@ -111,6 +112,7 @@
                   '  [d]ocumentation (group and example names)',
                   '  [h]tml',
                   '  [j]son',
+                  '  [f]ailures ("file:line:reason", suitable for editors 
integration)',
                   '  custom formatter class name') do |o|
           options[:formatters] ||= []
           options[:formatters] << [o]
@@ -226,6 +228,11 @@
           (options[:full_description] ||= []) << 
Regexp.compile(Regexp.escape(o))
         end
 
+        parser.on('-E', '--example-matches REGEX', "Run examples whose full 
nested names match REGEX (may be",
+                  "  used more than once)") do |o|
+          (options[:full_description] ||= []) << Regexp.compile(o)
+        end
+
         parser.on('-t', '--tag TAG[:VALUE]',
                   'Run examples with the specified tag, or exclude examples',
                   'by adding ~ before the tag.',
@@ -288,6 +295,7 @@
         end
       end
     end
+    # rubocop:enable Metrics/BlockLength
     # rubocop:enable Metrics/AbcSize
     # rubocop:enable MethodLength
     # rubocop:enable CyclomaticComplexity
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/rake_task.rb 
new/lib/rspec/core/rake_task.rb
--- old/lib/rspec/core/rake_task.rb     2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/rake_task.rb     2019-10-07 23:38:46.000000000 +0200
@@ -45,6 +45,21 @@
       # A message to print to stderr when there are failures.
       attr_accessor :failure_message
 
+      if RUBY_VERSION < "1.9.0" || Support::Ruby.jruby?
+        # Run RSpec with a clean (empty) environment is not supported
+        def with_clean_environment=(_value)
+          raise ArgumentError, "Running in a clean environment is not 
supported on Ruby versions before 1.9.0"
+        end
+
+        # Run RSpec with a clean (empty) environment is not supported
+        def with_clean_environment
+          false
+        end
+      else
+        # Run RSpec with a clean (empty) environment.
+        attr_accessor :with_clean_environment
+      end
+
       # Use verbose output. If this is set to true, the task will print the
       # executed spec command to stdout. Defaults to `true`.
       attr_accessor :verbose
@@ -76,7 +91,12 @@
         command = spec_command
         puts command if verbose
 
-        return if system(command)
+        if with_clean_environment
+          return if system({}, command, :unsetenv_others => true)
+        else
+          return if system(command)
+        end
+
         puts failure_message if failure_message
 
         return unless fail_on_error
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/reporter.rb 
new/lib/rspec/core/reporter.rb
--- old/lib/rspec/core/reporter.rb      2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/reporter.rb      2019-10-07 23:38:46.000000000 +0200
@@ -77,6 +77,14 @@
       end
     end
 
+    # @param exit_code [Integer] the exit_code to be return by the reporter
+    #
+    # Reports a run that exited early without having run any examples.
+    #
+    def exit_early(exit_code)
+      report(0) { exit_code }
+    end
+
     # @private
     def start(expected_example_count, time=RSpec::Core::Time.now)
       @start = time
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/runner.rb new/lib/rspec/core/runner.rb
--- old/lib/rspec/core/runner.rb        2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/runner.rb        2019-10-07 23:38:46.000000000 +0200
@@ -84,6 +84,8 @@
       # @param out [IO] output stream
       def run(err, out)
         setup(err, out)
+        return 
@configuration.reporter.exit_early(@configuration.failure_exit_code) if 
RSpec.world.wants_to_quit
+
         run_specs(@world.ordered_example_groups).tap do
           persist_example_statuses
         end
@@ -95,7 +97,10 @@
       # @param out [IO] output stream
       def setup(err, out)
         configure(err, out)
+        return if RSpec.world.wants_to_quit
+
         @configuration.load_spec_files
+      ensure
         @world.announce_filters
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/shared_example_group.rb 
new/lib/rspec/core/shared_example_group.rb
--- old/lib/rspec/core/shared_example_group.rb  2019-06-29 12:58:42.000000000 
+0200
+++ new/lib/rspec/core/shared_example_group.rb  2019-10-07 23:38:46.000000000 
+0200
@@ -76,7 +76,7 @@
       #     end
       #   end
       #
-      #   describe Account do
+      #   RSpec.describe Account do
       #     it_behaves_like "auditable" do
       #       let(:auditable) { Account.new }
       #     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/version.rb 
new/lib/rspec/core/version.rb
--- old/lib/rspec/core/version.rb       2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core/version.rb       2019-10-07 23:38:46.000000000 +0200
@@ -3,7 +3,7 @@
     # Version information for RSpec Core.
     module Version
       # Current version of RSpec Core, in semantic versioning format.
-      STRING = '3.8.2'
+      STRING = '3.9.0'
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core.rb new/lib/rspec/core.rb
--- old/lib/rspec/core.rb       2019-06-29 12:58:42.000000000 +0200
+++ new/lib/rspec/core.rb       2019-10-07 23:38:46.000000000 +0200
@@ -139,6 +139,7 @@
   module Core
     autoload :ExampleStatusPersister, "rspec/core/example_status_persister"
     autoload :Profiler,               "rspec/core/profiler"
+    autoload :DidYouMean,             "rspec/core/did_you_mean"
 
     # @private
     # This avoids issues with reporting time caused by examples that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2019-06-29 12:58:42.000000000 +0200
+++ new/metadata        2019-10-07 23:38:46.000000000 +0200
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: rspec-core
 version: !ruby/object:Gem::Version
-  version: 3.8.2
+  version: 3.9.0
 platform: ruby
 authors:
 - Steven Baker
@@ -46,7 +46,7 @@
   ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
   F3MdtaDehhjC
   -----END CERTIFICATE-----
-date: 2019-06-29 00:00:00.000000000 Z
+date: 2019-10-07 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: rspec-support
@@ -54,14 +54,14 @@
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
-        version: 3.8.0
+        version: 3.9.0
   type: :runtime
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
-        version: 3.8.0
+        version: 3.9.0
 - !ruby/object:Gem::Dependency
   name: cucumber
   requirement: !ruby/object:Gem::Requirement
@@ -96,14 +96,14 @@
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
-        version: 0.6.2
+        version: 0.14.9
   type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
-        version: 0.6.2
+        version: 0.14.9
 - !ruby/object:Gem::Dependency
   name: coderay
   requirement: !ruby/object:Gem::Requirement
@@ -199,6 +199,7 @@
 - lib/rspec/core/bisect/utilities.rb
 - lib/rspec/core/configuration.rb
 - lib/rspec/core/configuration_options.rb
+- lib/rspec/core/did_you_mean.rb
 - lib/rspec/core/drb.rb
 - lib/rspec/core/dsl.rb
 - lib/rspec/core/example.rb
@@ -216,6 +217,7 @@
 - lib/rspec/core/formatters/deprecation_formatter.rb
 - lib/rspec/core/formatters/documentation_formatter.rb
 - lib/rspec/core/formatters/exception_presenter.rb
+- lib/rspec/core/formatters/failure_list_formatter.rb
 - lib/rspec/core/formatters/fallback_message_formatter.rb
 - lib/rspec/core/formatters/helpers.rb
 - lib/rspec/core/formatters/html_formatter.rb
@@ -265,7 +267,7 @@
 - MIT
 metadata:
   bug_tracker_uri: https://github.com/rspec/rspec-core/issues
-  changelog_uri: https://github.com/rspec/rspec-core/blob/v3.8.2/Changelog.md
+  changelog_uri: https://github.com/rspec/rspec-core/blob/v3.9.0/Changelog.md
   documentation_uri: https://rspec.info/documentation/
   mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
   source_code_uri: https://github.com/rspec/rspec-core
@@ -285,8 +287,8 @@
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubygems_version: 3.0.3
+rubygems_version: 3.0.6
 signing_key: 
 specification_version: 4
-summary: rspec-core-3.8.2
+summary: rspec-core-3.9.0
 test_files: []
Binary files old/metadata.gz.sig and new/metadata.gz.sig differ


Reply via email to