narf 0.5.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. data/ChangeLog +44 -0
  2. data/README +6 -2
  3. data/README~ +124 -0
  4. data/build.rb +3 -2
  5. data/build.rb~ +1 -1
  6. data/doc/apache_cgi.txt +1 -5
  7. data/doc/apache_cgi.txt~ +17 -0
  8. data/doc/fastcgi.txt +1 -1
  9. data/doc/fastcgi.txt~ +19 -0
  10. data/doc/rdoc/classes/Web.html +9 -6
  11. data/doc/rdoc/classes/Web.src/M000002.html +1 -1
  12. data/doc/rdoc/classes/Web.src/M000003.html +1 -1
  13. data/doc/rdoc/classes/Web.src/M000004.html +1 -1
  14. data/doc/rdoc/classes/Web.src/M000005.html +1 -1
  15. data/doc/rdoc/classes/Web.src/M000006.html +1 -1
  16. data/doc/rdoc/classes/Web.src/M000007.html +1 -1
  17. data/doc/rdoc/classes/Web.src/M000008.html +1 -1
  18. data/doc/rdoc/classes/Web.src/M000009.html +1 -1
  19. data/doc/rdoc/classes/Web/CGD.src/M000038.html +2 -1
  20. data/doc/rdoc/classes/Web/CGD.src/M000039.html +1 -1
  21. data/doc/rdoc/classes/Web/CGD.src/M000040.html +1 -1
  22. data/doc/rdoc/classes/Web/CGD.src/M000041.html +1 -1
  23. data/doc/rdoc/classes/Web/CGI.src/M000105.html +1 -1
  24. data/doc/rdoc/classes/Web/CGI.src/M000106.html +1 -1
  25. data/doc/rdoc/classes/Web/CGI.src/M000107.html +1 -1
  26. data/doc/rdoc/classes/Web/Narflates.html +4 -2
  27. data/doc/rdoc/classes/Web/Testing.src/M000027.html +1 -4
  28. data/doc/rdoc/classes/Web/Testing.src/M000028.html +1 -2
  29. data/doc/rdoc/classes/Web/Testing.src/M000029.html +1 -1
  30. data/doc/rdoc/classes/Web/Testing.src/M000030.html +1 -1
  31. data/doc/rdoc/classes/Web/Testing.src/M000031.html +1 -1
  32. data/doc/rdoc/classes/Web/Testing.src/M000032.html +1 -1
  33. data/doc/rdoc/classes/Web/Testing.src/M000033.html +1 -1
  34. data/doc/rdoc/classes/Web/Testing.src/M000034.html +1 -1
  35. data/doc/rdoc/classes/Web/Testing.src/M000035.html +1 -1
  36. data/doc/rdoc/classes/Web/Testing.src/M000036.html +1 -1
  37. data/doc/rdoc/created.rid +1 -1
  38. data/doc/rdoc/files/README.html +7 -3
  39. data/doc/rdoc/files/doc/apache_cgi_txt.html +3 -9
  40. data/doc/rdoc/files/doc/fastcgi_txt.html +2 -2
  41. data/doc/rdoc/files/lib/web/cgi_rb.html +1 -1
  42. data/doc/rdoc/files/lib/web/parser_rb.html +1 -1
  43. data/doc/rdoc/files/lib/web/template_rb.html +1 -1
  44. data/doc/rdoc/files/lib/web/testing_rb.html +1 -1
  45. data/doc/rdoc/files/lib/web/wiki_rb.html +1 -1
  46. data/doc/rdoc/files/lib/web_rb.html +1 -1
  47. data/lib/web.rb +127 -20
  48. data/lib/web/parser.rb +25 -7
  49. data/lib/web/parser.rb~ +30 -8
  50. data/lib/web/template.rb +6 -4
  51. data/lib/web/wiki.rb +23 -12
  52. data/lib/web/wiki.rb~ +1 -1
  53. data/narf-0.5.1.gem +0 -0
  54. data/narf.gemspec +1 -1
  55. data/narf.gemspec~ +18 -30
  56. data/test/test.request.rb +33 -20
  57. data/test/test.request.rb~ +10 -0
  58. data/test/testfiles/mac_ie_env.yaml +32 -0
  59. data/test/testfiles/mac_ie_stdin.bin +0 -0
  60. data/test/testfiles/mac_safari_stdin.bin +0 -0
  61. data/test/wiki/test.tarpit.rb +16 -0
  62. data/test/wiki/test.tarpit.rb~ +40 -0
  63. metadata +9 -3
  64. data/vandals.test.txt +0 -3
data/ChangeLog CHANGED
@@ -1,4 +1,48 @@
1
1
  ------------------------------------------------------------------------
2
+ rev 62: patsplat | 2004-11-03 00:39:47 -0500 (Wed, 03 Nov 2004) | 1 line
3
+
4
+ Updated ChangeLog for 0.6.0
5
+ ------------------------------------------------------------------------
6
+ rev 61: patsplat | 2004-11-03 00:35:31 -0500 (Wed, 03 Nov 2004) | 1 line
7
+
8
+ added escapeHTML methods from cgi.rb; setup tarpit to accept IP ranges ~ pat
9
+ ------------------------------------------------------------------------
10
+ rev 60: patsplat | 2004-10-31 17:04:24 -0500 (Sun, 31 Oct 2004) | 1 line
11
+
12
+ fixed multipart bug ~pat
13
+ ------------------------------------------------------------------------
14
+ rev 59: patsplat | 2004-10-04 00:47:29 -0400 (Mon, 04 Oct 2004) | 1 line
15
+
16
+ re-arrangements ~ pat
17
+ ------------------------------------------------------------------------
18
+ rev 58: patsplat | 2004-10-03 11:42:02 -0400 (Sun, 03 Oct 2004) | 1 line
19
+
20
+ documention tweaks ~ pat
21
+ ------------------------------------------------------------------------
22
+ rev 57: patsplat | 2004-10-03 11:27:46 -0400 (Sun, 03 Oct 2004) | 1 line
23
+
24
+ re-arranged documentation ~ pat
25
+ ------------------------------------------------------------------------
26
+ rev 56: patsplat | 2004-10-03 10:45:08 -0400 (Sun, 03 Oct 2004) | 1 line
27
+
28
+ made Web::env case insensitive (because who cares about case anyways?) ~ pat
29
+ ------------------------------------------------------------------------
30
+ rev 55: patsplat | 2004-10-01 20:25:15 -0400 (Fri, 01 Oct 2004) | 1 line
31
+
32
+ added Web::clear & fixed trivial failures in test.assertincludes.rb for 1.6 -> 1.8 ~ pat
33
+ ------------------------------------------------------------------------
34
+ rev 54: patsplat | 2004-09-04 01:06:48 -0400 (Sat, 04 Sep 2004) | 1 line
35
+
36
+ more documentation fixes ~ pat
37
+ ------------------------------------------------------------------------
38
+ rev 52: patsplat | 2004-09-03 18:21:33 -0400 (Fri, 03 Sep 2004) | 1 line
39
+
40
+ Updated ChangeLog for 0.5.1
41
+ ------------------------------------------------------------------------
42
+ rev 51: patsplat | 2004-09-03 18:20:36 -0400 (Fri, 03 Sep 2004) | 1 line
43
+
44
+ added inatallation notes ~ pat
45
+ ------------------------------------------------------------------------
2
46
  rev 49: patsplat | 2004-09-03 18:19:24 -0400 (Fri, 03 Sep 2004) | 1 line
3
47
 
4
48
  Updated ChangeLog for 0.5.0
data/README CHANGED
@@ -52,7 +52,9 @@ this:
52
52
  === Hello World
53
53
 
54
54
  require 'web'
55
- Web << 'Hello World'
55
+ Web::process do
56
+ Web << 'Hello World'
57
+ end
56
58
 
57
59
  === Testing an App
58
60
 
@@ -66,7 +68,9 @@ where script.rb is:
66
68
  #!/usr/bin/ruby
67
69
  require 'web'
68
70
 
69
- Web << "param is #{Web["param"]}"
71
+ Web::process do
72
+ Web << "param is #{Web["param"]}"
73
+ end
70
74
 
71
75
  and test.rb is:
72
76
 
data/README~ ADDED
@@ -0,0 +1,124 @@
1
+ === Purpose
2
+
3
+ NARF is a replacement for, and derivative of, the Ruby CGI
4
+ library. It exists one reason:
5
+
6
+ * To trivialize web development
7
+
8
+ We hope that these 3 lines of development will accomplish our task:
9
+
10
+ * To provide a clean API for writing Web applications.
11
+
12
+ * To make it very easy to write testable Web applications (using
13
+ Web::Testing), and provide a template system (Web::Narflates).
14
+
15
+ * To test the above goals by developing integrated, high quality,
16
+ configurable versions of common web apps in a simple and easy
17
+ to use manner. The heart of http://www.narf-lib.org, Web::Wiki
18
+ is an easy to use wiki. Not the only one, but it does make
19
+ us eat our own dogfood :-)
20
+
21
+ NARF does all of this as a regular CGI application. It also runs in-process under fastcgi, mod_ruby, and webrick. View these files for details:
22
+
23
+ * sapi/fastcgi/INSTALL.txt
24
+ * sapi/mod_ruby/INSTALL.txt
25
+ * sapi/webrick/INSTALL.txt
26
+
27
+ === Installation
28
+
29
+ Run the installer for NARF:
30
+
31
+ ruby build.rb test (optional)
32
+
33
+ ruby install.rb config
34
+ ruby install.rb setup
35
+ ruby install.rb install
36
+
37
+ === Dependencies
38
+
39
+ NARF requires the following packages on ruby 1.6. These packages are included in ruby 1.8:
40
+
41
+ testunit (unit testing framework):
42
+ http://testunit.talbott.ws/packages/testunit-0.1.6.tar.gz
43
+
44
+ strscan (string scanner library):
45
+ http://www.loveruby.net/archive/strscan/strscan-0.6.5.tar.gz
46
+
47
+ You can use raa-install (http://www.ruby-lang.org/raa/list.rhtml?id=729) for
48
+ this:
49
+ raa-install -i testunit
50
+ raa-install -i strscan
51
+
52
+ === Hello World
53
+
54
+ require 'web'
55
+ Web << 'Hello World'
56
+
57
+ === Testing an App
58
+
59
+ If you haven't noticed, NARF has a cgi style api. It's also has a testing api. Given these files:
60
+
61
+ script.rb
62
+ test.rb
63
+
64
+ where script.rb is:
65
+
66
+ #!/usr/bin/ruby
67
+ require 'web'
68
+
69
+ Web << "param is #{Web["param"]}"
70
+
71
+ and test.rb is:
72
+
73
+ require 'web'
74
+ require 'test/unit'
75
+
76
+ class MyAppTest < Test::Unit::TestCase
77
+ include Web::Testing
78
+
79
+ def test_prints_content
80
+ do_request "script.rb", "param" => "THIS!"
81
+ assert_content "param is THIS!"
82
+ end
83
+ end
84
+
85
+ Do this to run tests:
86
+
87
+ ruby test.rb
88
+
89
+ See Web::Testing for more examples.
90
+
91
+ === Websites
92
+
93
+ Home page:
94
+ http://www.narf-lib.org
95
+
96
+ Project info page, including downloads and CVS instructions:
97
+ http://www.sourceforge.net/projects/narf-lib
98
+
99
+ === Credits
100
+
101
+ Narf was written by Tom Clarke and Patrick May, partly based on cgi.rb
102
+ written by Wakou Aoyama. It makes significant use of ruby-htmltools,
103
+ written by Ned Konz. Also, Keunwoo Lee patched Request.read_multipart
104
+ to be cleaner.
105
+
106
+ NARF contains code from the following projects, and we are in their debt:
107
+
108
+ ruby-htmltools::
109
+ This is a Ruby library for building trees representing HTML structure.
110
+ http://bike-nomad.com/ruby
111
+ sgml-parser::
112
+ The html-parser package is a variant language implementation of the
113
+ Python's SGML parser (sgmllib.py), HTML parser (htmllib.py) and
114
+ Formatter (formatter.py).
115
+ http://www.jin.gr.jp/%7Enahi/Ruby/html-parser/README.html
116
+ webunit::
117
+ WebUnit is Ruby API for testing html/cgi without browser, and is
118
+ idealy suited for automated unit testing of web sites when combined
119
+ with a Ruby unit test framework such as RubyUnit. It was designed
120
+ and implemented by Masaki Suketa.
121
+ http://www.xpenguin.biz/download/webunit/index-en.html
122
+
123
+ Thanks also go to http://www.sourceforge.net for hosting the
124
+ project's CVS and website
data/build.rb CHANGED
@@ -169,13 +169,14 @@ Target.new( "test", "run narf unit tests" ) {
169
169
  require 'test/unit'
170
170
  require 'test/unit/ui/console/testrunner'
171
171
 
172
- $:.replace(['./lib/'].concat($:))
173
-
172
+ $:.replace( ['./lib/'].concat($:) )
173
+
174
174
  require 'web'
175
175
  require 'web/wiki'
176
176
 
177
177
  def setup_wiki
178
178
  File.rm_rf( Web::Wiki::store_dir )
179
+ Web::Wiki::wipe
179
180
  end
180
181
 
181
182
  alias :teardown_wiki :setup_wiki
data/build.rb~ CHANGED
@@ -109,7 +109,7 @@ end
109
109
 
110
110
  Target.new( "upload_doc", "upload doc" ) {
111
111
  Target.run( "rdoc" )
112
- `scp -r rdoc/* patsplat@ssh.narf-lib.org:~/narf-lib.org/doc`
112
+ `scp -r doc/rdoc/* patsplat@ssh.narf-lib.org:~/narf-lib.org/doc`
113
113
  }
114
114
 
115
115
  Target.new( "rdoc", "build rdoc" ) {
@@ -10,8 +10,4 @@ Copy this file where ever you like, make it executable, and tell apache to run i
10
10
 
11
11
  #!/usr/local/bin/narf
12
12
 
13
- This file may likely has a buffer overflow in it. Please be cautious with this until I can get verification that it is ok.
14
-
15
- Cheers,
16
-
17
- patrick@hexane.org
13
+ This file may have a buffer overflow in it. Please be cautious with this until I can get verification that it is ok.
@@ -0,0 +1,17 @@
1
+ The main advantage of this executable is that this runner can print syntax errors to the screen. To compile, run this from the project root (/narf):
2
+
3
+ ruby build.rb compile_narf_runner
4
+
5
+ The compiled binary will be in
6
+
7
+ /narf/apache_cgi/bin/narf
8
+
9
+ Copy this file where ever you like, make it executable, and tell apache to run it with a shebang:
10
+
11
+ #!/usr/local/bin/narf
12
+
13
+ This file may likely has a buffer overflow in it. Please be cautious with this until I can get verification that it is ok.
14
+
15
+ Cheers,
16
+
17
+ patrick@hexane.org
@@ -10,7 +10,7 @@ You can find a list of FastCGI servers here:
10
10
 
11
11
  After installing and configuring the appropriate libraries for your server, you will need to make sure that the cgi script executes in a Web::process block:
12
12
 
13
- #!/usr/local/bin/ruby
13
+ #!/usr/local/bin/ruby -rweb
14
14
 
15
15
  Web::process{
16
16
  Web << 'Hello World!'
@@ -0,0 +1,19 @@
1
+ == FastCGI
2
+
3
+ FastCGI support for narf requires the 'fcgi' libary:
4
+
5
+ http://raa.ruby-lang.org/list.rhtml?name=fcgi
6
+
7
+ You can find a list of FastCGI servers here:
8
+
9
+ http://www.fastcgi.com
10
+
11
+ After installing and configuring the appropriate libraries for your server, you will need to make sure that the cgi script executes in a Web::process block:
12
+
13
+ #!/usr/local/bin/ruby
14
+
15
+ Web::process{
16
+ Web << 'Hello World!'
17
+ }
18
+
19
+ There is a neat continuation trick that matz discussed in [ruby-talk:13428] that makes the Web::process block unnecessary. I've had some trouble getting it too work; when I do, I'll update these docs.
@@ -87,12 +87,15 @@ module delegates to a <a href="Web/CGI.html">Web::CGI</a> object, which
87
87
  does the actual work.
88
88
  </p>
89
89
  <pre>
90
- #!/usr/bin/narf
91
- Web[&quot;field&quot;] # access parameters
92
- Web.cookies[&quot;muppet&quot;] # access cookies
93
- Web.session[&quot;key&quot;] ||= &quot;value&quot; # get and set session values
94
- Web.set_cookie( &quot;muppet&quot;, &quot;cookie monster&quot; ) # set cookies
95
- Web.puts &quot;something&quot; # print 'something' out
90
+ #!/usr/bin/ruby
91
+ require 'web'
92
+ Web::process do
93
+ Web[&quot;field&quot;] # access parameters
94
+ Web.cookies[&quot;muppet&quot;] # access cookies
95
+ Web.session[&quot;key&quot;] ||= &quot;value&quot; # get and set session values
96
+ Web.set_cookie( &quot;muppet&quot;, &quot;cookie monster&quot; ) # set cookies
97
+ Web.puts &quot;something&quot; # print 'something' out
98
+ end
96
99
  </pre>
97
100
  <p>
98
101
  If the request contained multipart/form-data, uploaded files are returned
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web.rb, line 162</span>
10
+ <pre><span class="cmt"># File lib/web.rb, line 165</span>
11
11
  <span class="kw">def</span> method_missing(method, *args, &amp;block)
12
12
  CGI.get_cgi.send(method,*args, &amp;block)
13
13
  <span class="kw">end</span></pre>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web.rb, line 166</span>
10
+ <pre><span class="cmt"># File lib/web.rb, line 169</span>
11
11
  <span class="kw">def</span> set_cgi( cgi )
12
12
  CGI.set_cgi( cgi )
13
13
  <span class="kw">end</span></pre>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web.rb, line 170</span>
10
+ <pre><span class="cmt"># File lib/web.rb, line 173</span>
11
11
  <span class="kw">def</span> get_cgi
12
12
  CGI.get_cgi
13
13
  <span class="kw">end</span></pre>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web.rb, line 174</span>
10
+ <pre><span class="cmt"># File lib/web.rb, line 177</span>
11
11
  <span class="kw">def</span> process(options={}, &amp;block)
12
12
  CGI.process(options, &amp;block)
13
13
  <span class="kw">end</span></pre>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web.rb, line 180</span>
10
+ <pre><span class="cmt"># File lib/web.rb, line 183</span>
11
11
  <span class="kw">def</span> Web::html_encode(string)
12
12
  <span class="kw">return</span> <span class="kw">nil</span> <span class="kw">unless</span> string
13
13
  newstring = string.dup
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web.rb, line 191</span>
10
+ <pre><span class="cmt"># File lib/web.rb, line 194</span>
11
11
  <span class="kw">def</span> Web::escape(string)
12
12
  <span class="kw">return</span> <span class="kw">nil</span> <span class="kw">unless</span> string
13
13
  string.gsub(<span class="re">/([^ a-zA-Z0-9_.-]+)/n</span>) <span class="kw">do</span>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web.rb, line 200</span>
10
+ <pre><span class="cmt"># File lib/web.rb, line 203</span>
11
11
  <span class="kw">def</span> Web::unescape(string)
12
12
  <span class="kw">return</span> <span class="kw">nil</span> <span class="kw">unless</span> string
13
13
  string.tr(<span class="str">'+'</span>, <span class="str">' '</span>).gsub(<span class="re">/((?:%[0-9a-fA-F]{2})+)/n</span>) <span class="kw">do</span>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web.rb, line 211</span>
10
+ <pre><span class="cmt"># File lib/web.rb, line 214</span>
11
11
  <span class="kw">def</span> Web::rfc1123_date(time)
12
12
  t = time.clone.gmtime
13
13
  <span class="kw">return</span> format(<span class="str">&quot;%s, %.2d %s %.4d %.2d:%.2d:%.2d GMT&quot;</span>,
@@ -14,8 +14,9 @@
14
14
  @input = options[:in] || $stdin
15
15
  @output = options[:out] || $stdout
16
16
  @env = downcase_env( options[:env] || ENV )
17
-
17
+
18
18
  @env[<span class="str">'document_root'</span>] = options[:document_root] || Web.get_docroot || @env[<span class="str">'document_root'</span>]
19
+ @env[<span class="str">'script_name'</span> ] = options[:script_name] || @env[<span class="str">'script_name'</span>]
19
20
 
20
21
  parse_request
21
22
  <span class="kw">end</span></pre>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web/cgi.rb, line 541</span>
10
+ <pre><span class="cmt"># File lib/web/cgi.rb, line 542</span>
11
11
  <span class="kw">def</span> close
12
12
 
13
13
  <span class="kw">end</span></pre>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web/cgi.rb, line 546</span>
10
+ <pre><span class="cmt"># File lib/web/cgi.rb, line 547</span>
11
11
  <span class="kw">def</span> nph?
12
12
  @options[:nph] || <span class="re">/IIS/</span>.match(env[<span class="str">&quot;server_software&quot;</span>])
13
13
  <span class="kw">end</span></pre>
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web/cgi.rb, line 550</span>
10
+ <pre><span class="cmt"># File lib/web/cgi.rb, line 551</span>
11
11
  <span class="kw">def</span> send_header( header )
12
12
  send_nph_header( header ) <span class="kw">if</span> (nph?)
13
13
 
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web/cgi.rb, line 577</span>
10
+ <pre><span class="cmt"># File lib/web/cgi.rb, line 578</span>
11
11
  <span class="kw">def</span> report_error( err )
12
12
  <span class="kw">self</span>.puts <span class="str">&quot;&lt;h3&gt;ruby error:&lt;/h3&gt;&quot;</span>
13
13
  <span class="kw">self</span>.puts Dir.pwd
@@ -7,7 +7,7 @@
7
7
  <link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
8
8
  </head>
9
9
  <body bgcolor="white">
10
- <pre><span class="cmt"># File lib/web/cgi.rb, line 592</span>
10
+ <pre><span class="cmt"># File lib/web/cgi.rb, line 593</span>
11
11
  <span class="kw">def</span> CGI::server_sniff
12
12
  <span class="kw">if</span>( Object.const_defined?( <span class="str">&quot;Apache&quot;</span> ) \
13
13
  &amp;&amp; Apache.const_defined?( <span class="str">&quot;Request&quot;</span> ) \