Sha256: 57d76b66fcc086b016b80f2e46c35058a474f5afbe3381176bea761abf5dc371

Contents?: true

Size: 731 Bytes

Versions: 2

Compression:

Stored size: 731 Bytes

Contents

module Markaby
  module Rails
    class TemplateHandler < ActionView::TemplateHandler
      include ActionView::TemplateHandlers::Compilable

      def compile(template)
        <<-CODE
          @output_buffer = '' if @output_buffer.blank?;

          variables = @controller.instance_variable_names;
          variables -= @controller.protected_instance_variables if @controller.respond_to?(:protected_instance_variables);
          variables.each { |name| assigns[name.gsub('@','')] = @controller.instance_variable_get(name); };

          output = Markaby::Builder.new(assigns.merge!(local_assigns), self);
          output.instance_eval(#{template.source.dump});
          output.to_s;
        CODE
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dinsley-markaby-0.0.5 lib/markaby/rails/template_handler.rb
dinsley-markaby-0.0.6 lib/markaby/rails/template_handler.rb