rspec-support 3.9.2 → 3.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0608e9d9e32db7972f9ed9edf1acc660be6e859589a5bb40118979f32e3e3093'
4
- data.tar.gz: df94499781e6a3f6460990392a90bcea42c4c1aaa028357139787ab1b92716df
3
+ metadata.gz: 9f561f278914c539fc9babd8c48285401c81f060a739c84b4cab642eb38b33af
4
+ data.tar.gz: 8037220124b5c39df3fe2b68cf771f6c5bfcabf74a2fe6cd81d59657c4210afe
5
5
  SHA512:
6
- metadata.gz: 7598c046151adc5322cddd117f5809c3b3f9b1271c5db74496d6961e0799c1fbf3a47d2b48f1195be96b3c2ce0baab7c11d2f19709d478fc44848523034b9514
7
- data.tar.gz: f548fa1b506985c64d9d612463cb4ffb8b41233a86af16ee26449e936570dbe0d4c2f2d9ad5c7fe3cd1a1b57d3156fba368b2f44627634053c2f1db51f64fc6d
6
+ metadata.gz: dc9aef51132154fe8574dd1500b8ebfc76062476875f6b49d1d8556fa112b1f327b73bcb0e68a19e9b0da3d13281ca9625855f22c45df84030b2caca973e3a81
7
+ data.tar.gz: a7699d54e238b3bf20d77944f8ed6e13bb7e51daaca0937676c7261d98b36b7bcfd2b38af25b687d8d1a52991f06aad9499908f9fdc6b5f7eac5539162db45b2
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,13 @@
1
+ ### 3.9.3 / 2020-05-02
2
+ [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.9.2...v3.9.3)
3
+
4
+ Bug Fixes:
5
+
6
+ * Mark ripper as unsupported on Truffle Ruby. (Brandon Fish, #395)
7
+ * Mark ripper as unsupported on JRuby 9.2.0.0. (Brian Hawley, #400)
8
+ * Capture `Mutex.new` for our `RSpec::Support:Mutex` in order to
9
+ allow stubbing `Mutex.new`. (Jon Rowe, #411)
10
+
1
11
  ### 3.9.2 / 2019-12-30
2
12
  [Full Changelog](http://github.com/rspec/rspec-support/compare/v3.9.1...v3.9.2)
3
13
 
@@ -43,7 +43,15 @@ module RSpec
43
43
 
44
44
  if defined? ::Mutex
45
45
  # On 1.9 and up, this is in core, so we just use the real one
46
- Mutex = ::Mutex
46
+ class Mutex < ::Mutex
47
+ # If you mock Mutex.new you break our usage of Mutex, so
48
+ # instead we capture the original method to return Mutexs.
49
+ NEW_MUTEX_METHOD = Mutex.method(:new)
50
+
51
+ def self.new
52
+ NEW_MUTEX_METHOD.call
53
+ end
54
+ end
47
55
  else # For 1.8.7
48
56
  # :nocov:
49
57
  RSpec::Support.require_rspec_support "mutex"
@@ -47,6 +47,10 @@ module RSpec
47
47
  def mri?
48
48
  !defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby'
49
49
  end
50
+
51
+ def truffleruby?
52
+ defined?(RUBY_ENGINE) && RUBY_ENGINE == 'truffleruby'
53
+ end
50
54
  end
51
55
 
52
56
  # @api private
@@ -101,13 +105,14 @@ module RSpec
101
105
  end
102
106
  ripper_requirements = [ComparableVersion.new(RUBY_VERSION) >= '1.9.2']
103
107
 
104
- ripper_requirements.push(false) if Ruby.rbx?
108
+ ripper_requirements.push(false) if Ruby.rbx? || Ruby.truffleruby?
105
109
 
106
110
  if Ruby.jruby?
107
111
  ripper_requirements.push(Ruby.jruby_version >= '1.7.5')
108
112
  # Ripper on JRuby 9.0.0.0.rc1 - 9.1.8.0 reports wrong line number
109
113
  # or cannot parse source including `:if`.
110
- ripper_requirements.push(!Ruby.jruby_version.between?('9.0.0.0.rc1', '9.1.8.0'))
114
+ # Ripper on JRuby 9.x.x.x < 9.2.1.0 can't handle keyword arguments.
115
+ ripper_requirements.push(!Ruby.jruby_version.between?('9.0.0.0.rc1', '9.2.0.0'))
111
116
  end
112
117
 
113
118
  if ripper_requirements.all?
@@ -6,6 +6,7 @@ module RSpec
6
6
  def initialize(original)
7
7
  @orig_stderr = original
8
8
  @output_tracker = ::StringIO.new
9
+ @last_line = nil
9
10
  end
10
11
 
11
12
  respond_to_name = (::RUBY_VERSION.to_f < 1.9) ? :respond_to? : :respond_to_missing?
@@ -38,12 +39,19 @@ module RSpec
38
39
  def write(line)
39
40
  return if line =~ %r{^\S+/gems/\S+:\d+: warning:} # http://rubular.com/r/kqeUIZOfPG
40
41
 
42
+ # Ruby 2.7.0 warnings from keyword argments span multiple lines, extend check above
43
+ # to look for the next line.
44
+ return if @last_line =~ %r{^\S+/gems/\S+:\d+: warning:} &&
45
+ line =~ %r{warning: The called method .* is defined here}
46
+
41
47
  # Ruby 2.7.0 complains about hashes used in place of keyword arguments
42
48
  # Aruba 0.14.2 uses this internally triggering that here
43
49
  return if line =~ %r{lib/ruby/2\.7\.0/fileutils\.rb:622: warning:}
44
50
 
45
51
  @orig_stderr.write(line)
46
52
  @output_tracker.write(line)
53
+ ensure
54
+ @last_line = line
47
55
  end
48
56
 
49
57
  def has_output?
@@ -1,7 +1,7 @@
1
1
  module RSpec
2
2
  module Support
3
3
  module Version
4
- STRING = '3.9.2'
4
+ STRING = '3.9.3'
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,33 @@
1
+ RSpec::Support.require_rspec_support("method_signature_verifier")
2
+
3
+ module RSpec
4
+ module Support
5
+ module WithKeywordsWhenNeeded
6
+ # This module adds keyword sensitive support for core ruby methods
7
+ # where we cannot use `ruby2_keywords` directly.
8
+
9
+ module_function
10
+
11
+ if RSpec::Support::RubyFeatures.kw_args_supported?
12
+ # Remove this in RSpec 4 in favour of explictly passed in kwargs where
13
+ # this is used. Works around a warning in Ruby 2.7
14
+
15
+ def class_exec(klass, *args, &block)
16
+ if MethodSignature.new(block).has_kw_args_in?(args)
17
+ binding.eval(<<-CODE, __FILE__, __LINE__)
18
+ kwargs = args.pop
19
+ klass.class_exec(*args, **kwargs, &block)
20
+ CODE
21
+ else
22
+ klass.class_exec(*args, &block)
23
+ end
24
+ end
25
+ ruby2_keywords :class_exec if respond_to?(:ruby2_keywords, true)
26
+ else
27
+ def class_exec(klass, *args, &block)
28
+ klass.class_exec(*args, &block)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.9.2
4
+ version: 3.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chelimsky
@@ -48,20 +48,20 @@ cert_chain:
48
48
  ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
49
49
  F3MdtaDehhjC
50
50
  -----END CERTIFICATE-----
51
- date: 2019-12-30 00:00:00.000000000 Z
51
+ date: 2020-05-02 00:00:00.000000000 Z
52
52
  dependencies:
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rake
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
57
+ - - ">"
58
58
  - !ruby/object:Gem::Version
59
59
  version: 10.0.0
60
60
  type: :development
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - "~>"
64
+ - - ">"
65
65
  - !ruby/object:Gem::Version
66
66
  version: 10.0.0
67
67
  - !ruby/object:Gem::Dependency
@@ -118,12 +118,13 @@ files:
118
118
  - lib/rspec/support/spec/with_isolated_stderr.rb
119
119
  - lib/rspec/support/version.rb
120
120
  - lib/rspec/support/warnings.rb
121
+ - lib/rspec/support/with_keywords_when_needed.rb
121
122
  homepage: https://github.com/rspec/rspec-support
122
123
  licenses:
123
124
  - MIT
124
125
  metadata:
125
126
  bug_tracker_uri: https://github.com/rspec/rspec-support/issues
126
- changelog_uri: https://github.com/rspec/rspec-support/blob/v3.9.2/Changelog.md
127
+ changelog_uri: https://github.com/rspec/rspec-support/blob/v3.9.3/Changelog.md
127
128
  documentation_uri: https://rspec.info/documentation/
128
129
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
129
130
  source_code_uri: https://github.com/rspec/rspec-support
@@ -146,5 +147,5 @@ requirements: []
146
147
  rubygems_version: 3.1.2
147
148
  signing_key:
148
149
  specification_version: 4
149
- summary: rspec-support-3.9.2
150
+ summary: rspec-support-3.9.3
150
151
  test_files: []
metadata.gz.sig CHANGED
Binary file