lib/string_tools.rb in string_tools-0.3.0 vs lib/string_tools.rb in string_tools-0.3.1

- old
+ new

@@ -103,10 +103,44 @@ # # Returns String def clear_control_characters(string) string.tr("\u0000-\u001f", '') end + + # Public: вычищает все html тэги и пробельные символы + # + # string - String строка для очистки + # + # Examples + # + # strip_all_tags_and_entities("<a>ссылка с&nbsp;пробелом</a><p>параграф&#9;с\tтабуляцией</p>") + # # => "ссылкаспробелом параграфстабуляцией " + # + # Returns String + def strip_all_tags_and_entities(string) + Sanitize.fragment(string.gsub(/&#([0-9]|10|11|12|13);|&nbsp;|\xc2\xa0|\s/, '')) + end + + # 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 + def strip_tags_leave_br(string) + sanitized = Sanitize.fragment(string, remove_contents: %w(style javascript), 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 end extend Sanitizing module Sanitizer class Base @@ -180,6 +214,16 @@ result << " %.2d " % kop result << RuPropisju.choose_plural(kop, 'копейка', 'копейки', 'копеек') end end extend SumInWords + + module Uri + def add_params_to_url(url, params = nil) + uri = Addressable::URI.parse(url) + uri = Addressable::URI.parse("http://#{url}") unless uri.scheme + uri.query_values = (uri.query_values || {}).merge!(params.stringify_keys) if params.present? + uri.normalize.to_s + end + end + extend Uri end