diff options
author | Yehuda Katz <wycats@gmail.com> | 2009-10-26 17:13:43 -0700 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2009-10-26 17:13:43 -0700 |
commit | d7499f8ee8faa80d12dccae5baf5ab2acc79e77d (patch) | |
tree | c9de47c00168afcd6535def9913858791ae8e7c9 /actionpack/lib/action_controller/metal/head.rb | |
parent | 60cc86136bffc96bc62798538e08e0d28138d41c (diff) | |
download | rails-d7499f8ee8faa80d12dccae5baf5ab2acc79e77d.tar.gz rails-d7499f8ee8faa80d12dccae5baf5ab2acc79e77d.tar.bz2 rails-d7499f8ee8faa80d12dccae5baf5ab2acc79e77d.zip |
Extract #head into its own module and simplify it
Diffstat (limited to 'actionpack/lib/action_controller/metal/head.rb')
-rw-r--r-- | actionpack/lib/action_controller/metal/head.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/metal/head.rb b/actionpack/lib/action_controller/metal/head.rb new file mode 100644 index 0000000000..68fa0a0402 --- /dev/null +++ b/actionpack/lib/action_controller/metal/head.rb @@ -0,0 +1,27 @@ +module ActionController + module Head + # 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 + # significant headers: + # + # head :created, :location => person_path(@person) + # + # It can also be used to return exceptional conditions: + # + # return head(:method_not_allowed) unless request.post? + # return head(:bad_request) unless valid_request? + # render + def head(status, options = {}) + options, status = status, nil if status.is_a?(Hash) + status ||= options.delete(:status) || :ok + location = options.delete(:location) + + options.each do |key, value| + headers[key.to_s.dasherize.split(/-/).map { |v| v.capitalize }.join("-")] = value.to_s + end + + render :nothing => true, :status => status, :location => location + end + end +end
\ No newline at end of file |