module AnyStyle::StringUtils

Public Instance Methods

canonize(string) click to toggle source
   # File lib/anystyle/utils.rb
24 def canonize(string)
25   scrub(transliterate(string)).downcase
26 end
count(string, pattern) click to toggle source
   # File lib/anystyle/utils.rb
48 def count(string, pattern)
49   string.to_enum(:scan, pattern).inject(0) { |c| c + 1 }
50 end
display_chars(string) click to toggle source
   # File lib/anystyle/utils.rb
40 def display_chars(string)
41   string
42     .gsub(/\t/, '    ')
43     .gsub(/\p{Mn}|\p{Me}|\p{Cc}/, '')
44     .gsub(/\p{Zs}/, ' ')
45     .rstrip
46 end
display_width(string) click to toggle source
   # File lib/anystyle/utils.rb
36 def display_width(string)
37   display_chars(string).length
38 end
indent(token) click to toggle source
   # File lib/anystyle/utils.rb
52 def indent(token)
53   display_chars(token)[/^(\s*)/].length
54 end
nnum(string, symbol = ' click to toggle source
   # File lib/anystyle/utils.rb
28 def nnum(string, symbol = '#')
29   string.unicode_normalize.gsub(/\d/, symbol)
30 end
page_break?(string) click to toggle source
   # File lib/anystyle/utils.rb
32 def page_break?(string)
33   string =~ /\f/
34 end
scrub(string, blacklist: /[\p{^Alnum}\p{Lm}]/) click to toggle source
   # File lib/anystyle/utils.rb
14 def scrub(string, blacklist: /[\p{^Alnum}\p{Lm}]/)
15   string.scrub.gsub(blacklist, '')
16 end
strip_html(string) click to toggle source
   # File lib/anystyle/utils.rb
56 def strip_html(string)
57   string
58     .gsub(/<\/?(italic|i|strong|b|span|div)(\s+style="[^"]+")?>/i, '')
59 end
transliterate(string, form: :nfkd) click to toggle source
   # File lib/anystyle/utils.rb
18 def transliterate(string, form: :nfkd)
19   string
20     .unicode_normalize(form)
21     .gsub(/\p{Mark}/, '')
22 end