This is a convenience method for `acts_as_markup :language =>
:markdown, :columns => [:body]
` Additional options can be given
at the end, if necessary.
# File lib/acts_as_markup/active_record_extension.rb, line 82 def acts_as_markdown(*columns) options = columns.extract_options! acts_as_markup options.merge(:language => :markdown, :columns => columns) end
This allows you to specify columns you want to define as containing
Markdown, Textile, Wikitext or RDoc content. Then you can simply call
.to_html
method on the attribute.
You can also specify the language as :variable
. The language
used to process the column will be based on another column. By default a
column named “markup_language
” is used, but this can be
changed by providing a :language_column
option. When a value
is accessed it will create the correct object (Markdown, Textile, Wikitext
or RDoc) based on the value of the language column. If any value besides
markdown, textile, mediawiki, or RDoc is supplied for the markup language
the text will pass through as a string.
You can specify additional options to pass to the markup library by using
:markdown_options
, :textile_options
or
:mediawiki_options
. RDoc does not support any useful options.
The options should be given as an array of arguments. You can specify
options for more than one language when using :variable
. See
each library’s documentation for more details on what options are
available.
class Post < ActiveRecord acts_as_markup :language => :markdown, :columns => [:body] end @post = Post.find(:first) @post.body.to_s # => "## Markdown Headline" @post.body.to_html # => "<h2> Markdown Headline</h2>"
class Post < ActiveRecord acts_as_markup :language => :variable, :columns => [:body], :language_column => 'language_name' end @post = Post.find(:first) @post.language_name # => "markdown" @post.body.to_s # => "## Markdown Headline" @post.body.to_html # => "<h2> Markdown Headline</h2>"
class Post < ActiveRecord acts_as_markup :language => :markdown, :columns => [:body], :markdown_options => [ :filter_html ] end class Post < ActiveRecord acts_as_markup :language => :textile, :columns => [:body], :textile_options => [ [ :filter_html ] ] end class Post < ActiveRecord acts_as_markup :language => :mediawiki, :columns => [:body], :mediawiki_options => [ { :space_to_underscore => true } ] end
# File lib/acts_as_markup/active_record_extension.rb, line 67 def acts_as_markup(options) options.reverse_merge!(:language_column => :markup_language) markup_class = load_markup_class(options) unless options[:language].to_sym == :variable define_markup_columns_reader_methods(markup_class, options) else define_variable_markup_columns_reader_methods(markup_class, options) end end
This is a convenience method for `acts_as_markup :language =>
:mediawiki, :columns => [:body]
` Additional options can be given
at the end, if necessary.
# File lib/acts_as_markup/active_record_extension.rb, line 100 def acts_as_mediawiki(*columns) options = columns.extract_options! acts_as_markup options.merge(:language => :mediawiki, :columns => columns) end
This is a convenience method for `acts_as_markup :language =>
:rdoc, :columns => [:body]
` Additional options can be given at
the end, if necessary.
# File lib/acts_as_markup/active_record_extension.rb, line 109 def acts_as_rdoc(*columns) options = columns.extract_options! acts_as_markup options.merge(:language => :rdoc, :columns => columns) end
This is a convenience method for `acts_as_markup :language =>
:textile, :columns => [:body]
` Additional options can be given at
the end, if necessary.
# File lib/acts_as_markup/active_record_extension.rb, line 91 def acts_as_textile(*columns) options = columns.extract_options! acts_as_markup options.merge(:language => :textile, :columns => columns) end