Sha256: 7410c340d6dbe40ebf114097d19a29de585644550a05fe049b647453f8c10f51

Contents?: true

Size: 799 Bytes

Versions: 1

Compression:

Stored size: 799 Bytes

Contents

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<String>]
  # @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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rcap-1.3.1 lib/extensions/string.rb