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>ссылка с пробелом</a><p>параграф	с\tтабуляцией</p>")
+ # # => "ссылкаспробелом параграфстабуляцией "
+ #
+ # Returns String
+ def strip_all_tags_and_entities(string)
+ Sanitize.fragment(string.gsub(/&#([0-9]|10|11|12|13);| |\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