From f7543093fa74524175e727e2bd65f11d2bbd4417 Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Sun, 7 Jan 2024 03:22:16 +0900 Subject: [PATCH] - Supports Ruby 2.0+ runtime (#986) This is an alternative approach to the changes in #985. The Parser gem may be required to operate across as many Ruby versions as possible. The use of `delete_suffix` starts from Parser version 3.3.0.0. Therefore, by replacing `delete_suffix` with `sub`, and releasing Parser 3.3.0.1, supporting Ruby 2.0 would be feasible. --- lib/parser/lexer/literal.rb | 2 +- parser.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/parser/lexer/literal.rb b/lib/parser/lexer/literal.rb index de906a7f9..b477a244f 100644 --- a/lib/parser/lexer/literal.rb +++ b/lib/parser/lexer/literal.rb @@ -247,7 +247,7 @@ def delimiter?(delimiter) # E # because there are not enough leading spaces in the closing delimiter. delimiter.end_with?(@end_delim) && - delimiter.delete_suffix(@end_delim).bytes.all? { |c| c == SPACE } + delimiter.sub(/#{@end_delim}\z/, '').bytes.all? { |c| c == SPACE } elsif @indent @end_delim == delimiter.lstrip else diff --git a/parser.gemspec b/parser.gemspec index 909e5d9d6..3c5bd3ec8 100644 --- a/parser.gemspec +++ b/parser.gemspec @@ -24,7 +24,7 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } spec.require_paths = ['lib'] - spec.required_ruby_version = '>= 2.5.0' + spec.required_ruby_version = '>= 2.0.0' spec.add_dependency 'ast', '~> 2.4.1' spec.add_dependency 'racc'