Sha256: 4b7389e821eeb6d8313c36ba4c802d439cd6bcafd3928ca96c09be2ae7f419da

Contents?: true

Size: 856 Bytes

Versions: 81

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

81 entries across 81 versions & 2 rubygems

Version Path
passenger-5.1.8 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.1.7 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.1.6 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.1.5 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.1.4 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.1.3 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.1.2 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.1.1 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.1.0 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.30 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.29 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/passenger-5.0.28/src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.28 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.27 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.26 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.25 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.24 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.23 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.22 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb
passenger-5.0.21 src/ruby_supportlib/phusion_passenger/utils/shellwords.rb