module Governor::Formatters

heavily based on Feather

Public Class Methods

available_formatters() click to toggle source

Returns an array of available formatters that have been registered

# File lib/governor/formatters.rb, line 15
def available_formatters
  @formatters ||= {'default' => default_formatter}
  return @formatters
end
default_formatter() click to toggle source

Returns a default formatter used for replacing line breaks within text This is the only formatter included within Governor

# File lib/governor/formatters.rb, line 23
def default_formatter
  Proc.new do |text|
    text.to_s.gsub("\r\n", "\n").gsub("\n", '<br>')
  end
end
format_article(article) click to toggle source

Performs the relevant formatting for the article, and returns the formatted article content

# File lib/governor/formatters.rb, line 31
def format_article(article)
  format_text(article.format, article.post)
end
format_text(formatter, text) click to toggle source

Performs the requested formatting, returning the formatted text

# File lib/governor/formatters.rb, line 37
def format_text(formatter, text)
  formatter = 'default' unless available_formatters.include?(formatter)
  @formatters[formatter].call(text).html_safe
end
register_formatter(name, &block) click to toggle source

Registers a block to format article content

# File lib/governor/formatters.rb, line 7
def register_formatter(name, &block)
  @formatters ||= {'default' => default_formatter}
  raise "Formatter `#{name}` already registered!" unless @formatters[name].nil?
  @formatters[name] = block
end