Module: Reactive::Mvc::View::TemplateHandlers

Included in:
Template
Defined in:
lib/reactive-mvc/view/template_handlers.rb,
lib/reactive-mvc/view/template_handlers/erb.rb,
lib/reactive-mvc/view/template_handlers/builder.rb,
lib/reactive-mvc/view/template_handlers/ruby_code.rb

Overview

:nodoc:

Defined Under Namespace

Classes: Builder, ERB, RubyCode

Constant Summary collapse

@@template_handlers =
{}
@@default_template_handlers =
nil

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



9
10
11
12
13
# File 'lib/reactive-mvc/view/template_handlers.rb', line 9

def self.extended(base)
  base.register_default_template_handler :rb, TemplateHandlers::RubyCode
  base.register_template_handler :erb, TemplateHandlers::ERB
#        base.register_template_handler :builder, TemplateHandlers::Builder
end

Instance Method Details

#handler_class_for_extension(extension) ⇒ Object



38
39
40
# File 'lib/reactive-mvc/view/template_handlers.rb', line 38

def handler_class_for_extension(extension)
  (extension && @@template_handlers[extension.to_sym]) || @@default_template_handlers
end

#register_default_template_handler(extension, klass) ⇒ Object



33
34
35
36
# File 'lib/reactive-mvc/view/template_handlers.rb', line 33

def register_default_template_handler(extension, klass)
  register_template_handler(extension, klass)
  @@default_template_handlers = klass
end

#register_template_handler(extension, klass) ⇒ Object

Register a class that knows how to handle template files with the given extension. This can be used to implement new template types. The constructor for the class must take the Reactive::View::Base instance as a parameter, and the class must implement a render method that takes the contents of the template to render as well as the Hash of local assigns available to the template. The render method ought to return the rendered template as a string.



25
26
27
# File 'lib/reactive-mvc/view/template_handlers.rb', line 25

def register_template_handler(extension, klass)
  @@template_handlers[extension.to_sym] = klass
end

#template_handler_extensionsObject



29
30
31
# File 'lib/reactive-mvc/view/template_handlers.rb', line 29

def template_handler_extensions
  @@template_handlers.keys.map(&:to_s).sort
end