Sha256: dfed9cf5babef92a91c6baa9540a450e4e094f8117f86502058d2fc1f1b46a0d
Contents?: true
Size: 1.07 KB
Versions: 181
Compression:
Stored size: 1.07 KB
Contents
require 'tilt/template' module Tilt # Markaby # http://github.com/markaby/markaby class MarkabyTemplate < Template def self.builder_class @builder_class ||= Class.new(Markaby::Builder) do def __capture_markaby_tilt__(&block) __run_markaby_tilt__ do text capture(&block) end end end end def self.engine_initialized? defined? ::Markaby end def initialize_engine require_template_library 'markaby' end def prepare end def evaluate(scope, locals, &block) builder = self.class.builder_class.new({}, scope) builder.locals = locals if data.kind_of? Proc (class << builder; self end).send(:define_method, :__run_markaby_tilt__, &data) else builder.instance_eval <<-CODE, __FILE__, __LINE__ def __run_markaby_tilt__ #{data} end CODE end if block builder.__capture_markaby_tilt__(&block) else builder.__run_markaby_tilt__ end builder.to_s end end end
Version data entries
181 entries across 156 versions & 27 rubygems