aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/template.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_view/template.rb')
-rw-r--r--actionpack/lib/action_view/template.rb33
1 files changed, 6 insertions, 27 deletions
diff --git a/actionpack/lib/action_view/template.rb b/actionpack/lib/action_view/template.rb
index d4118f0f86..8142232c8f 100644
--- a/actionpack/lib/action_view/template.rb
+++ b/actionpack/lib/action_view/template.rb
@@ -1,12 +1,13 @@
module ActionView #:nodoc:
class Template #:nodoc:
+ include Renderer
+
class << self
# TODO: Deprecate
delegate :register_template_handler, :to => 'ActionView::Base'
end
- attr_accessor :locals
- attr_reader :handler, :path, :extension, :filename, :method
+ attr_reader :path, :extension
def initialize(view, path, use_full_path = nil, locals = {})
unless use_full_path == nil
@@ -19,9 +20,10 @@ module ActionView #:nodoc:
@original_path = path
@path = TemplateFile.from_path(path)
@view.first_render ||= @path.to_s
- @source = nil # Don't read the source until we know that it is required
+
set_extension_and_file_name
+ @method_key = @filename
@locals = locals || {}
@handler = Base.handler_class_for_extension(@extension).new(@view)
end
@@ -38,37 +40,14 @@ module ActionView #:nodoc:
end
end
- def render
- prepare!
- @handler.render(self)
- end
-
- def path_without_extension
- @path.path_without_extension
- end
-
def source
@source ||= File.read(self.filename)
end
- def method_key
- @filename
- end
-
def base_path_for_exception
(@paths.find_load_path_for_path(@path) || @paths.first).to_s
end
- def prepare!
- @view.send :evaluate_assigns
- @view.current_render_extension = @extension
-
- if @handler.compilable?
- @handler.compile_template(self) # compile the given template, if necessary
- @method = @view.method_names[method_key] # Set the method name for this template and run it
- end
- end
-
private
def set_extension_and_file_name
@extension = @path.extension
@@ -94,7 +73,7 @@ module ActionView #:nodoc:
full_template_path = @original_path.include?('.') ? @original_path : "#{@original_path}.#{@view.template_format}.erb"
display_paths = @paths.join(':')
template_type = (@original_path =~ /layouts/i) ? 'layout' : 'template'
- raise(MissingTemplate, "Missing #{template_type} #{full_template_path} in view path #{display_paths}")
+ raise MissingTemplate, "Missing #{template_type} #{full_template_path} in view path #{display_paths}"
end
end
end