Instiki 0.16.3: Rails 2.3.0
Instiki now runs on the Rails 2.3.0 Candidate Release. Among other improvements, this means that it now automagically selects between WEBrick and Mongrel. Just run ./instiki --daemon
This commit is contained in:
parent
43aadecc99
commit
4e14ccc74d
893 changed files with 71965 additions and 28511 deletions
103
vendor/rails/actionpack/lib/action_view/base.rb
vendored
103
vendor/rails/actionpack/lib/action_view/base.rb
vendored
|
@ -3,9 +3,12 @@ module ActionView #:nodoc:
|
|||
end
|
||||
|
||||
class MissingTemplate < ActionViewError #:nodoc:
|
||||
attr_reader :path
|
||||
|
||||
def initialize(paths, path, template_format = nil)
|
||||
@path = path
|
||||
full_template_path = path.include?('.') ? path : "#{path}.erb"
|
||||
display_paths = paths.join(':')
|
||||
display_paths = paths.compact.join(":")
|
||||
template_type = (path =~ /layouts/i) ? 'layout' : 'template'
|
||||
super("Missing #{template_type} #{full_template_path} in view path #{display_paths}")
|
||||
end
|
||||
|
@ -157,7 +160,7 @@ module ActionView #:nodoc:
|
|||
#
|
||||
# See the ActionView::Helpers::PrototypeHelper::GeneratorMethods documentation for more details.
|
||||
class Base
|
||||
include ERB::Util
|
||||
include Helpers, Partials, ::ERB::Util
|
||||
extend ActiveSupport::Memoizable
|
||||
|
||||
attr_accessor :base_path, :assigns, :template_extension
|
||||
|
@ -172,26 +175,13 @@ module ActionView #:nodoc:
|
|||
delegate :logger, :to => 'ActionController::Base'
|
||||
end
|
||||
|
||||
# Templates that are exempt from layouts
|
||||
@@exempt_from_layout = Set.new([/\.rjs$/])
|
||||
|
||||
# Don't render layouts for templates with the given extensions.
|
||||
def self.exempt_from_layout(*extensions)
|
||||
regexps = extensions.collect do |extension|
|
||||
extension.is_a?(Regexp) ? extension : /\.#{Regexp.escape(extension.to_s)}$/
|
||||
end
|
||||
@@exempt_from_layout.merge(regexps)
|
||||
end
|
||||
|
||||
@@debug_rjs = false
|
||||
##
|
||||
# :singleton-method:
|
||||
# Specify whether RJS responses should be wrapped in a try/catch block
|
||||
# that alert()s the caught exception (and then re-raises it).
|
||||
@@debug_rjs = false
|
||||
cattr_accessor :debug_rjs
|
||||
|
||||
# A warning will be displayed whenever an action results in a cache miss on your view paths.
|
||||
@@warn_cache_misses = false
|
||||
cattr_accessor :warn_cache_misses
|
||||
|
||||
attr_internal :request
|
||||
|
||||
delegate :request_forgery_protection_token, :template, :params, :session, :cookies, :response, :headers,
|
||||
|
@ -234,26 +224,27 @@ module ActionView #:nodoc:
|
|||
@view_paths = self.class.process_view_paths(paths)
|
||||
end
|
||||
|
||||
# Renders the template present at <tt>template_path</tt> (relative to the view_paths array).
|
||||
# The hash in <tt>local_assigns</tt> is made available as local variables.
|
||||
# Returns the result of a render that's dictated by the options hash. The primary options are:
|
||||
#
|
||||
# * <tt>:partial</tt> - See ActionView::Partials.
|
||||
# * <tt>:update</tt> - Calls update_page with the block given.
|
||||
# * <tt>:file</tt> - Renders an explicit template file (this used to be the old default), add :locals to pass in those.
|
||||
# * <tt>:inline</tt> - Renders an inline template similar to how it's done in the controller.
|
||||
# * <tt>:text</tt> - Renders the text passed in out.
|
||||
#
|
||||
# If no options hash is passed or :update specified, the default is to render a partial and use the second parameter
|
||||
# as the locals hash.
|
||||
def render(options = {}, local_assigns = {}, &block) #:nodoc:
|
||||
local_assigns ||= {}
|
||||
|
||||
if options.is_a?(String)
|
||||
ActiveSupport::Deprecation.warn(
|
||||
"Calling render with a string will render a partial from Rails 2.3. " +
|
||||
"Change this call to render(:file => '#{options}', :locals => locals_hash)."
|
||||
)
|
||||
|
||||
render(:file => options, :locals => local_assigns)
|
||||
elsif options == :update
|
||||
update_page(&block)
|
||||
elsif options.is_a?(Hash)
|
||||
case options
|
||||
when Hash
|
||||
options = options.reverse_merge(:locals => {})
|
||||
if options[:layout]
|
||||
_render_with_layout(options, local_assigns, &block)
|
||||
elsif options[:file]
|
||||
_pick_template(options[:file]).render_template(self, options[:locals])
|
||||
tempalte = self.view_paths.find_template(options[:file], template_format)
|
||||
tempalte.render_template(self, options[:locals])
|
||||
elsif options[:partial]
|
||||
render_partial(options)
|
||||
elsif options[:inline]
|
||||
|
@ -261,6 +252,10 @@ module ActionView #:nodoc:
|
|||
elsif options[:text]
|
||||
options[:text]
|
||||
end
|
||||
when :update
|
||||
update_page(&block)
|
||||
else
|
||||
render_partial(:partial => options, :locals => local_assigns)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -271,7 +266,7 @@ module ActionView #:nodoc:
|
|||
if defined? @template_format
|
||||
@template_format
|
||||
elsif controller && controller.respond_to?(:request)
|
||||
@template_format = controller.request.template_format
|
||||
@template_format = controller.request.template_format.to_sym
|
||||
else
|
||||
@template_format = :html
|
||||
end
|
||||
|
@ -307,50 +302,6 @@ module ActionView #:nodoc:
|
|||
end
|
||||
end
|
||||
|
||||
def _pick_template(template_path)
|
||||
return template_path if template_path.respond_to?(:render)
|
||||
|
||||
path = template_path.sub(/^\//, '')
|
||||
if m = path.match(/(.*)\.(\w+)$/)
|
||||
template_file_name, template_file_extension = m[1], m[2]
|
||||
else
|
||||
template_file_name = path
|
||||
end
|
||||
|
||||
# OPTIMIZE: Checks to lookup template in view path
|
||||
if template = self.view_paths["#{template_file_name}.#{template_format}"]
|
||||
template
|
||||
elsif template = self.view_paths[template_file_name]
|
||||
template
|
||||
elsif (first_render = @_render_stack.first) && first_render.respond_to?(:format_and_extension) &&
|
||||
(template = self.view_paths["#{template_file_name}.#{first_render.format_and_extension}"])
|
||||
template
|
||||
elsif template_format == :js && template = self.view_paths["#{template_file_name}.html"]
|
||||
@template_format = :html
|
||||
template
|
||||
else
|
||||
template = Template.new(template_path, view_paths)
|
||||
|
||||
if self.class.warn_cache_misses && logger
|
||||
logger.debug "[PERFORMANCE] Rendering a template that was " +
|
||||
"not found in view path. Templates outside the view path are " +
|
||||
"not cached and result in expensive disk operations. Move this " +
|
||||
"file into #{view_paths.join(':')} or add the folder to your " +
|
||||
"view path list"
|
||||
end
|
||||
|
||||
template
|
||||
end
|
||||
end
|
||||
memoize :_pick_template
|
||||
|
||||
def _exempt_from_layout?(template_path) #:nodoc:
|
||||
template = _pick_template(template_path).to_s
|
||||
@@exempt_from_layout.any? { |ext| template =~ ext }
|
||||
rescue ActionView::MissingTemplate
|
||||
return false
|
||||
end
|
||||
|
||||
def _render_with_layout(options, local_assigns, &block) #:nodoc:
|
||||
partial_layout = options.delete(:layout)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue