Class: CGI

Inherits:
Object show all
Defined in:
lib/web/shim/cgi.rb

Instance Method Summary collapse

Constructor Details

#initialize(type = "query") ⇒ CGI

Returns a new instance of CGI.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/web/shim/cgi.rb', line 20

def initialize(type = "query")
  case type
  when "html3"
    extend Html3
    element_init()
    extend HtmlExtension
  when "html4"
    extend Html4
    element_init()
    extend HtmlExtension
  when "html4Tr"
    extend Html4Tr
    element_init()
    extend HtmlExtension
  when "html4Fr"
    extend Html4Tr
    element_init()
    extend Html4Fr
    element_init()
    extend HtmlExtension
  end
  
  Web::filter do |content|
    while content.gsub!( /^(.+): (.+)/, '' )
      if ($1.downcase == "location")
        Web::set_redirect($2)
      else
        Web::add_header( $1, $2 )
      end
    end
    content
  end
end

Instance Method Details

#[](key) ⇒ Object



54
55
56
# File 'lib/web/shim/cgi.rb', line 54

def [] key
  Web[key]
end

#cookiesObject



88
89
90
91
92
93
94
95
96
# File 'lib/web/shim/cgi.rb', line 88

def cookies
  unless @cookies
    @cookies = Web::cookie
    @cookies.each do |k,v|
      @cookies[k] =  CGI::Cookie::new( k, v )
    end
  end
  @cookies
end

#env_tableObject



84
85
86
# File 'lib/web/shim/cgi.rb', line 84

def env_table
  Web::env
end

#has_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


106
107
108
# File 'lib/web/shim/cgi.rb', line 106

def has_key?(key)
  self.params.has_key?(key)
end

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)


110
111
112
# File 'lib/web/shim/cgi.rb', line 110

def key?(key)
  self.params.has_key?(key)
end

#keysObject



114
115
116
# File 'lib/web/shim/cgi.rb', line 114

def keys
  self.params.keys
end

#out(headers = Array.new) ⇒ Object



119
120
121
122
123
124
125
126
127
# File 'lib/web/shim/cgi.rb', line 119

def out(headers=Array.new)
  headers.each do |k,v|
    k = "Set-Cookie" if (k.downcase == "cookie")
    v.each do |v1|
      Web::add_header(k,v1)
    end
  end
  Web << yield
end

#paramsObject

params has slightly different logic than Web::request



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/web/shim/cgi.rb', line 59

def params
  @params ||= nil
  unless @params
    @params = Hash.new
    Web::request.each do |k,v|
      @params[k] ||= Array.new
      v.each do |v1|
        if (Web::multipart?)
          @params[k].push( if v1.kind_of? Web::Upload
                             v1
                           else
                             t = Tempfile.new("Web")
                             t.write(v1)
                             Web::Upload.new(t, nil, nil)
                           end )
        else
          @params[k].push v1
        end
      end
    end
  end
  @params
end

#query_stringObject



102
103
104
# File 'lib/web/shim/cgi.rb', line 102

def query_string
  Web::env[:query_string]
end

#script_nameObject



98
99
100
# File 'lib/web/shim/cgi.rb', line 98

def script_name
  Web::script_name
end