Hello community,

here is the log from the commit of package rubygem-rspec-core for 
openSUSE:Factory checked in at 2016-03-07 13:22:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rspec-core (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-rspec-core.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-rspec-core"

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rspec-core/rubygem-rspec-core.changes    
2016-02-28 02:25:41.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.rubygem-rspec-core.new/rubygem-rspec-core.changes   
    2016-03-07 13:22:48.000000000 +0100
@@ -1,0 +2,23 @@
+Fri Feb 19 05:38:02 UTC 2016 - [email protected]
+
+- updated to version 3.4.3
+ see installed Changelog.md
+
+  ### Development
+  [Full 
Changelog](http://github.com/rspec/rspec-core/compare/v3.4.3...3-4-maintenance)
+  
+  ### 3.4.3 / 2016-02-19
+  [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.4.2...3.4.3)
+  
+  Bug Fixes:
+  
+  * Prevent a `TypeError` from occuring when running via the rake task when
+    Ruby crashes. (Patrik Wenger, #2161)
+  * Only consider example and group declaration lines from a specific file
+    when applying line number filtering, instead of considering all
+    declaration lines from all spec files. (Myron Marston, #2170)
+  * Fix failure snippet extraction so that snippets that contain `do-end` style
+    block and end with `end`-only line can be extracted properly.
+    (Yuji Nakayama, #2173)
+
+-------------------------------------------------------------------

Old:
----
  rspec-core-3.4.2.gem

New:
----
  rspec-core-3.4.3.gem

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

Other differences:
------------------
++++++ rubygem-rspec-core.spec ++++++
--- /var/tmp/diff_new_pack.KTocNs/_old  2016-03-07 13:22:48.000000000 +0100
+++ /var/tmp/diff_new_pack.KTocNs/_new  2016-03-07 13:22:48.000000000 +0100
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-rspec-core
-Version:        3.4.2
+Version:        3.4.3
 Release:        0
 %define mod_name rspec-core
 %define mod_full_name %{mod_name}-%{version}

++++++ rspec-core-3.4.2.gem -> rspec-core-3.4.3.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Changelog.md new/Changelog.md
--- old/Changelog.md    2016-01-27 00:11:21.000000000 +0100
+++ new/Changelog.md    2016-02-18 23:50:28.000000000 +0100
@@ -1,3 +1,20 @@
+### Development
+[Full 
Changelog](http://github.com/rspec/rspec-core/compare/v3.4.3...3-4-maintenance)
+
+### 3.4.3 / 2016-02-19
+[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.4.2...3.4.3)
+
+Bug Fixes:
+
+* Prevent a `TypeError` from occuring when running via the rake task when
+  Ruby crashes. (Patrik Wenger, #2161)
+* Only consider example and group declaration lines from a specific file
+  when applying line number filtering, instead of considering all
+  declaration lines from all spec files. (Myron Marston, #2170)
+* Fix failure snippet extraction so that snippets that contain `do-end` style
+  block and end with `end`-only line can be extracted properly.
+  (Yuji Nakayama, #2173)
+
 ### 3.4.2 / 2016-01-26
 [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.4.1...v3.4.2)
 
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
Files old/checksums.yaml.gz.sig and new/checksums.yaml.gz.sig differ
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/example_group.rb 
new/lib/rspec/core/example_group.rb
--- old/lib/rspec/core/example_group.rb 2016-01-27 00:11:21.000000000 +0100
+++ new/lib/rspec/core/example_group.rb 2016-02-18 23:50:28.000000000 +0100
@@ -347,7 +347,7 @@
         @descendant_filtered_examples = nil
         @_descendants = nil
         @parent_groups = nil
-        @declaration_line_numbers = nil
+        @declaration_locations = nil
       end
 
       # Adds an example to the example group
@@ -599,10 +599,10 @@
       end
 
       # @private
-      def self.declaration_line_numbers
-        @declaration_line_numbers ||= [metadata[:line_number]] +
-          examples.map { |e| e.metadata[:line_number] } +
-          FlatMap.flat_map(children, &:declaration_line_numbers)
+      def self.declaration_locations
+        @declaration_locations ||= [Metadata.location_tuple_from(metadata)] +
+          examples.map { |e| Metadata.location_tuple_from(e.metadata) } +
+          FlatMap.flat_map(children, &:declaration_locations)
       end
 
       # @return [String] the unique id of this example group. Pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/formatters/exception_presenter.rb 
new/lib/rspec/core/formatters/exception_presenter.rb
--- old/lib/rspec/core/formatters/exception_presenter.rb        2016-01-27 
00:11:21.000000000 +0100
+++ new/lib/rspec/core/formatters/exception_presenter.rb        2016-02-18 
23:50:28.000000000 +0100
@@ -92,9 +92,11 @@
 
       private
 
-        def final_exception(exception)
-          if exception.cause
-            final_exception(exception.cause)
+        def final_exception(exception, previous=[])
+          cause = exception.cause
+          if cause && !previous.include?(cause)
+            previous << cause
+            final_exception(cause, previous)
           else
             exception
           end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/formatters/snippet_extractor.rb 
new/lib/rspec/core/formatters/snippet_extractor.rb
--- old/lib/rspec/core/formatters/snippet_extractor.rb  2016-01-27 
00:11:21.000000000 +0100
+++ new/lib/rspec/core/formatters/snippet_extractor.rb  2016-02-18 
23:50:28.000000000 +0100
@@ -23,13 +23,6 @@
         if RSpec::Support::RubyFeatures.ripper_supported?
           NoExpressionAtLineError = Class.new(StandardError)
 
-          PAREN_TOKEN_TYPE_PAIRS = {
-            :on_lbracket    => :on_rbracket,
-            :on_lparen      => :on_rparen,
-            :on_lbrace      => :on_rbrace,
-            :on_heredoc_beg => :on_heredoc_end
-          }
-
           attr_reader :source, :beginning_line_number, :max_line_count
 
           def self.extract_expression_lines_at(file_path, 
beginning_line_number, max_line_count=nil)
@@ -64,29 +57,29 @@
           def line_range_of_expression
             @line_range_of_expression ||= begin
               line_range = line_range_of_location_nodes_in_expression
-              initial_unclosed_parens = 
unclosed_paren_tokens_in_line_range(line_range)
-              unclosed_parens = initial_unclosed_parens
+              initial_unclosed_tokens = 
unclosed_tokens_in_line_range(line_range)
+              unclosed_tokens = initial_unclosed_tokens
 
-              until (initial_unclosed_parens & unclosed_parens).empty?
+              until (initial_unclosed_tokens & unclosed_tokens).empty?
                 line_range = (line_range.begin)..(line_range.end + 1)
-                unclosed_parens = 
unclosed_paren_tokens_in_line_range(line_range)
+                unclosed_tokens = unclosed_tokens_in_line_range(line_range)
               end
 
               line_range
             end
           end
 
-          def unclosed_paren_tokens_in_line_range(line_range)
+          def unclosed_tokens_in_line_range(line_range)
             tokens = FlatMap.flat_map(line_range) do |line_number|
               source.tokens_by_line_number[line_number]
             end
 
             tokens.each_with_object([]) do |token, unclosed_tokens|
-              if PAREN_TOKEN_TYPE_PAIRS.keys.include?(token.type)
+              if token.opening?
                 unclosed_tokens << token
               else
                 index = unclosed_tokens.rindex do |unclosed_token|
-                  PAREN_TOKEN_TYPE_PAIRS[unclosed_token.type] == token.type
+                  unclosed_token.closed_by?(token)
                 end
                 unclosed_tokens.delete_at(index) if index
               end
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      2016-01-27 00:11:21.000000000 +0100
+++ new/lib/rspec/core/metadata.rb      2016-02-18 23:50:28.000000000 +0100
@@ -107,6 +107,11 @@
       end
 
       # @private
+      def self.location_tuple_from(metadata)
+        [metadata[:absolute_file_path], metadata[:line_number]]
+      end
+
+      # @private
       # Used internally to populate metadata hashes with computed keys
       # managed by RSpec.
       class HashPopulator
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/metadata_filter.rb 
new/lib/rspec/core/metadata_filter.rb
--- old/lib/rspec/core/metadata_filter.rb       2016-01-27 00:11:21.000000000 
+0100
+++ new/lib/rspec/core/metadata_filter.rb       2016-02-18 23:50:28.000000000 
+0100
@@ -15,9 +15,9 @@
         # @private
         def filter_applies?(key, value, metadata)
           silence_metadata_example_group_deprecations do
-            return location_filter_applies?(value, metadata)          if key 
== :locations
-            return id_filter_applies?(value, metadata)                if key 
== :ids
-            return filters_apply?(key, value, metadata)               if Hash 
=== value
+            return location_filter_applies?(value, metadata) if key == 
:locations
+            return id_filter_applies?(value, metadata)       if key == :ids
+            return filters_apply?(key, value, metadata)      if Hash === value
 
             return false unless metadata.key?(key)
             return true if TrueClass === value && !!metadata[key]
@@ -49,13 +49,14 @@
         end
 
         def location_filter_applies?(locations, metadata)
-          line_numbers = example_group_declaration_lines(locations, metadata)
-          line_number_filter_applies?(line_numbers, metadata)
-        end
+          Metadata.ascend(metadata).any? do |meta|
+            file_path = meta[:absolute_file_path]
+            line_num  = meta[:line_number]
 
-        def line_number_filter_applies?(line_numbers, metadata)
-          preceding_declaration_lines = line_numbers.map { |n| 
RSpec.world.preceding_declaration_line(n) }
-          !(relevant_line_numbers(metadata) & 
preceding_declaration_lines).empty?
+            locations[file_path].any? do |filter_line_num|
+              line_num == RSpec.world.preceding_declaration_line(file_path, 
filter_line_num)
+            end
+          end
         end
 
         def proc_filter_applies?(key, proc, metadata)
@@ -66,16 +67,6 @@
           end
         end
 
-        def relevant_line_numbers(metadata)
-          Metadata.ascend(metadata).map { |meta| meta[:line_number] }
-        end
-
-        def example_group_declaration_lines(locations, metadata)
-          FlatMap.flat_map(Metadata.ascend(metadata)) do |meta|
-            locations[meta[:absolute_file_path]]
-          end.uniq
-        end
-
         def filters_apply?(key, value, metadata)
           subhash = metadata[key]
           return false unless Hash === subhash || HashImitatable === subhash
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     2016-01-27 00:11:21.000000000 +0100
+++ new/lib/rspec/core/rake_task.rb     2016-02-18 23:50:28.000000000 +0100
@@ -81,7 +81,7 @@
 
         return unless fail_on_error
         $stderr.puts "#{command} failed" if verbose
-        exit $?.exitstatus
+        exit $?.exitstatus || 1
       end
 
     private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/source/token.rb 
new/lib/rspec/core/source/token.rb
--- old/lib/rspec/core/source/token.rb  2016-01-27 00:11:21.000000000 +0100
+++ new/lib/rspec/core/source/token.rb  2016-02-18 23:50:28.000000000 +0100
@@ -6,6 +6,17 @@
       # @private
       # A wrapper for Ripper token which is generated with `Ripper.lex`.
       class Token
+        CLOSING_TYPES_BY_OPENING_TYPE = {
+          :on_lbracket    => :on_rbracket,
+          :on_lparen      => :on_rparen,
+          :on_lbrace      => :on_rbrace,
+          :on_heredoc_beg => :on_heredoc_end
+        }.freeze
+
+        CLOSING_KEYWORDS_BY_OPENING_KEYWORD = {
+          'do' => 'end'
+        }.freeze
+
         attr_reader :token
 
         def self.tokens_from_ripper_tokens(ripper_tokens)
@@ -37,6 +48,38 @@
         def inspect
           "#<#{self.class} #{type} #{string.inspect}>"
         end
+
+        def keyword?
+          type == :on_kw
+        end
+
+        def opening?
+          opening_delimiter? || opening_keyword?
+        end
+
+        def closed_by?(other)
+          closed_by_delimiter?(other) || closed_by_keyword?(other)
+        end
+
+        private
+
+        def opening_delimiter?
+          CLOSING_TYPES_BY_OPENING_TYPE.key?(type)
+        end
+
+        def opening_keyword?
+          return false unless keyword?
+          CLOSING_KEYWORDS_BY_OPENING_KEYWORD.key?(string)
+        end
+
+        def closed_by_delimiter?(other)
+          other.type == CLOSING_TYPES_BY_OPENING_TYPE[type]
+        end
+
+        def closed_by_keyword?(other)
+          return false unless other.keyword?
+          other.string == CLOSING_KEYWORDS_BY_OPENING_KEYWORD[string]
+        end
       end
     end
   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       2016-01-27 00:11:21.000000000 +0100
+++ new/lib/rspec/core/version.rb       2016-02-18 23:50:28.000000000 +0100
@@ -3,7 +3,7 @@
     # Version information for RSpec Core.
     module Version
       # Current version of RSpec Core, in semantic versioning format.
-      STRING = '3.4.2'
+      STRING = '3.4.3'
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/world.rb new/lib/rspec/core/world.rb
--- old/lib/rspec/core/world.rb 2016-01-27 00:11:21.000000000 +0100
+++ new/lib/rspec/core/world.rb 2016-02-18 23:50:28.000000000 +0100
@@ -96,10 +96,12 @@
       # @api private
       #
       # Find line number of previous declaration.
-      def preceding_declaration_line(filter_line)
-        declaration_line_numbers.sort.inject(nil) do 
|highest_prior_declaration_line, line|
-          line <= filter_line ? line : highest_prior_declaration_line
+      def preceding_declaration_line(absolute_file_name, filter_line)
+        line_numbers = 
descending_declaration_line_numbers_by_file.fetch(absolute_file_name) do
+          return nil
         end
+
+        line_numbers.find { |num| num <= filter_line }
       end
 
       # @private
@@ -179,8 +181,22 @@
 
     private
 
-      def declaration_line_numbers
-        @declaration_line_numbers ||= FlatMap.flat_map(example_groups, 
&:declaration_line_numbers)
+      def descending_declaration_line_numbers_by_file
+        @descending_declaration_line_numbers_by_file ||= begin
+          declaration_locations = FlatMap.flat_map(example_groups, 
&:declaration_locations)
+          hash_of_arrays = Hash.new { |h, k| h[k] = [] }
+
+          # TODO: change `inject` to `each_with_object` when we drop 1.8.7 
support.
+          line_nums_by_file = declaration_locations.inject(hash_of_arrays) do 
|hash, (file_name, line_number)|
+            hash[file_name] << line_number
+            hash
+          end
+
+          line_nums_by_file.each_value do |list|
+            list.sort!
+            list.reverse!
+          end
+        end
       end
 
       def fail_if_config_and_cli_options_invalid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2016-01-27 00:11:21.000000000 +0100
+++ new/metadata        2016-02-18 23:50:28.000000000 +0100
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: rspec-core
 version: !ruby/object:Gem::Version
-  version: 3.4.2
+  version: 3.4.3
 platform: ruby
 authors:
 - Steven Baker
@@ -46,7 +46,7 @@
   ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
   F3MdtaDehhjC
   -----END CERTIFICATE-----
-date: 2016-01-26 00:00:00.000000000 Z
+date: 2016-02-18 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: rspec-support
@@ -293,9 +293,9 @@
       version: '0'
 requirements: []
 rubyforge_project: 
-rubygems_version: 2.2.2
+rubygems_version: 2.5.1
 signing_key: 
 specification_version: 4
-summary: rspec-core-3.4.2
+summary: rspec-core-3.4.3
 test_files: []
 has_rdoc: 
Files old/metadata.gz.sig and new/metadata.gz.sig differ


Reply via email to