Module: ActionView::Template::Handlers
Do not use. This module is for internal use only.
Relationships & Source Files | |
Namespace Children | |
Classes:
| |
Extension / Inclusion / Inheritance Descendants | |
Extended In:
| |
Defined in: | actionview/lib/action_view/template/handlers.rb, actionview/lib/action_view/template/handlers/builder.rb, actionview/lib/action_view/template/handlers/erb.rb, actionview/lib/action_view/template/handlers/html.rb, actionview/lib/action_view/template/handlers/raw.rb, actionview/lib/action_view/template/handlers/erb/erubi.rb |
Class Method Summary
Instance Method Summary
- #handler_for_extension(extension)
- #register_default_template_handler(extension, klass)
-
#register_template_handler(*extensions, handler)
Register an object that knows how to handle template files with the given extensions.
- #registered_template_handler(extension)
- #template_handler_extensions
-
#unregister_template_handler(*extensions)
Opposite to register_template_handler.
Class Method Details
.extended(base)
[ GitHub ]# File 'actionview/lib/action_view/template/handlers.rb', line 12
def self.extended(base) base.register_default_template_handler :raw, Raw.new base.register_template_handler :erb, ERB.new base.register_template_handler :html, Html.new base.register_template_handler :builder, Builder.new base.register_template_handler :ruby, lambda { |_, source| source } end
.extensions
[ GitHub ]# File 'actionview/lib/action_view/template/handlers.rb', line 23
def self.extensions @@template_extensions ||= @@template_handlers.keys end
Instance Method Details
#handler_for_extension(extension)
[ GitHub ]# File 'actionview/lib/action_view/template/handlers.rb', line 61
def handler_for_extension(extension) registered_template_handler(extension) || @@default_template_handlers end
#register_default_template_handler(extension, klass)
[ GitHub ]# File 'actionview/lib/action_view/template/handlers.rb', line 56
def register_default_template_handler(extension, klass) register_template_handler(extension, klass) @@default_template_handlers = klass end
#register_template_handler(*extensions, handler)
Register an object that knows how to handle template files with the given extensions. This can be used to implement new template types. The handler must respond to :call
, which will be passed the template and should return the rendered template as a ::String
.
# File 'actionview/lib/action_view/template/handlers.rb', line 31
def register_template_handler(*extensions, handler) raise(ArgumentError, "Extension is required") if extensions.empty? extensions.each do |extension| @@template_handlers[extension.to_sym] = handler end @@template_extensions = nil end
#registered_template_handler(extension)
[ GitHub ]# File 'actionview/lib/action_view/template/handlers.rb', line 52
def registered_template_handler(extension) extension && @@template_handlers[extension.to_sym] end
#template_handler_extensions
[ GitHub ]# File 'actionview/lib/action_view/template/handlers.rb', line 48
def template_handler_extensions @@template_handlers.keys.map(&:to_s).sort end
#unregister_template_handler(*extensions)
Opposite to register_template_handler.
# File 'actionview/lib/action_view/template/handlers.rb', line 40
def unregister_template_handler(*extensions) extensions.each do |extension| handler = @@template_handlers.delete extension.to_sym @@default_template_handlers = nil if @@default_template_handlers == handler end @@template_extensions = nil end