[ruby/webrick] Allow WEBrick::HTTPServlet::CGIHandler :CGIInterpreter option to be array

This way you don't need to escape each entry.

Implements Ruby Feature 15170.

d8086e600c
This commit is contained in:
Jeremy Evans 2019-08-26 21:41:27 -07:00 committed by Hiroshi SHIBATA
parent f7cf5416e4
commit c75100d004
3 changed files with 16 additions and 2 deletions

View file

@ -28,6 +28,7 @@ module WEBrick
class CGIHandler < AbstractServlet
Ruby = RbConfig.ruby # :nodoc:
CGIRunner = "\"#{Ruby}\" \"#{WEBrick::Config::LIBDIR}/httpservlet/cgi_runner.rb\"" # :nodoc:
CGIRunnerArray = [Ruby, "#{WEBrick::Config::LIBDIR}/httpservlet/cgi_runner.rb".freeze].freeze # :nodoc:
##
# Creates a new CGI script servlet for the script at +name+
@ -36,7 +37,12 @@ module WEBrick
super(server, name)
@script_filename = name
@tempdir = server[:TempDir]
@cgicmd = "#{CGIRunner} #{server[:CGIInterpreter]}"
interpreter = server[:CGIInterpreter]
if interpreter.is_a?(Array)
@cgicmd = CGIRunnerArray + interpreter
else
@cgicmd = "#{CGIRunner} #{interpreter}"
end
end
# :stopdoc: