---
 server/lib/sinatra/respond_to.rb |   29 +++++++++++++++++------------
 1 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/server/lib/sinatra/respond_to.rb b/server/lib/sinatra/respond_to.rb
index c097e8e..bafcff7 100644
--- a/server/lib/sinatra/respond_to.rb
+++ b/server/lib/sinatra/respond_to.rb
@@ -45,19 +45,24 @@ module Sinatra
         next if self.class.development? && request.path_info =~ 
%r{/__sinatra__/.*?.png}
 
         unless options.static? && options.public? && (request.get? || 
request.head?) && static_file?(request.path_info)
-          request.path_info.sub! %r{\.([^\./]+)$}, ''
-
-          ext = nil
-          if request.xhr? && options.assume_xhr_is_js?
-            ext = :js
-          elsif ! $1.nil?
-            ext = $1
-          elsif env['HTTP_ACCEPT'].nil? || env['HTTP_ACCEPT'].empty?
-            ext = options.default_content
-          end
-          if ext
-            @mime_types = [ Helpers::mime_type(ext) ]
-            format ext
+          rpi = request.path_info.sub(%r{\.([^\./]+)$}, '')
+
+          if (not $1) or ($1 and TEXT_MIME_TYPES.include?($1.to_sym))
+
+            request.path_info=rpi
+            ext = nil
+
+            if request.xhr? && options.assume_xhr_is_js?
+              ext = :js
+            elsif ! $1.nil?
+              ext = $1
+            elsif env['HTTP_ACCEPT'].nil? || env['HTTP_ACCEPT'].empty?
+              ext = options.default_content
+            end
+            if ext
+              @mime_types = [ Helpers::mime_type(ext) ]
+              format ext
+            end
           end
         end
       end
-- 
1.7.1

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to