Sha256: e49c8efa3db537873b21d0b718b0bf72a34da2c74d60bfb15d2b1c811a4ca5a8

Contents?: true

Size: 800 Bytes

Versions: 4

Compression:

Stored size: 800 Bytes

Contents

require 'redcarpet'

module SimpleFormMarkdownEditor
  class Renderer < Struct.new :str, :options
    def self.call(*args)
      new(*args).call
    end

    def initialize(str, options = {})
      super(str, options)
    end

    def render_class
      options.fetch(:render_class, MarkdownEditorInput.configuration.render_class)
    end

    def render_options
      options.fetch(:render_options, MarkdownEditorInput.configuration.render_options)
    end

    def extensions
      options.fetch(:extensions, MarkdownEditorInput.configuration.extensions)
    end

    def call
      return unless str.present?
      markdown_renderer.render(str).html_safe
    end

    private

    def markdown_renderer
      Redcarpet::Markdown.new(render_class.new(render_options), extensions)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
simple_form_markdown_editor-1.0.0 lib/simple_form_markdown_editor/renderer.rb
simple_form_markdown_editor-0.0.10 lib/simple_form_markdown_editor/renderer.rb
simple_form_markdown_editor-0.0.9 lib/simple_form_markdown_editor/renderer.rb
simple_form_markdown_editor-0.0.8 lib/simple_form_markdown_editor/renderer.rb