Sha256: d751345c7b11ee4c9c28872e1d9edd5343d5e731ccd8d802318e5e16ca3dfbdf

Contents?: true

Size: 1.45 KB

Versions: 18

Compression:

Stored size: 1.45 KB

Contents

class Knjappserver::Httpsession::Webrick
	attr_reader :get, :post, :cookie, :meta, :page_path, :headers
	
	def initialize(args)
		@args = args
		@kas = @args[:kas]
	end
	
	def socket_parse(socket)
		req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
		req.parse(socket)
		
		
		#Set meta.
		@meta = req.meta_vars
		
		
		#Set page_path.
		page_filepath = meta["PATH_INFO"]
		if page_filepath.length <= 0 or page_filepath == "/" or File.directory?("#{@kas.config[:doc_root]}/#{page_filepath}")
			page_filepath = "#{page_filepath}/#{@kas.config[:default_page]}"
		end
		
		@page_path = "#{@kas.config[:doc_root]}/#{page_filepath}"
		
		
		#Set get and headers.
		@get = Knj::Web.parse_urlquery(@meta["QUERY_STRING"])
		@headers = req.header
		
		
		#Set post.
		@post = {}
		if meta["REQUEST_METHOD"] == "POST"
			self.convert_webrick_post(@post, req.query)
		end
		
		
		#Set cookie.
		@cookie = {}
		
		req.cookies.each do |cookie_enum|
			@cookie[cookie_enum.name] = CGI.unescape(cookie_enum.value)
		end
		
		
		req.fixup if req and req.keep_alive?
	end
	
	def convert_webrick_post(seton, webrick_post, args = {})
		webrick_post.each do |varname, value|
			Knj::Web.parse_name(seton, varname, value, args)
		end
	end
	
	def destroy
		@args.clear if @args
		@args = nil
		@kas = nil
		
		@meta.clear if @meta
		@meta = nil
		
		@page_path = nil
		
		@get.clear if @get
		@get = nil
		
		@post.clear if @post
		@post = nil
		
		@cookie.clear if @cookie
		@cookie = nil
	end
end

Version data entries

18 entries across 9 versions & 1 rubygems

Version Path
knjappserver-0.0.15 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.15 lib/include/class_httpsession_webrick.rb
knjappserver-0.0.14 lib/include/class_httpsession_webrick.rb
knjappserver-0.0.14 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.13 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.13 lib/include/class_httpsession_webrick.rb
knjappserver-0.0.12 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.12 lib/include/class_httpsession_webrick.rb
knjappserver-0.0.11 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.11 lib/include/class_httpsession_webrick.rb
knjappserver-0.0.10 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.10 lib/include/class_httpsession_webrick.rb
knjappserver-0.0.9 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.9 lib/include/class_httpsession_webrick.rb
knjappserver-0.0.8 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.8 lib/include/class_httpsession_webrick.rb
knjappserver-0.0.6 lib/include/class_httpsession_mongrel.rb
knjappserver-0.0.6 lib/include/class_httpsession_webrick.rb