module RVM::Shell::Utility

Public Instance Methods

build_cli_call(command, args = nil) click to toggle source

From a command, will build up a runnable command. If args isn't provided, it will escape arguments.

# File lib/rvm/shell/utility.rb, line 31
def build_cli_call(command, args = nil)
  "#{command} #{escape_arguments(args)}".strip
end
escape_argument(s) click to toggle source

Given a string, converts to the escaped format. This ensures that things such as variables aren't evaluated into strings and everything else is setup as expected.

# File lib/rvm/shell/utility.rb, line 17
def escape_argument(s)
  return "''" if s.empty?
  s.scan(/('+|[^']+)/).map do |section|
    section = section.first
    if section[0] == '
      "\\'" * section.length
    else
      "'#{section}'"
    end
  end.join
end
escape_arguments(*args) click to toggle source

Takes an array / number of arguments and converts them to a string useable for passing into a shell call.

# File lib/rvm/shell/utility.rb, line 9
def escape_arguments(*args)
  return '' if args.nil?
  args.flatten.map { |a| escape_argument(a.to_s) }.join(" ")
end