summaryrefslogtreecommitdiff
path: root/lib/webrick
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-08-26 21:41:27 -0700
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-11-30 17:48:15 +0900
commitc75100d00401c32b3245ce8da5b8a045976216ca (patch)
tree6f7d753792c8971922672e99ede844d5b4af879a /lib/webrick
parentf7cf5416e471cd34153058952063da3457468e58 (diff)
[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. https://github.com/ruby/webrick/commit/d8086e600c
Diffstat (limited to 'lib/webrick')
-rw-r--r--lib/webrick/httpservlet/cgihandler.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/webrick/httpservlet/cgihandler.rb b/lib/webrick/httpservlet/cgihandler.rb
index 981f649750..4457770b7a 100644
--- a/lib/webrick/httpservlet/cgihandler.rb
+++ b/lib/webrick/httpservlet/cgihandler.rb
@@ -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: