Not a good solution by any means, but somebody might find it
interesting. Assumes balanced quotes, no escaping, etc.
require 'enumerator'
def my_split s
s.split('"') . # Just split on the quote
to_enum(:each_slice,2) . # ... and deal w/ pairs
inject([]) {
|a,(e,o)| a .
concat(
e.split(' ') + # Split unquotes
[o] # Stuff in quotes is okay as is
)
} .
compact # Finnally remove nils
end
--
Lou.