diff options
author | Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com> | 2009-06-17 12:00:23 -0700 |
---|---|---|
committer | Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com> | 2009-06-17 12:54:19 -0700 |
commit | 4fad953f90f82e860a69d67745887b40d5b15475 (patch) | |
tree | f66c81f08091549160ce064dce257017f5567282 /actionpack/lib | |
parent | de388ba864ab47cbb3d92b3a36af254540788ed5 (diff) | |
download | rails-4fad953f90f82e860a69d67745887b40d5b15475.tar.gz rails-4fad953f90f82e860a69d67745887b40d5b15475.tar.bz2 rails-4fad953f90f82e860a69d67745887b40d5b15475.zip |
Fixing pending tests and fixed some formats / partial rendering semantics
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_dispatch/http/mime_type.rb | 14 | ||||
-rwxr-xr-x | actionpack/lib/action_dispatch/http/request.rb | 10 | ||||
-rw-r--r-- | actionpack/lib/action_view/base.rb | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/handlers/rjs.rb | 1 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/path.rb | 3 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/template.rb | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/text.rb | 2 |
7 files changed, 22 insertions, 12 deletions
diff --git a/actionpack/lib/action_dispatch/http/mime_type.rb b/actionpack/lib/action_dispatch/http/mime_type.rb index 25156a4c75..dda6604bdd 100644 --- a/actionpack/lib/action_dispatch/http/mime_type.rb +++ b/actionpack/lib/action_dispatch/http/mime_type.rb @@ -2,7 +2,19 @@ require 'set' require 'active_support/core_ext/class/attribute_accessors' module Mime - SET = [] + class Mimes < Array + def symbols + @symbols ||= map {|m| m.to_sym } + end + + %w(<< concat shift unshift push pop []= clear compact! collect! + delete delete_at delete_if flatten! map! insert reject! reverse! + replace slice! sort! uniq!).each do |method| + define_method(method) { @symbols = nil; super } + end + end + + SET = Mimes.new EXTENSION_LOOKUP = {} LOOKUP = Hash.new { |h, k| h[k] = Type.new(k) unless k.blank? } diff --git a/actionpack/lib/action_dispatch/http/request.rb b/actionpack/lib/action_dispatch/http/request.rb index 140feb9a68..3f23a5af7a 100755 --- a/actionpack/lib/action_dispatch/http/request.rb +++ b/actionpack/lib/action_dispatch/http/request.rb @@ -180,12 +180,10 @@ module ActionDispatch else accepts.dup end.tap do |ret| - if defined?(ActionController::Http) - if ret == ONLY_ALL - ret.replace Mime::SET - elsif all = ret.index(Mime::ALL) - ret.delete_at(all) && ret.insert(all, *Mime::SET) - end + if ret == ONLY_ALL + ret.replace Mime::SET + elsif all = ret.index(Mime::ALL) + ret.delete_at(all) && ret.insert(all, *Mime::SET) end end else diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb index 4ab568b44c..2d8f51300a 100644 --- a/actionpack/lib/action_view/base.rb +++ b/actionpack/lib/action_view/base.rb @@ -258,9 +258,11 @@ module ActionView #:nodoc: def with_template(current_template) last_template, self.template = template, current_template + old_formats, self.formats = formats, [current_template.mime_type.to_sym] + Mime::SET.symbols yield ensure self.template = last_template + self.formats = old_formats end def punctuate_body!(part) diff --git a/actionpack/lib/action_view/template/handlers/rjs.rb b/actionpack/lib/action_view/template/handlers/rjs.rb index a36744c2b7..b1d15dc209 100644 --- a/actionpack/lib/action_view/template/handlers/rjs.rb +++ b/actionpack/lib/action_view/template/handlers/rjs.rb @@ -6,7 +6,6 @@ module ActionView self.default_format = Mime::JS def compile(template) - "@formats = [:html];" + "controller.response.content_type ||= Mime::JS;" + "update_page do |page|;#{template.source}\nend" end diff --git a/actionpack/lib/action_view/template/path.rb b/actionpack/lib/action_view/template/path.rb index 478bf96c9a..c3837a9f07 100644 --- a/actionpack/lib/action_view/template/path.rb +++ b/actionpack/lib/action_view/template/path.rb @@ -47,8 +47,7 @@ module ActionView def formats_glob @formats_glob ||= begin - formats = Mime::SET.map { |m| m.symbol } - '{' + formats.map { |l| ".#{l}," }.join + '}' + '{' + Mime::SET.symbols.map { |l| ".#{l}," }.join + '}' end end diff --git a/actionpack/lib/action_view/template/template.rb b/actionpack/lib/action_view/template/template.rb index e7ea42c2eb..53aaa3dded 100644 --- a/actionpack/lib/action_view/template/template.rb +++ b/actionpack/lib/action_view/template/template.rb @@ -20,7 +20,7 @@ module ActionView handler.respond_to?(:default_format) ? handler.default_format.to_sym.to_s : "html" end @mime_type = Mime::Type.lookup_by_extension(format.to_s) - @details[:formats] = Array.wrap(format && format.to_sym) + @details[:formats] = Array.wrap(format.to_sym) end def render(view, locals, &blk) diff --git a/actionpack/lib/action_view/template/text.rb b/actionpack/lib/action_view/template/text.rb index fd57b1677e..81944ff546 100644 --- a/actionpack/lib/action_view/template/text.rb +++ b/actionpack/lib/action_view/template/text.rb @@ -3,7 +3,7 @@ module ActionView #:nodoc: def initialize(string, content_type = Mime[:html]) super(string.to_s) - @content_type = Mime[content_type] + @content_type = Mime[content_type] || content_type end def details |