crowdAI/crowdai

View on GitHub
app/models/concerns/markdownable.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Markdownable
  extend ActiveSupport::Concern
  include ActiveModel::Dirty

  included do
    before_save :cache_rendered_markdown
  end

  def cache_rendered_markdown
    self.changed_attribute_names_to_save.select{|c| c.end_with?("markdown") }.each do |col_markdown|
      col = col_markdown.remove("_markdown")
      self.send("#{col}=", Kramdown::Document.new(
        self.send(col_markdown),{coderay_line_numbers: nil, syntax_highlighter: 'rouge'}).to_html)
    end
  end

end