Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/ruby_extended/string.rb
Instance Method Summary collapse
- #index_of(str) ⇒ Object
- #similarity_percent(b) ⇒ Object
- #strip_newline ⇒ Object
- #strip_whitespace(options = {}) ⇒ Object
Instance Method Details
#index_of(str) ⇒ Object
44 45 46 47 48 |
# File 'lib/ruby_extended/string.rb', line 44 def index_of(str) res = [] self.scan(/#{str}/) { |c| res << [c, $~.offset(0)[0]] } res.map(&:last) end |
#similarity_percent(b) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/ruby_extended/string.rb', line 51 def similarity_percent(b) longer = [self.size, b.size].max same = self.each_char.zip(b.each_char).select { |a, b| a == b }.size percent = (longer - same) / self.size.to_f (100.0 - (percent * 100.to_f)) end |
#strip_newline ⇒ Object
36 37 38 39 40 41 |
# File 'lib/ruby_extended/string.rb', line 36 def strip_newline res = self res = res.delete("\n") res = res.delete("\r") res end |
#strip_whitespace(options = {}) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/ruby_extended/string.rb', line 4 def strip_whitespace( = {}) res = self res = res.gsub("\u0020", '') # SPACE (U+0020) res = res.gsub("\u00A0", '') # NO-BREAK SPACE (U+00A0) res = res.gsub("\u1680", '') # OGHAM SPACE MARK (U+1680) res = res.gsub("\u180E", '') # MONGOLIAN VOWEL SEPARATOR (U+180E) res = res.gsub("\u2000", '') # EN QUAD (U+2000) res = res.gsub("\u2002", '') # EN SPACE (nut) (U+2002) res = res.gsub("\u2003", '') # EM SPACE (mutton) (U+2003) res = res.gsub("\u2004", '') # THREE-PER-EM SPACE (thick space) (U+2004) res = res.gsub("\u2005", '') # FOUR-PER-EM SPACE (mid space) (U+2005) res = res.gsub("\u2006", '') # SIX-PER-EM SPACE (U+2006) res = res.gsub("\u2007", '') # FIGURE SPACE (U+2007) res = res.gsub("\u2008", '') # PUNCTUATION SPACE (U+2008) res = res.gsub("\u2009", '') # THIN SPACE (U+2009) res = res.gsub("\u200A", '') # HAIR SPACE (U+200A) res = res.gsub("\u200B", '') # ZERO WIDTH SPACE (U+200B) res = res.gsub("\u200F", '') # NARROW NO-BREAK SPACE (U+200F) res = res.gsub("\u205F", '') # MEDIUM MATHEMATICAL SPACE (U+205F) res = res.gsub("\u3000", '') # IDEOGRAPHIC SPACE (U+3000) res = res.gsub("\uFEFF", '') # ZERO WIDTH NO-BREAK SPACE (U+FEFF) if [:visible] res = res.gsub("\u2423", '') # OPEN BOX (U+2423) res = res.gsub("\u2422", '') # BLANK SYMBOL (U+2422) res = res.gsub("\u2420", '') # SYMBOL FOR SPACE (U+2420) end res end |