Sha256: 2a4f59e38dce53635e17b09ffe08c68d453869cbc5834ca85c445d68e6c756ed

Contents?: true

Size: 829 Bytes

Versions: 2

Compression:

Stored size: 829 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

  def blank?
    empty?
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rcap-2.4.1 lib/rcap/extensions/string.rb
rcap-2.4.0 lib/rcap/extensions/string.rb