Sha256: 17c294fec4090580cb715039e9f2b5a537728887d8805dd8a9933675c85ffdd7
Contents?: true
Size: 984 Bytes
Versions: 15
Compression:
Stored size: 984 Bytes
Contents
require 'sinatra/base' require 'markaby' module Sinatra module Markaby # Generate html file using Markaby. # Takes the name of a template to render as a Symbol and returns a String with the rendered output. # # Options for markaby may be specified in Sinatra using set :markaby, { ... } # TODO: the options aren't actually used yet def mab(template=nil, options={}, locals = {}, &block) options, template = template, nil if template.is_a?(Hash) template = lambda { block } if template.nil? render :mab, template, options, locals end protected def render_mab(template, data, options, locals, &block) filename = options.delete(:filename) || '<MARKABY>' line = options.delete(:line) || 1 mab = ::Markaby::Builder.new(locals) if data.respond_to?(:to_str) eval(data.to_str, binding, filename, line) elsif data.kind_of?(Proc) data.call(mab) end end end helpers Markaby end
Version data entries
15 entries across 15 versions & 2 rubygems