AC::Head now doesn't have an unfulfilled Rendering dependency, and instead works just fine standalone (which means that ConditionalGet also doesn't have a Rendering dependency)
This commit is contained in:
parent
eeda059818
commit
17f66473bc
@ -5,6 +5,7 @@ class ActionNotFound < StandardError; end
|
||||
class Base
|
||||
attr_internal :response_body
|
||||
attr_internal :action_name
|
||||
attr_internal :formats
|
||||
|
||||
class << self
|
||||
attr_reader :abstract
|
||||
|
@ -16,7 +16,6 @@ module Rendering
|
||||
include AbstractController::Logger
|
||||
|
||||
included do
|
||||
attr_internal :formats
|
||||
extlib_inheritable_accessor :_view_paths
|
||||
self._view_paths ||= ActionView::PathSet.new
|
||||
end
|
||||
|
@ -89,7 +89,7 @@ def _normalize_options(action = nil, options = {}, &blk)
|
||||
end
|
||||
|
||||
if options[:status]
|
||||
options[:status] = _interpret_status(options[:status])
|
||||
options[:status] = ActionDispatch::StatusCodes[options[:status]]
|
||||
end
|
||||
|
||||
options[:update] = blk if block_given?
|
||||
|
@ -68,6 +68,10 @@ def location=(url)
|
||||
headers["Location"] = url
|
||||
end
|
||||
|
||||
def status=(status)
|
||||
@_status = ActionDispatch::StatusCodes[status]
|
||||
end
|
||||
|
||||
# :api: private
|
||||
def dispatch(name, env)
|
||||
@_env = env
|
||||
@ -92,6 +96,7 @@ def self.for(controller, action, stack)
|
||||
|
||||
def initialize(controller, action)
|
||||
@controller, @action = controller, action
|
||||
@_formats = [Mime::HTML]
|
||||
end
|
||||
|
||||
def call(env)
|
||||
|
@ -1,5 +1,7 @@
|
||||
module ActionController
|
||||
module Head
|
||||
include UrlFor
|
||||
|
||||
# Return a response that has no content (merely headers). The options
|
||||
# argument is interpreted to be a hash of header names and values.
|
||||
# This allows you to easily return a response that consists only of
|
||||
@ -21,7 +23,10 @@ def head(status, options = {})
|
||||
headers[key.to_s.dasherize.split(/-/).map { |v| v.capitalize }.join("-")] = value.to_s
|
||||
end
|
||||
|
||||
render :nothing => true, :status => status, :location => location
|
||||
self.status = status
|
||||
self.location = url_for(location) if location
|
||||
self.content_type = Mime[formats.first]
|
||||
self.response_body = " "
|
||||
end
|
||||
end
|
||||
end
|
@ -62,9 +62,9 @@ def redirect_to(options = {}, response_status = {}) #:doc:
|
||||
private
|
||||
def _extract_redirect_to_status(options, response_status)
|
||||
status = if options.is_a?(Hash) && options.key?(:status)
|
||||
_interpret_status(options.delete(:status))
|
||||
ActionDispatch::StatusCodes[options.delete(:status)]
|
||||
elsif response_status.key?(:status)
|
||||
_interpret_status(response_status[:status])
|
||||
ActionDispatch::StatusCodes[response_status[:status]]
|
||||
else
|
||||
302
|
||||
end
|
||||
@ -86,13 +86,5 @@ def _compute_redirect_to_location(options)
|
||||
url_for(options)
|
||||
end.gsub(/[\r\n]/, '')
|
||||
end
|
||||
|
||||
def _interpret_status(status)
|
||||
if status.is_a?(Symbol)
|
||||
(ActionDispatch::StatusCodes::SYMBOL_TO_STATUS_CODE[status] || 500)
|
||||
else
|
||||
status.to_i
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -60,7 +60,7 @@ def cache_control
|
||||
end
|
||||
|
||||
def status=(status)
|
||||
@status = status.to_i
|
||||
@status = ActionDispatch::StatusCodes[status]
|
||||
end
|
||||
|
||||
# The response code of the request
|
||||
|
@ -14,6 +14,14 @@ module StatusCodes #:nodoc:
|
||||
510 => "Not Extended"
|
||||
}).freeze
|
||||
|
||||
def self.[](status)
|
||||
if status.is_a?(Symbol)
|
||||
SYMBOL_TO_STATUS_CODE[status] || 500
|
||||
else
|
||||
status.to_i
|
||||
end
|
||||
end
|
||||
|
||||
# Provides a symbol-to-fixnum lookup for converting a symbol (like
|
||||
# :created or :not_implemented) into its corresponding HTTP status
|
||||
# code (like 200 or 501).
|
||||
|
Loading…
Reference in New Issue
Block a user