Skip to content

Commit f61bd3c

Browse files
eregonmatzbot
authored andcommitted
[ruby/cgi] Add TruffleRuby support and add it in CI
ruby/cgi@1240fec9c9
1 parent 610038f commit f61bd3c

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

ext/cgi/escape/extconf.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
require 'mkmf'
22

3-
create_makefile 'cgi/escape'
3+
if RUBY_ENGINE == 'truffleruby'
4+
File.write("Makefile", dummy_makefile($srcdir).join(""))
5+
else
6+
create_makefile 'cgi/escape'
7+
end

lib/cgi/util.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,12 @@ def escapeHTML(string)
9090
end
9191
end
9292

93-
begin
94-
require 'cgi/escape'
95-
rescue LoadError
93+
# TruffleRuby runs the pure-Ruby variant faster, do not use the C extension there
94+
unless RUBY_ENGINE == 'truffleruby'
95+
begin
96+
require 'cgi/escape'
97+
rescue LoadError
98+
end
9699
end
97100

98101
# Unescape a string that has been HTML-escaped

test/cgi/test_cgi_util.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ def setup
262262
remove_method :escapeHTML
263263
alias _unescapeHTML unescapeHTML
264264
remove_method :unescapeHTML
265-
end
265+
end if defined?(CGI::Escape)
266266
end
267267

268268
def teardown
@@ -271,7 +271,7 @@ def teardown
271271
remove_method :_escapeHTML
272272
alias unescapeHTML _unescapeHTML
273273
remove_method :_unescapeHTML
274-
end
274+
end if defined?(CGI::Escape)
275275
end
276276

277277
def test_cgi_escapeHTML_with_invalid_byte_sequence

0 commit comments

Comments
 (0)