[Hiki-cvs 1456] [1004] must not use cgi library when using rack

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 8月 24日 (月) 00:02:38 JST


Revision: 1004
          http://sourceforge.jp/projects/hiki/svn/view?view=rev&revision=1004
Author:   okkez
Date:     2009-08-24 00:02:38 +0900 (Mon, 24 Aug 2009)

Log Message:
-----------
must not use cgi library when using rack

Modified Paths:
--------------
    hiki/branches/rack/hiki/request.rb

Modified: hiki/branches/rack/hiki/request.rb
===================================================================
--- hiki/branches/rack/hiki/request.rb	2009-08-23 15:02:35 UTC (rev 1003)
+++ hiki/branches/rack/hiki/request.rb	2009-08-23 15:02:38 UTC (rev 1004)
@@ -2,6 +2,7 @@
 
 module Hiki
   if Object.const_defined?(:CGI)
+    raise RuntimeError, 'Do not use CGI class!' if Object.const_defined?(:Rack)
     # CGI を Rack::Request っぽいインターフェイスに変換する
     class Request
       attr_reader :env, :cgi
@@ -63,15 +64,15 @@
       end
 
       def xhr?
-        raise 'not implemented'
+        raise NameError, 'not implemented : xhr?'
       end
 
       def accept_encoding
-        raise 'not implemented'
+        raise NameError, 'not implemented : accept_encoding'
       end
 
       def body
-        raise 'not implemented'
+        raise NameError, 'not implemented : body'
       end
 
       def content_charset
@@ -107,84 +108,85 @@
       end
 
       def form_data?
-        raise 'not implemented'
+        raise NameError, 'not implemented : form_data?'
       end
 
       def fullpath
-        raise 'not implemented'
+        raise NameError, 'not implemented : fullpath'
       end
 
       def host
-        raise 'not implemented'
+        # Remove port number.from Rack::Response
+        (@env["HTTP_HOST"] || @env["SERVER_NAME"]).gsub(/:\d+\z/, '')
       end
 
       def ip
-        raise 'not implemented'
+        raise NameError, 'not implemented : ip'
       end
 
       def media_type
-        raise 'not implemented'
+        raise NameError, 'not implemented : madia_type'
       end
 
       def media_type_params
-        raise 'not implemented'
+        raise NameError, 'not implemented : media_type_params'
       end
 
       def openid_request
-        raise 'not implemented'
+        raise NameError, 'not implemented : openid_request'
       end
 
       def openid_response
-        raise 'not implemented'
+        raise NameError, 'not implemented : openid_response'
       end
 
       def parseable_data?
-        raise 'not implemented'
+        raise NameError, 'not implemented : parseable_data?'
       end
 
       def path
-        raise 'not implemented'
+        raise NameError, 'not implemented : path'
       end
 
       def path_info
-        raise 'not implemented'
+        @env['PATH_INFO'].to_s
       end
 
       def path_info=(s)
-        raise 'not implemented'
+        raise NameError, 'not implemented : path_info='
       end
 
       def port
-        raise 'not implemented'
+        raise NameError, 'not implemented : port'
       end
 
       def query_string
-        raise 'not implemented'
+        raise NameError, 'not implemented : query_string'
       end
 
       def referer
-        raise 'not implemented'
+        raise NameError, 'not implemented : referer'
       end
       alias referrer referer
 
       def schema
-        raise 'not implemented'
+        raise NameError, 'not implemented : schema'
       end
 
       def script_name
-        raise 'not implemented'
+        @env['SCRIPT_NAME']
       end
 
       def session_options
-        raise 'not implemented'
+        raise NameError, 'not implemented : session_options'
       end
 
       def url
-        raise 'not implemented'
+        raise NameError, 'not implemented : url'
       end
 
       def values_at(*keys)
-        raise 'not implemented'
+        raise NameError, 'not implemented : values_at'
       end
     end
   else




Hiki-cvs メーリングリストの案内
Back to archive index