Module: ActionView::Template::Handlers

Included in:
ActionView::Template
Defined in:
actionpack/lib/action_view/template/handler.rb,
actionpack/lib/action_view/template/handlers.rb,
actionpack/lib/action_view/template/handlers/erb.rb,
actionpack/lib/action_view/template/handlers/rjs.rb,
actionpack/lib/action_view/template/handlers/builder.rb

Overview

:nodoc:

Defined Under Namespace

Modules: Compilable Classes: Builder, ERB, Erubis, RJS

Constant Summary

@@template_handlers =
{}
@@default_template_handlers =
nil

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Object) extended(base)



9
10
11
12
13
14
15
16
17
# File 'actionpack/lib/action_view/template/handlers.rb', line 9

def self.extended(base)
  base.register_default_template_handler :erb, ERB
  base.register_template_handler :rjs, RJS
  base.register_template_handler :builder, Builder

  # TODO: Depreciate old template extensions
  base.register_template_handler :rhtml, ERB
  base.register_template_handler :rxml, Builder
end

+ (Object) extensions



22
23
24
# File 'actionpack/lib/action_view/template/handlers.rb', line 22

def self.extensions
  @@template_extensions ||= @@template_handlers.keys
end

Instance Method Details

- (Object) handler_class_for_extension(extension)



50
51
52
# File 'actionpack/lib/action_view/template/handlers.rb', line 50

def handler_class_for_extension(extension)
  (extension && registered_template_handler(extension.to_sym)) || @@default_template_handlers
end

- (Object) register_default_template_handler(extension, klass)



45
46
47
48
# File 'actionpack/lib/action_view/template/handlers.rb', line 45

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

- (Object) register_template_handler(extension, klass)

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 ActiveView::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.



33
34
35
# File 'actionpack/lib/action_view/template/handlers.rb', line 33

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

- (Object) registered_template_handler(extension)



41
42
43
# File 'actionpack/lib/action_view/template/handlers.rb', line 41

def registered_template_handler(extension)
  extension && @@template_handlers[extension.to_sym]
end

- (Object) template_handler_extensions



37
38
39
# File 'actionpack/lib/action_view/template/handlers.rb', line 37

def template_handler_extensions
  @@template_handlers.keys.map {|key| key.to_s }.sort
end