Module: StringTools::Sanitizing

Included in:
StringTools
Defined in:
lib/string_tools.rb

Instance Method Summary collapse

Instance Method Details

#clear_control_characters(string) ⇒ Object

Public: вычищает ASCII Control Characters из строки

string - String строка, из которой удаляем символы

Returns String



94
95
96
# File 'lib/string_tools.rb', line 94

def clear_control_characters(string)
  string.tr("\u0000-\u001f", '')
end

#clear_unicode_separator_characters(string) ⇒ Object

Public: вычищает Unicode символы-разделители из строки

string - String строка, из которой удаляем символы

Returns String



103
104
105
# File 'lib/string_tools.rb', line 103

def clear_unicode_separator_characters(string)
  string.tr("\u2028-\u2029", '')
end

#sanitize(text, options = {}) ⇒ Object



83
84
85
86
87
# File 'lib/string_tools.rb', line 83

def sanitize(text, options = {})
  sanitizer = options.delete(:sanitizer)
  sanitizer = StringTools::Sanitizer::Base.new unless sanitizer.respond_to?(:sanitize)
  sanitizer.sanitize(text, options)
end

#strip_all_tags_and_entities(string) ⇒ Object

Public: вычищает все html тэги и пробельные символы

string - String строка для очистки

Examples

strip_all_tags_and_entities("<a>ссылка с&nbsp;пробелом</a><p>параграф&#9;с\tтабуляцией</p>")
# => "ссылкаспробелом параграфстабуляцией "

Returns String



117
118
119
# File 'lib/string_tools.rb', line 117

def strip_all_tags_and_entities(string)
  Sanitize.fragment(string.gsub(/&#([0-9]|10|11|12|13);|&nbsp;|\xc2\xa0|\s/, ''))
end

#strip_tags_leave_br(string) ⇒ Object

Public: вычищает html тэги кроме переносов

string - String строка для очистки

Examples

strip_tags_leave_br("<a></a><ul><li>элемент списка</li></ul><p>параграф</p>просто перенос<br>")
# => "<br />элемент списка<br /><br />параграф<br />просто перенос<br>"

Returns String



131
132
133
134
135
136
137
138
139
# File 'lib/string_tools.rb', line 131

def strip_tags_leave_br(string)
  sanitized = Sanitize.fragment(string, remove_contents: %w(style script), elements: %w(p ul li br blockquote))

  sanitized.gsub!(/<(p|li|blockquote)[^>]*>/, '')
  sanitized.gsub!(%r{<(br /|ul[^>]*|/[^>]*)>}, '<br />')
  sanitized.gsub!(/<br \/>(\s|\302\240)+/, '<br />')

  sanitized
end