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.
Files changed (3) hide show
  1. data/ChangeLog +6 -1
  2. data/lib/fcgiwrap.rb +30 -11
  3. metadata +49 -42
data/ChangeLog CHANGED
@@ -1,4 +1,9 @@
1
- 06-10-16 Tatsuki Sugiura <sugi@nemui.org>
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
@@ -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
- VERSION = "0.1.5"
32
- @@cgi = nil
33
- @@shutdown = false
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
- @@cgi
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){ @@cgi ? (@@shutdown = true) : exit }
42
- trap(:INT){ @@cgi ? (@@shutdown = true) : exit }
43
- FCGI.each_cgi { |@@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(@@cgi.env_table)
63
+ ENV.update(self.cgi.env_table)
46
64
  begin
47
65
  yield
48
66
  rescue SystemExit
49
- @@shutdown && raise
67
+ shutdown? && raise
50
68
  ensure
51
- @@cgi = nil
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
- @@shutdown && exit
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.5
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
- files:
32
- - lib/fcgiwrap.rb
33
- - README
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::Version::Requirement
18
+ version_requirements: !ruby/object:Gem::Requirement
52
19
  requirements:
53
- - - ">"
20
+ - - ">="
54
21
  - !ruby/object:Gem::Version
55
- version: 0.0.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
+