aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-10-23 06:33:28 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-10-23 06:33:28 +0000
commit562b398fd729b05bfde4da90b91efc24dbbac49d (patch)
treec83bdedb4104bf6dd72f7842f3beecf88d27d779 /actionpack
parent28729a4829c68409717ecf82a6b407672ff5fa7d (diff)
downloadrails-562b398fd729b05bfde4da90b91efc24dbbac49d.tar.gz
rails-562b398fd729b05bfde4da90b91efc24dbbac49d.tar.bz2
rails-562b398fd729b05bfde4da90b91efc24dbbac49d.zip
Some mime type refactoring. Closes #9957 [Josh Peek]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8001 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_controller/caching.rb2
-rw-r--r--actionpack/lib/action_controller/mime_responds.rb27
-rw-r--r--actionpack/lib/action_controller/mime_type.rb4
3 files changed, 11 insertions, 22 deletions
diff --git a/actionpack/lib/action_controller/caching.rb b/actionpack/lib/action_controller/caching.rb
index 3c2202e038..ce03a979f8 100644
--- a/actionpack/lib/action_controller/caching.rb
+++ b/actionpack/lib/action_controller/caching.rb
@@ -251,7 +251,7 @@ module ActionController #:nodoc:
private
def set_content_type!(controller, extension)
- controller.response.content_type = Mime::EXTENSION_LOOKUP[extension].to_s if extension
+ controller.response.content_type = Mime::Type.lookup_by_extension(extension).to_s if extension
end
def path_options_for(controller, options)
diff --git a/actionpack/lib/action_controller/mime_responds.rb b/actionpack/lib/action_controller/mime_responds.rb
index 600877fe4c..a375ac894a 100644
--- a/actionpack/lib/action_controller/mime_responds.rb
+++ b/actionpack/lib/action_controller/mime_responds.rb
@@ -110,14 +110,11 @@ module ActionController #:nodoc:
class Responder #:nodoc:
def initialize(controller)
- @controller = controller
- @request = controller.request
- @response = controller.response
+ @controller = controller
+ @request = controller.request
+ @response = controller.response
- format = @request.parameters[:format]
- @mime_type_priority = format && Mime::EXTENSION_LOOKUP[format] ?
- [ Mime::EXTENSION_LOOKUP[format] ] :
- @request.accepts
+ @mime_type_priority = Array(Mime::Type.lookup_by_extension(@request.parameters[:format]) || @request.accepts)
@order = []
@responses = {}
@@ -128,18 +125,10 @@ module ActionController #:nodoc:
@order << mime_type
- if block_given?
- @responses[mime_type] = Proc.new do
- @response.template.template_format = mime_type.to_sym
- @response.content_type = mime_type.to_s
- block.call
- end
- else
- @responses[mime_type] = Proc.new do
- @response.template.template_format = mime_type.to_sym
- @response.content_type = mime_type.to_s
- @controller.send :render, :action => @controller.action_name
- end
+ @responses[mime_type] = Proc.new do
+ @response.template.template_format = mime_type.to_sym
+ @response.content_type = mime_type.to_s
+ block_given? ? block.call : @controller.send(:render, :action => @controller.action_name)
end
end
diff --git a/actionpack/lib/action_controller/mime_type.rb b/actionpack/lib/action_controller/mime_type.rb
index a0e2e70deb..ec9d2eea6d 100644
--- a/actionpack/lib/action_controller/mime_type.rb
+++ b/actionpack/lib/action_controller/mime_type.rb
@@ -1,7 +1,7 @@
module Mime
SET = []
- EXTENSION_LOOKUP = Hash.new { |h, k| h[k] = Type.new(k) unless k == "" }
- LOOKUP = Hash.new { |h, k| h[k] = Type.new(k) unless k == "" }
+ EXTENSION_LOOKUP = Hash.new { |h, k| h[k] = Type.new(k) unless k.blank? }
+ LOOKUP = Hash.new { |h, k| h[k] = Type.new(k) unless k.blank? }
# Encapsulates the notion of a mime type. Can be used at render time, for example, with:
#