Redcloth / Textilize :hard_breaks is broken in Rails 2.3.4

September 24, 2009 by Michael

The default behavior for quite a long time was :hard_breaks in the textilize helper method in rails.

Hard Breaks means: All line breaks are turned into <br />’s.

Somebody changed the textilize helper in “actionpack-2.3.4/lib/action_view/helpers/text_helper.rb” in 2.3.4 and added the ability to pass some options but broke the default behavior here:

def textilize(text, *options)
        options ||= [:hard_breaks]
        # ...

Options will never be null.

I fixed this by monkey patching the module through the following code in config/initializers/textilizepatch.rb

module ActionView
  module Helpers
    module TextHelper
      def textilize(text, *options)
        options = [:hard_breaks] if options == nil || options.size == 0
 
        if text.blank?
          ""
        else
          textilized = RedCloth.new(text, options)
          textilized.to_html
        end
      end
    end
  end
end

Such changes should be tested… *grml*

No comments yet

Post a Comment

Your email is never published nor shared. Required fields are marked *