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

Version Path
passenger-6.0.23 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.20 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.19 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.18 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.17 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.16 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.15 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.14 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.13 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.12 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.11 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.10 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.9 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.8 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.7 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.6 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.5 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.4 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.3 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-6.0.2 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb