Sha256: fe7503aae9c2edca24f0d4e23a684069ec494d6c9347fe23306ab62ff9f593fa

Contents?: true

Size: 652 Bytes

Versions: 12

Compression:

Stored size: 652 Bytes

Contents

require 'redcarpet'

module Coprl::Presenters::WebClient
  class CustomRender < Redcarpet::Render::Safe
    # include Redcarpet::Render::SmartyPants
    BR = '<br/>'

    def initialize(extensions = {})
      super(extensions)
    end

    def paragraph(text)
      text + BR
    end

    def postprocess(full_document)
      strip_trailing_br(colorize(full_document))
    end

    private

    def colorize(doc)
      doc.gsub(/{c:([#\w]\w+)}([^{]+){\/c}/) {|m| "<span style=\"color:#{$1};\">#{$2}</span>"}
    end

    def strip_trailing_br(doc)
      return doc unless doc[-BR.length..-1] == BR
      doc[0...doc.length-BR.length]
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
coprl-3.0.0.beta.12 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.11 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.10 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.9 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.8 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.7 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.6 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.5 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.4 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.3 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.2 lib/coprl/presenters/web_client/custom_render.rb
coprl-3.0.0.beta.1 lib/coprl/presenters/web_client/custom_render.rb