Sha256: 6850e668aa652c62708c786be4f1a957ee66add0eccf78c6b3ce1ead4c7c4c2d

Contents?: true

Size: 789 Bytes

Versions: 3

Compression:

Stored size: 789 Bytes

Contents

# encoding: utf-8

module ActiveCleaner
  class MarkdownCleaner < BaseCleaner

    def clean_value(old_value, record=nil)
      unless old_value.nil?
        value = old_value.dup

        value.strip!

        # clean the new lines mess among OS
        value.gsub!(/\r\n|\r/, "\n")

        # protect stuff to keep with a markup
        value.gsub!(/\n/, "__NEW_LINE__")
        value.gsub!(/(?<=__NEW_LINE__)\s+/) {|match| match.gsub(/\s/, "__SPACE__")}

        value.gsub!(/\s+/, " ")
        value.gsub!(/(__SPACE__|\s)*__NEW_LINE__\s*/, "__NEW_LINE__")
        value.gsub!(/(__NEW_LINE__){3,}/, "__NEW_LINE____NEW_LINE__")

        # reverse the safe markup
        value.gsub!(/__NEW_LINE__/, "\n")
        value.gsub!(/__SPACE__/, " ")

        value
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activecleaner-0.3.0 lib/active_cleaner/markdown_cleaner.rb
activecleaner-0.2.0 lib/active_cleaner/markdown_cleaner.rb
activecleaner-0.1.0 lib/active_cleaner/markdown_cleaner.rb