class Pione::Util::CGIInfo

CGIInfo is a store of CGI meta-variables based on RFC3875.

Attributes

auth_type[RW]

CGI meta-variable “AUTH_TYPE”

body[RW]

request body

content_length[RW]

CGI meta-variable “CONTENT_LENGTH”

content_type[RW]

CGI meta-variable “CONTENT_TYPE”

gateway_interface[RW]

CGI meta-variable “GATEWAY_INTERFACE”

http_header[RW]

HTTP specific variable table

path_info[RW]

CGI meta-variable “PATH_INFO”

path_translated[RW]

CGI meta-variable “PATH_TRANSLATED”

query_string[RW]

CGI meta-variable “QUERY_STRING”

remote_addr[RW]

CGI meta-variable “REMOTE_ADDR”

remote_host[RW]

CGI meta-variable “REMOTE_HOST”

remote_ident[RW]

CGI meta-variable “REMOTE_IDENT”

remote_user[RW]

CGI meta-variable “REMOTE_USER”

request_method[RW]

CGI meta-variable “REQUEST_METHOD”

script_name[RW]

CGI meta-variable “SCRIPT_NAME”

server_name[RW]

CGI meta-variable “SERVER_NAME”

server_port[RW]

CGI meta-variable “SERVER_PORT”

server_protocol[RW]

CGI meta-variable “SERVER_PROTOCOL”

server_software[RW]

CGI meta-variable “SERVER_SOFTWARE”

Public Class Methods

new() click to toggle source
# File lib/pione/util/cgi.rb, line 68
def initialize
  @auth_type = nil
  @content_length = nil
  @content_type = nil
  @gateway_interface = "CGI/1.1"
  @path_info = nil
  @path_translated = nil
  @query_string = nil
  @remote_addr = nil
  @remote_host = nil
  @remote_ident = nil
  @remote_user = nil
  @request_method = nil
  @script_name = nil
  @server_name = nil
  @server_port = nil
  @server_protocol = "HTTP/1.1"
  @server_software = "PIONE/%s" % Pione::VERSION
  @body = nil
  @http_header = Hash.new
end

Public Instance Methods

create_arguments() click to toggle source
# File lib/pione/util/cgi.rb, line 123
def create_arguments
  unless @query_string.include?("=")
    return @query_string.split("+").map do |arg|
      begin
        CGIUtils.decode(arg)
      rescue
        raise CGIError.failed_to_decode(@query_string)
      end
    end
  end

  return []
end
create_env() click to toggle source

Create environment variables. @return [Hash]

environment variables
# File lib/pione/util/cgi.rb, line 93
def create_env
  env = Hash.new

  # store CGI meta-variables
  env["AUTH_TYPE"] = @auth_type if @auth_type
  env["CONTENT_LENGTH"] = @content_length if @content_length
  env["CONTENT_TYPE"] = @content_type if @content_type
  env["GATEWAY_INTERFACE"] = @gateway_interface
  env["PATH_INFO"] = @path_info
  env["PATH_TRANSLATED"] = @path_translated
  env["QUERY_STRING"] = @query_string
  env["REMOTE_ADDR"] = @remote_addr
  env["REMOTE_HOST"] = @remote_host
  env["REMOTE_IDENT"] = @remote_ident if @remote_ident
  env["REMOTE_USER"] = @remote_user if @remote_user
  env["REQUEST_METHOD"] = @request_method.to_s
  env["SCRIPT_NAME"] = @script_name
  env["SERVER_NAME"] = @server_name
  env["SERVER_PORT"] = @server_port
  env["SERVER_PROTOCOL"] = @server_protocol
  env["SERVER_SOFTWARE"] = @server_software

  # store HTTP specific variables
  @http_header.each do |key, val|
    env["HTTP_%s" % key] = val
  end

  return env
end