Skip to content
This repository was archived by the owner on Nov 30, 2024. It is now read-only.

Commit efdce64

Browse files
committed
Update ripper_supported? for truffleruby and ripper specs to rescue error
1 parent 596198a commit efdce64

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

lib/rspec/support/ruby_features.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ def non_mri?
4747
def mri?
4848
!defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby'
4949
end
50+
51+
def truffleruby?
52+
defined?(RUBY_ENGINE) && RUBY_ENGINE == 'truffleruby'
53+
end
5054
end
5155

5256
# @api private
@@ -101,7 +105,7 @@ def supports_taint?
101105
end
102106
ripper_requirements = [ComparableVersion.new(RUBY_VERSION) >= '1.9.2']
103107

104-
ripper_requirements.push(false) if Ruby.rbx?
108+
ripper_requirements.push(false) if Ruby.rbx? || Ruby.truffleruby?
105109

106110
if Ruby.jruby?
107111
ripper_requirements.push(Ruby.jruby_version >= '1.7.5')

spec/rspec/support/ruby_features_spec.rb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,16 @@ def ripper_works_correctly?
126126
# https://github.com/jruby/jruby/issues/3386
127127
def ripper_reports_correct_line_number?
128128
in_sub_process_if_possible do
129-
require 'ripper'
130-
tokens = ::Ripper.lex('foo')
131-
token = tokens.first
132-
location = token.first
133-
line_number = location.first
134-
line_number == 1
129+
begin
130+
require 'ripper'
131+
tokens = ::Ripper.lex('foo')
132+
token = tokens.first
133+
location = token.first
134+
line_number = location.first
135+
line_number == 1
136+
rescue NoMethodError
137+
false # TruffleRuby defines Ripper but implementation is not complete
138+
end
135139
end
136140
end
137141

0 commit comments

Comments
 (0)