Sha256: cc9247a61489a43f06b3ef1b54aded9800549c7e742394360b48caa1ddb2f3c0
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
class String # http://grosser.it/2011/08/28/ruby-string-naive-split-because-split-is-to-clever/ # " ".split(' ') == [] # " ".naive_split(' ') == ['','','',''] # "".split(' ') == [] # "".naive_split(' ') == [''] def naive_split(pattern) pattern = /#{pattern}/ unless pattern.is_a?(Regexp) result = split(pattern, -1) result.empty? ? [''] : result end def tabs_to_spaces! gsub!("\t",' ' * Ruco::TAB_SIZE) end def leading_whitespace match(/^\s*/)[0] end def leading_whitespace=(whitespace) sub!(/^\s*/, whitespace) end # stub for 1.8 unless method_defined?(:force_encoding) def force_encoding(encoding) self end end unless method_defined?(:ord) def ord bytes.first end end def surrounded_in?(*words) first = words.first last = words.last slice(0,first.size) == first and slice(-last.size,last.size) == last end # https://gist.github.com/20844 # remove middle from strings exceeding max length. def ellipsize(options={}) max = options[:max] || 40 delimiter = options[:delimiter] || "..." return self if self.size <= max remainder = max - delimiter.size offset = remainder / 2 (self[0,offset + (remainder.odd? ? 1 : 0)].to_s + delimiter + self[-offset,offset].to_s)[0,max].to_s end unless defined? ellipsize end # http://grosser.it/2010/12/31/ruby-string-indexes-indices-find-all-indexes-in-a-string class String def indexes(needle) found = [] current_index = -1 while current_index = index(needle, current_index+1) found << current_index end found end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruco-0.1.13 | lib/ruco/core_ext/string.rb |