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

Version Path
tdreyno-middleman-0.4.1 vendor/sinatra-markaby/lib/sinatra/markaby.rb
tdreyno-middleman-0.5.0 vendor/sinatra-markaby/lib/sinatra/markaby.rb
tdreyno-middleman-0.5.2 vendor/sinatra-markaby/lib/sinatra/markaby.rb
tdreyno-middleman-0.5.3 vendor/sinatra-markaby/lib/sinatra/markaby.rb
tdreyno-middleman-0.5.4 vendor/sinatra-markaby/lib/sinatra/markaby.rb
tdreyno-middleman-0.5.5 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.5.5 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.5.4 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.5.3 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.5.2 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.5.1 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.4.2 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.5.0 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.4.0 vendor/sinatra-markaby/lib/sinatra/markaby.rb
middleman-0.4.1 vendor/sinatra-markaby/lib/sinatra/markaby.rb