Use syntax_suggest instead of erb executable.

erb is only working with Ruby 3.5dev.
This commit is contained in:
Hiroshi SHIBATA 2025-02-27 19:50:14 +09:00
parent 2dff416ff2
commit 921ca9d8a8
No known key found for this signature in database
GPG Key ID: F9CF13417264FAC2

View File

@ -193,74 +193,75 @@ RSpec.describe "bundle exec" do
end
context "with default gems" do
let(:default_erb_version) { ruby "gem 'erb', '< 999999'; require 'erb'; puts ERB.const_get(:VERSION)", raise_on_error: false }
let(:default_ss_version) { ruby "gem 'syntax_suggest', '< 999999'; require 'syntax_suggest/version'; puts SyntaxSuggest::VERSION", raise_on_error: false }
context "when not specified in Gemfile" do
before do
skip "erb isn't a default gem" if default_erb_version.empty?
skip "syntax_suggest isn't a default gem" if default_ss_version.empty?
skip "syntax_suggest executable is broken" if default_ss_version <= "1.1.0"
install_gemfile "source \"https://gem.repo1\""
end
it "uses version provided by ruby" do
bundle "exec erb --version"
bundle "exec ruby --disable-syntax-suggest -S syntax_suggest --version"
expect(out).to include(default_erb_version)
expect(out).to include(default_ss_version)
end
end
context "when specified in Gemfile directly" do
let(:specified_erb_version) { "2.2.3" }
let(:specified_ss_version) { "2.0.0" }
before do
skip "erb isn't a default gem" if default_erb_version.empty?
skip "syntax_suggest isn't a default gem" if default_ss_version.empty?
build_repo2 do
build_gem "erb", specified_erb_version do |s|
s.executables = "erb"
build_gem "syntax_suggest", specified_ss_version do |s|
s.executables = "syntax_suggest"
end
end
install_gemfile <<-G
source "https://gem.repo2"
gem "erb", "#{specified_erb_version}"
gem "syntax_suggest", "#{specified_ss_version}"
G
end
it "uses version specified" do
bundle "exec erb --version"
bundle "exec ruby --disable-syntax-suggest -S syntax_suggest --version"
expect(out).to eq(specified_erb_version)
expect(out).to eq(specified_ss_version)
expect(err).to be_empty
end
end
context "when specified in Gemfile indirectly" do
let(:indirect_erb_version) { "2.2.3" }
let(:indirect_ss_version) { "2.0.0" }
before do
skip "erb isn't a default gem" if default_erb_version.empty?
skip "syntax_suggest isn't a default gem" if default_ss_version.empty?
build_repo2 do
build_gem "erb", indirect_erb_version do |s|
s.executables = "erb"
build_gem "syntax_suggest", indirect_ss_version do |s|
s.executables = "syntax_suggest"
end
build_gem "gem_depending_on_old_erb" do |s|
s.add_dependency "erb", indirect_erb_version
build_gem "gem_depending_on_old_ss" do |s|
s.add_dependency "syntax_suggest", indirect_ss_version
end
end
install_gemfile <<-G
source "https://gem.repo2"
gem "gem_depending_on_old_erb"
gem "gem_depending_on_old_ss"
G
bundle "exec erb --version"
bundle "exec ruby --disable-syntax-suggest -S syntax_suggest --version"
end
it "uses resolved version" do
expect(out).to eq(indirect_erb_version)
expect(out).to eq(indirect_ss_version)
expect(err).to be_empty
end
end
@ -657,7 +658,7 @@ RSpec.describe "bundle exec" do
gem "foo", :path => "#{lib_path("foo-1.0")}"
G
bundle "exec erb", raise_on_error: false
bundle "exec syntax_suggest", raise_on_error: false
expect(err).to match("The gemspec at #{lib_path("foo-1.0").join("foo.gemspec")} is not valid")
expect(err).to match(/missing value for attribute rubygems_version|rubygems_version must not be nil/)