Module: ActiveRecord::Acts::AsMarkdown::ClassMethods

Defined in:
lib/acts/as_markdown.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_markdown(*columns) ⇒ Object

This allows you to specify columns you want to define as containing markdown content. Then you can simply call .to_html method on the attribute.

Example

class Post < ActiveRecrod
  acts_as_markdown :body
end

@post = Post.find(:first)
@post.body.to_s     #=> "## Markdown Headline"
@post.body.to_html  #=> "<h2> Mardown Headline</h2>"


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/acts/as_markdown.rb', line 24

def acts_as_markdown(*columns)
  library_names = ::ActsAsMarkdown::MARKDOWN_LIBS[ActsAsMarkdown.markdown_library]
  require library_names[:lib_name]
  klass = library_names[:class_name]
  
  columns.each do |col|
    class_eval "      def \#{col.to_s}\n        if @\#{col.to_s}\n          if !self.\#{col.to_s}_changed?\n            return @\#{col.to_s}\n          end\n        end\n        @\#{col.to_s} = \#{klass}.new(self['\#{col.to_s}'].to_s)\n      end\n    EOV\n  end\nend\n"