lib/string_tools.rb in string_tools-0.10.0 vs lib/string_tools.rb in string_tools-0.10.1
- old
+ new
@@ -157,24 +157,22 @@
'td' => %w(align width valign colspan rowspan style),
'th' => %w(align width valign colspan rowspan style),
'a' => %w(href target name style),
'table' => %w(cellpadding cellspacing width border align style),
'img' => %w(src width height style)
- }
+ }.freeze
- TAGS_WITHOUT_ATTRIBUTES = %w(b strong i em sup sub ul ol li blockquote br tr u caption thead)
+ TAGS_WITHOUT_ATTRIBUTES = %w(b strong i em sup sub ul ol li blockquote br tr u caption thead).freeze
- def sanitize(str, attr = {})
+ def sanitize(str, attrs = {})
# для корректного обрезания utf строчек режем через mb_chars
# для защиты от перегрузки парсера пропускаем максимум 1 мегабайт текста
# длина русского символа в utf-8 - 2 байта, 1Мб/2б = 524288 = 2**19 символов
# длина по символам с перестраховкой, т.к. латинские символы(теги, например) занимают 1 байт
str = str.mb_chars.slice(0..(2**19)).to_s
- attributes = TAGS_WITH_ATTRIBUTES
-
# Мерджим добавочные теги и атрибуты
- attributes.merge!(attr)
+ attributes = TAGS_WITH_ATTRIBUTES.merge(attrs)
elements = attributes.keys | TAGS_WITHOUT_ATTRIBUTES
transformers = [LINK_NORMALIZER]
transformers << IframeNormalizer.new(attributes['iframe']) if attributes.key?('iframe')