Module: ActionView::Template::Handlers
- Included in:
- ActionView::Template
- Defined in:
- lib/action_view/template/handler.rb,
lib/action_view/template/handlers.rb,
lib/action_view/template/handlers/erb.rb,
lib/action_view/template/handlers/builder.rb
Overview
Defined Under Namespace
Modules: Compilable
Classes: Builder, ERB, Erubis
Constant Summary
collapse
- @@template_handlers =
{}
- @@default_template_handlers =
nil
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.extended(base) ⇒ Object
8
9
10
11
|
# File 'lib/action_view/template/handlers.rb', line 8
def self.extended(base)
base.register_default_template_handler :erb, ERB.new
base.register_template_handler :builder, Builder.new
end
|
.extensions ⇒ Object
16
17
18
|
# File 'lib/action_view/template/handlers.rb', line 16
def self.extensions
@@template_extensions ||= @@template_handlers.keys
end
|
Instance Method Details
#handler_class_for_extension(extension) ⇒ Object
44
45
46
47
48
|
# File 'lib/action_view/template/handlers.rb', line 44
def handler_class_for_extension(extension)
ActiveSupport::Deprecation.warn "handler_class_for_extension is deprecated. " <<
"Please use handler_for_extension instead", caller
handler_for_extension(extension)
end
|
#handler_for_extension(extension) ⇒ Object
50
51
52
|
# File 'lib/action_view/template/handlers.rb', line 50
def handler_for_extension(extension)
registered_template_handler(extension) || @@default_template_handlers
end
|
#register_default_template_handler(extension, klass) ⇒ Object
39
40
41
42
|
# File 'lib/action_view/template/handlers.rb', line 39
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 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.
27
28
29
|
# File 'lib/action_view/template/handlers.rb', line 27
def register_template_handler(extension, klass)
@@template_handlers[extension.to_sym] = klass
end
|
#registered_template_handler(extension) ⇒ Object
35
36
37
|
# File 'lib/action_view/template/handlers.rb', line 35
def registered_template_handler(extension)
extension && @@template_handlers[extension.to_sym]
end
|
#template_handler_extensions ⇒ Object
31
32
33
|
# File 'lib/action_view/template/handlers.rb', line 31
def template_handler_extensions
@@template_handlers.keys.map {|key| key.to_s }.sort
end
|