Module: InlineTemplates

Defined in:
lib/inline_templates.rb,
lib/inline_templates/builder.rb,
lib/inline_templates/helpers.rb,
lib/inline_templates/version.rb,
lib/inline_templates/blank_object.rb,
lib/inline_templates/buffer_wrapper.rb,
lib/inline_templates/template_handler.rb,
lib/inline_templates/rendering_context.rb

Defined Under Namespace

Modules: Helpers Classes: BlankObject, BufferWrapper, Builder, RenderingContext, TemplateHandler

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.render(view, details, locals, &block) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/inline_templates.rb', line 14

def self.render(view, details, locals, &block)
  identifier = "(inline:#{block.inspect})"
 
  handler = ->(template) do
    method_name = nil
    template.instance_exec do
      method_name = self.method_name
 
      view.singleton_class.send :define_method, "#{method_name}_block" do
        block 
      end
    end
 
    "      @output_buffer ||= ActionView::OutputBuffer.new\n      context = ::InlineTemplates::RenderingContext.new(self, local_assigns, ::InlineTemplates::Builder.new)\n      context.instance_exec &self.\#{method_name}_block\n      @output_buffer.to_s\n    EOF\n  end\n \n  template = ActionView::Template.new(\"\", identifier, handler, details)\n  template.render view, locals\nend\n"