Alternate implementations of system() and backticks “ on Windows for ruby-1.8 and earlier.
Methods
Constants
| WINDOWS | = | RbConfig::CONFIG["host_os"] =~ %r!(msdos|mswin|djgpp|mingw|[Ww]indows)! |
| RUNNABLE_EXTS | = | %w[com exe bat cmd] |
| RUNNABLE_PATTERN | = | %r!\.(#{RUNNABLE_EXTS.join('|')})\Z!i |
Instance Public methods
backticks(cmd)
Link
Source: show
# File lib/rake/alt_system.rb, line 97 def backticks(cmd) kernel_backticks(repair_command(cmd)) end
define_module_function(name, &block)
Link
Source: show
# File lib/rake/alt_system.rb, line 36 def define_module_function(name, &block) define_method(name, &block) module_function(name) end
find_runnable(file)
Link
Source: show
# File lib/rake/alt_system.rb, line 71 def find_runnable(file) if file =~ RUNNABLE_PATTERN file else RUNNABLE_EXTS.each { |ext| test = "#{file}.#{ext}" return test if File.exist?(test) } nil end end
repair_command(cmd)
Link
Source: show
# File lib/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