class Array

Public Class Methods

parse(string) click to toggle source

Split string into an array. Used in conjunction with Highline's ask, or ask_for_array methods, which must respond to parse.

This method allows escaping of whitespace. For example the arguments foo bar\ baz will become ['foo', 'bar baz']

Example

# ask invokes Array#parse
list = ask 'Favorite cookies:', Array

# or use ask_for_CLASS
list = ask_for_array 'Favorite cookies: '
# File lib/simple_commander/core_ext/array.rb, line 19
def self.parse(string)
  # Using reverse + lookahead to work around Ruby 1.8's lack of lookbehind
  # TODO: simplify now that we don't support Ruby 1.8
  string.reverse.split(/\s(?!\)/).reverse.map { |s| s.reverse.gsub('\ ', ' ') }
end