Sha256: 4b7389e821eeb6d8313c36ba4c802d439cd6bcafd3928ca96c09be2ae7f419da
Contents?: true
Size: 856 Bytes
Versions: 79
Compression:
Stored size: 856 Bytes
Contents
# Polyfill for the shellwords library on Ruby 1.8.5. require 'shellwords' if !Shellwords.respond_to?(:escape) Shellwords.class_eval do def self.escape(str) # An empty argument will be skipped, so return empty quotes. return "''" if str.empty? str = str.dup # Treat multibyte characters as is. It is caller's responsibility # to encode the string in the right encoding for the shell # environment. str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/, "\\\\\\1") # A LF cannot be escaped with a backslash because a backslash + LF # combo is regarded as line continuation and simply ignored. str.gsub!(/\n/, "'\n'") return str end end end if !Shellwords.respond_to?(:join) Shellwords.class_eval do def self.join(array) array.map { |arg| escape(arg) }.join(' ') end end end
Version data entries
79 entries across 79 versions & 2 rubygems