diff options
author | wycats <wycats@gmail.com> | 2010-03-19 11:49:53 -0700 |
---|---|---|
committer | wycats <wycats@gmail.com> | 2010-03-19 11:50:03 -0700 |
commit | 9f92563892007c7f42a51ec7926352d50d596579 (patch) | |
tree | 7b35d950f54d8d7599f3d6f2b8ce6b9619c48a31 /actionpack/lib/action_view/template/error.rb | |
parent | 7f53dca1a13e21ec4400a765f637b73c0f194979 (diff) | |
download | rails-9f92563892007c7f42a51ec7926352d50d596579.tar.gz rails-9f92563892007c7f42a51ec7926352d50d596579.tar.bz2 rails-9f92563892007c7f42a51ec7926352d50d596579.zip |
Eliminate an error from an implicit dependency on AV::Base
Diffstat (limited to 'actionpack/lib/action_view/template/error.rb')
-rw-r--r-- | actionpack/lib/action_view/template/error.rb | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/actionpack/lib/action_view/template/error.rb b/actionpack/lib/action_view/template/error.rb index 648f708d3d..5222ffa89c 100644 --- a/actionpack/lib/action_view/template/error.rb +++ b/actionpack/lib/action_view/template/error.rb @@ -1,6 +1,26 @@ require "active_support/core_ext/enumerable" module ActionView + class ActionViewError < StandardError #:nodoc: + end + + class MissingTemplate < ActionViewError #:nodoc: + attr_reader :path + + def initialize(paths, path, details, partial) + @path = path + display_paths = paths.compact.map{ |p| p.to_s.inspect }.join(", ") + template_type = if partial + "partial" + elsif path =~ /layouts/i + 'layout' + else + 'template' + end + + super("Missing #{template_type} #{path} with #{details.inspect} in view paths #{display_paths}") + end + end class Template # The Template::Error exception is raised when the compilation of the template fails. This exception then gathers a # bunch of intimate details and uses it to report a very precise exception message. @@ -73,11 +93,11 @@ module ActionView end def to_s - "\n#{self.class} (#{message}) #{source_location}:\n" + + "\n#{self.class} (#{message}) #{source_location}:\n" + "#{source_extract}\n #{clean_backtrace.join("\n ")}\n\n" end - # don't do anything nontrivial here. Any raised exception from here becomes fatal + # don't do anything nontrivial here. Any raised exception from here becomes fatal # (and can't be rescued). def backtrace @backtrace |