fcgiwrap 0.1.5 → 0.1.6
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.
- data/ChangeLog +6 -1
- data/lib/fcgiwrap.rb +30 -11
- metadata +49 -42
data/ChangeLog
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
|
1
|
+
2007-09-01 Tatsuki Sugiura <sugi@nemui.org>
|
2
|
+
|
3
|
+
* Speed tune for FCGIWrap.print
|
4
|
+
* Use singleton in FCGIWrap, now works with ruby 1.9
|
5
|
+
|
6
|
+
2006-10-16 Tatsuki Sugiura <sugi@nemui.org>
|
2
7
|
|
3
8
|
* release 0.1.5
|
4
9
|
* add gemspec
|
data/lib/fcgiwrap.rb
CHANGED
@@ -12,9 +12,11 @@
|
|
12
12
|
# FCGIWrap.each {
|
13
13
|
# load '/path/to/original.cgi'
|
14
14
|
# }
|
15
|
+
#
|
15
16
|
|
16
17
|
require 'cgi'
|
17
18
|
require 'fcgi'
|
19
|
+
require 'singleton'
|
18
20
|
|
19
21
|
# for ruby 1.8 blow
|
20
22
|
if RUBY_VERSION.tr(".", "0").to_i < 10801
|
@@ -28,33 +30,49 @@ if RUBY_VERSION.tr(".", "0").to_i < 10801
|
|
28
30
|
end
|
29
31
|
|
30
32
|
class FCGIWrap
|
31
|
-
|
32
|
-
|
33
|
-
|
33
|
+
include Singleton
|
34
|
+
|
35
|
+
VERSION = "0.1.6"
|
36
|
+
|
37
|
+
def initialize
|
38
|
+
cgi = nil
|
39
|
+
shutdown_p = false
|
40
|
+
end
|
41
|
+
attr_accessor :cgi, :shutdown_p
|
42
|
+
|
34
43
|
class << self
|
35
44
|
def cgi
|
36
|
-
|
45
|
+
FCGIWrap.instance.cgi
|
46
|
+
end
|
47
|
+
|
48
|
+
def shutdown?
|
49
|
+
FCGIWrap.instance.shutdown_p
|
50
|
+
end
|
51
|
+
|
52
|
+
def shutdown=(f)
|
53
|
+
FCGIWrap.instance.shutdown_p = f
|
37
54
|
end
|
38
55
|
|
39
56
|
def each_request
|
40
57
|
trap(:PIPE){ exit }
|
41
|
-
trap(:TERM){
|
42
|
-
trap(:INT){
|
43
|
-
FCGI.each_cgi {
|
58
|
+
trap(:TERM){ self.cgi ? (shutdown = true) : exit }
|
59
|
+
trap(:INT){ self.cgi ? (shutdown = true) : exit }
|
60
|
+
FCGI.each_cgi { |cgi|
|
61
|
+
FCGIWrap.instance.cgi = cgi
|
44
62
|
ENV.clear
|
45
|
-
ENV.update(
|
63
|
+
ENV.update(self.cgi.env_table)
|
46
64
|
begin
|
47
65
|
yield
|
48
66
|
rescue SystemExit
|
49
|
-
|
67
|
+
shutdown? && raise
|
50
68
|
ensure
|
51
|
-
|
69
|
+
FCGIWrap.instance.cgi = nil
|
52
70
|
#Thread.list.each { |t|
|
53
71
|
# Thread.current == t and next
|
54
72
|
# t.kill
|
55
73
|
#}
|
56
74
|
end
|
57
|
-
|
75
|
+
shutdown? && exit
|
58
76
|
}
|
59
77
|
end
|
60
78
|
alias each each_request
|
@@ -85,3 +103,4 @@ class CGI
|
|
85
103
|
end
|
86
104
|
end
|
87
105
|
|
106
|
+
# vim: set sts=2 sw=2 expandtab:
|
metadata
CHANGED
@@ -1,56 +1,63 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.0
|
3
|
-
specification_version: 1
|
4
2
|
name: fcgiwrap
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date: 2006-10-16 00:00:00 +09:00
|
8
|
-
summary: A trick to wrap CGI in FastCGI easily
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: sugi@nemui.org
|
12
|
-
homepage:
|
13
|
-
rubyforge_project:
|
14
|
-
description:
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: false
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 0.1.6
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Tatsuki Sugiura
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
- ChangeLog
|
35
|
-
test_files: []
|
36
|
-
|
37
|
-
rdoc_options: []
|
38
|
-
|
39
|
-
extra_rdoc_files:
|
40
|
-
- README
|
41
|
-
executables: []
|
42
|
-
|
43
|
-
extensions: []
|
44
|
-
|
45
|
-
requirements: []
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
46
11
|
|
12
|
+
date: 2008-03-21 00:00:00 +09:00
|
13
|
+
default_executable:
|
47
14
|
dependencies:
|
48
15
|
- !ruby/object:Gem::Dependency
|
49
16
|
name: fcgi
|
50
17
|
version_requirement:
|
51
|
-
version_requirements: !ruby/object:Gem::
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
19
|
requirements:
|
53
|
-
- - "
|
20
|
+
- - ">="
|
54
21
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0
|
22
|
+
version: "0"
|
56
23
|
version:
|
24
|
+
description:
|
25
|
+
email: sugi@nemui.org
|
26
|
+
executables: []
|
27
|
+
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files:
|
31
|
+
- README
|
32
|
+
files:
|
33
|
+
- lib/fcgiwrap.rb
|
34
|
+
- README
|
35
|
+
- ChangeLog
|
36
|
+
has_rdoc: false
|
37
|
+
homepage:
|
38
|
+
post_install_message:
|
39
|
+
rdoc_options: []
|
40
|
+
|
41
|
+
require_paths:
|
42
|
+
- lib
|
43
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: "0"
|
48
|
+
version:
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
54
|
+
version:
|
55
|
+
requirements: []
|
56
|
+
|
57
|
+
rubyforge_project:
|
58
|
+
rubygems_version: 1.0.1
|
59
|
+
signing_key:
|
60
|
+
specification_version: 2
|
61
|
+
summary: A trick to wrap CGI in FastCGI easily
|
62
|
+
test_files: []
|
63
|
+
|