Sha256: 13eda5b26a88b2f8c7a69d3eed4363b1b6678f3cb11d1cfcd90d5874e4408c30
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
module Redacted module ActionView module Helpers def ascii_redact str length = str.length "\u2588" * length unless length.zero? end def redact str if str.include?("\n") redact_paragraphs(str).join('').html_safe else redact_text(str).html_safe end end def redact_paragraphs str str.lines.map do |l| "<p>#{redact_text(l.chomp)}</p>" if l.chomp.present? end.reject{|l|l.nil?} end def redact_text str return '' unless str "<span class=\"redacted-text\">#{generate_fake_text(str)}</span>" end def redact_html html_str doc = Nokogiri::HTML::DocumentFragment.parse(html_str) doc.traverse do |ele| ele.replace(redact_text(ele.content.chomp)) if ele.text? end doc.to_html end private def generate_fake_text str word_count = str.split.size fake_text = FFaker::Lorem.words(word_count).join(' ') fake_text << FFaker::Lorem.characters(str.length - fake_text.length) if str.length > fake_text.length fake_text.slice(0, str.length) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
redacted-0.0.5 | lib/redacted/action_view/helpers.rb |
redacted-0.0.4 | lib/redacted/action_view/helpers.rb |