class String CAP_LIST_REGEX = Regexp.new( '"([\w\s]+)"|(\S+)' ) WHITESPACE_REGEX = Regexp.new('^\s+$') # Reformats string for a CAP list. If the string contains whitespace it will # enclose the contents in quotation marks. # # @return [String] # @example # "one".for_cap_list # => "one" # "two words".for_cap_list # => "\"two words\"" def for_cap_list if self =~ /\s/ '"'+self+'"' else self end end # Will unpack a string generated by {Array#to_s_for_cap} # # @return [Array] # @example # "one \"two words\" three".unpack_cap_list # => [ "one", "two words", "three" ] # @see Array#to_s_for_cap def unpack_cap_list self.split( CAP_LIST_REGEX ).reject{ |match| match == "" || match =~ WHITESPACE_REGEX } end end