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