Sha256: ce3e404c05087ebedb5a7698e7af4d911c8d9b6cc6f5a74685a84e40607034ec
Contents?: true
Size: 1.11 KB
Versions: 3
Compression:
Stored size: 1.11 KB
Contents
%w(rouge github-markdown).each do |lib| begin require lib.gsub('-', '/') rescue LoadError => ex raise ex, "In order to use the HtmlSerializer you need the gem `#{lib}` in your Gemfile" end end module Almodovar class ResourcePresenter class HtmlSerializer < Serializer TEMPLATE_PATH = File.join(File.dirname(__FILE__), 'template.html.erb') def to_html template = File.read(TEMPLATE_PATH) ERB.new(template).result(binding) end def metadata resource.resource_class.metadata end def beautify(representation) formatter = Rouge::Formatters::HTML.new lexer = Rouge::Lexers::XML.new body = formatter.format(lexer.lex(representation)) body = body.gsub(/\"(http\S+)\"/) { url = $1; "\"<a href=\"#{url}\">#{url}</a>\"" } body.html_safe end def metadata_text(text) return if text.blank? if indentation = text[/\n\s+/] text = text.gsub(indentation, "\n") end text = text.strip text = GitHub::Markdown.render text text.html_safe end end end end
Version data entries
3 entries across 3 versions & 1 rubygems