Alternate implementations of system() and backticks “ on Windows for ruby-1.8 and earlier.
# File rake/alt_system.rb, line 98
def backticks(cmd)
kernel_backticks(repair_command(cmd))
end
# File rake/alt_system.rb, line 71
def find_runnable(file)
if file =~ RUNNABLE_PATTERN
file
else
RUNNABLE_EXTS.each { |ext|
if File.exist?(test = "#{file}.#{ext}")
return test
end
}
nil
end
end
# File rake/alt_system.rb, line 51
def repair_command(cmd)
"call " + (
if cmd =~ %r\A\s*\".*?\"!
# already quoted
cmd
elsif match = cmd.match(%r\A\s*(\S+)!)
if match[1] =~ %r/!
# avoid x/y.bat interpretation as x with option /y
%Q"#{match[1]}"! + match.post_match
else
# a shell command will fail if quoted
cmd
end
else
# empty or whitespace
cmd
end
)
end
Commenting is here to help enhance the documentation. For example, sample code, or clarification of the documentation.
If you are posting code samples in your comments, please wrap them in "<pre><code class="ruby" > ... </code></pre>" markup in order to get syntax highlighting.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file a bug report so that it can be corrected for the next release. Thank you.