thin 1.2.6-x86-mingw32

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 (137) hide show
  1. data/CHANGELOG +273 -0
  2. data/COPYING +18 -0
  3. data/README +69 -0
  4. data/Rakefile +39 -0
  5. data/benchmark/abc +51 -0
  6. data/benchmark/benchmarker.rb +80 -0
  7. data/benchmark/runner +82 -0
  8. data/bin/thin +6 -0
  9. data/example/adapter.rb +32 -0
  10. data/example/async_app.ru +126 -0
  11. data/example/async_chat.ru +247 -0
  12. data/example/async_tailer.ru +100 -0
  13. data/example/config.ru +22 -0
  14. data/example/monit_sockets +20 -0
  15. data/example/monit_unixsock +20 -0
  16. data/example/myapp.rb +1 -0
  17. data/example/ramaze.ru +12 -0
  18. data/example/thin.god +80 -0
  19. data/example/thin_solaris_smf.erb +36 -0
  20. data/example/thin_solaris_smf.readme.txt +150 -0
  21. data/example/vlad.rake +64 -0
  22. data/ext/thin_parser/common.rl +55 -0
  23. data/ext/thin_parser/ext_help.h +14 -0
  24. data/ext/thin_parser/extconf.rb +6 -0
  25. data/ext/thin_parser/parser.c +1185 -0
  26. data/ext/thin_parser/parser.h +49 -0
  27. data/ext/thin_parser/parser.rl +157 -0
  28. data/ext/thin_parser/thin.c +436 -0
  29. data/lib/rack/adapter/loader.rb +91 -0
  30. data/lib/rack/adapter/rails.rb +180 -0
  31. data/lib/thin.rb +46 -0
  32. data/lib/thin/backends/base.rb +141 -0
  33. data/lib/thin/backends/swiftiply_client.rb +56 -0
  34. data/lib/thin/backends/tcp_server.rb +29 -0
  35. data/lib/thin/backends/unix_server.rb +51 -0
  36. data/lib/thin/command.rb +53 -0
  37. data/lib/thin/connection.rb +222 -0
  38. data/lib/thin/controllers/cluster.rb +178 -0
  39. data/lib/thin/controllers/controller.rb +182 -0
  40. data/lib/thin/controllers/service.rb +75 -0
  41. data/lib/thin/controllers/service.sh.erb +39 -0
  42. data/lib/thin/daemonizing.rb +176 -0
  43. data/lib/thin/headers.rb +39 -0
  44. data/lib/thin/logging.rb +54 -0
  45. data/lib/thin/request.rb +157 -0
  46. data/lib/thin/response.rb +101 -0
  47. data/lib/thin/runner.rb +212 -0
  48. data/lib/thin/server.rb +248 -0
  49. data/lib/thin/stats.html.erb +216 -0
  50. data/lib/thin/stats.rb +52 -0
  51. data/lib/thin/statuses.rb +43 -0
  52. data/lib/thin/version.rb +32 -0
  53. data/lib/thin_parser.so +0 -0
  54. data/spec/backends/swiftiply_client_spec.rb +66 -0
  55. data/spec/backends/tcp_server_spec.rb +33 -0
  56. data/spec/backends/unix_server_spec.rb +37 -0
  57. data/spec/command_spec.rb +25 -0
  58. data/spec/configs/cluster.yml +9 -0
  59. data/spec/configs/single.yml +9 -0
  60. data/spec/connection_spec.rb +106 -0
  61. data/spec/controllers/cluster_spec.rb +267 -0
  62. data/spec/controllers/controller_spec.rb +129 -0
  63. data/spec/controllers/service_spec.rb +50 -0
  64. data/spec/daemonizing_spec.rb +192 -0
  65. data/spec/headers_spec.rb +40 -0
  66. data/spec/logging_spec.rb +46 -0
  67. data/spec/perf/request_perf_spec.rb +50 -0
  68. data/spec/perf/response_perf_spec.rb +19 -0
  69. data/spec/perf/server_perf_spec.rb +39 -0
  70. data/spec/rack/loader_spec.rb +42 -0
  71. data/spec/rack/rails_adapter_spec.rb +106 -0
  72. data/spec/rails_app/app/controllers/application.rb +10 -0
  73. data/spec/rails_app/app/controllers/simple_controller.rb +19 -0
  74. data/spec/rails_app/app/helpers/application_helper.rb +3 -0
  75. data/spec/rails_app/app/views/simple/index.html.erb +15 -0
  76. data/spec/rails_app/config/boot.rb +109 -0
  77. data/spec/rails_app/config/environment.rb +64 -0
  78. data/spec/rails_app/config/environments/development.rb +18 -0
  79. data/spec/rails_app/config/environments/production.rb +19 -0
  80. data/spec/rails_app/config/environments/test.rb +22 -0
  81. data/spec/rails_app/config/initializers/inflections.rb +10 -0
  82. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  83. data/spec/rails_app/config/routes.rb +35 -0
  84. data/spec/rails_app/public/404.html +30 -0
  85. data/spec/rails_app/public/422.html +30 -0
  86. data/spec/rails_app/public/500.html +30 -0
  87. data/spec/rails_app/public/dispatch.cgi +10 -0
  88. data/spec/rails_app/public/dispatch.fcgi +24 -0
  89. data/spec/rails_app/public/dispatch.rb +10 -0
  90. data/spec/rails_app/public/favicon.ico +0 -0
  91. data/spec/rails_app/public/images/rails.png +0 -0
  92. data/spec/rails_app/public/index.html +277 -0
  93. data/spec/rails_app/public/javascripts/application.js +2 -0
  94. data/spec/rails_app/public/javascripts/controls.js +963 -0
  95. data/spec/rails_app/public/javascripts/dragdrop.js +972 -0
  96. data/spec/rails_app/public/javascripts/effects.js +1120 -0
  97. data/spec/rails_app/public/javascripts/prototype.js +4225 -0
  98. data/spec/rails_app/public/robots.txt +5 -0
  99. data/spec/rails_app/script/about +3 -0
  100. data/spec/rails_app/script/console +3 -0
  101. data/spec/rails_app/script/destroy +3 -0
  102. data/spec/rails_app/script/generate +3 -0
  103. data/spec/rails_app/script/performance/benchmarker +3 -0
  104. data/spec/rails_app/script/performance/profiler +3 -0
  105. data/spec/rails_app/script/performance/request +3 -0
  106. data/spec/rails_app/script/plugin +3 -0
  107. data/spec/rails_app/script/process/inspector +3 -0
  108. data/spec/rails_app/script/process/reaper +3 -0
  109. data/spec/rails_app/script/process/spawner +3 -0
  110. data/spec/rails_app/script/runner +3 -0
  111. data/spec/rails_app/script/server +3 -0
  112. data/spec/request/mongrel_spec.rb +39 -0
  113. data/spec/request/parser_spec.rb +243 -0
  114. data/spec/request/persistent_spec.rb +35 -0
  115. data/spec/request/processing_spec.rb +50 -0
  116. data/spec/response_spec.rb +91 -0
  117. data/spec/runner_spec.rb +168 -0
  118. data/spec/server/builder_spec.rb +44 -0
  119. data/spec/server/pipelining_spec.rb +110 -0
  120. data/spec/server/robustness_spec.rb +34 -0
  121. data/spec/server/stopping_spec.rb +55 -0
  122. data/spec/server/swiftiply.yml +6 -0
  123. data/spec/server/swiftiply_spec.rb +32 -0
  124. data/spec/server/tcp_spec.rb +57 -0
  125. data/spec/server/threaded_spec.rb +27 -0
  126. data/spec/server/unix_socket_spec.rb +26 -0
  127. data/spec/server_spec.rb +100 -0
  128. data/spec/spec_helper.rb +219 -0
  129. data/tasks/announce.rake +22 -0
  130. data/tasks/deploy.rake +13 -0
  131. data/tasks/email.erb +30 -0
  132. data/tasks/gem.rake +66 -0
  133. data/tasks/rdoc.rake +25 -0
  134. data/tasks/site.rake +15 -0
  135. data/tasks/spec.rake +43 -0
  136. data/tasks/stats.rake +28 -0
  137. metadata +219 -0
@@ -0,0 +1,13 @@
1
+ namespace :deploy do
2
+ task :site => %w(site:upload rdoc:upload)
3
+
4
+ desc 'Deploy on rubyforge'
5
+ task :gem => %w(gem:upload_rubyforge deploy:site)
6
+ end
7
+ desc 'Deploy on all servers'
8
+ task :deploy => "deploy:gem"
9
+
10
+ def upload(file, to, options={})
11
+ sh %{ssh macournoyer@code.macournoyer.com "rm -rf code.macournoyer.com/#{to}"} if options[:replace]
12
+ sh %{scp -rq #{file} macournoyer@code.macournoyer.com:code.macournoyer.com/#{to}}
13
+ end
@@ -0,0 +1,30 @@
1
+ Hey all,
2
+
3
+ Thin version <%= Thin::VERSION::STRING %> (codename <%= Thin::VERSION::CODENAME %>) is out!
4
+
5
+ == What's new?
6
+
7
+ <%= changelog %>
8
+
9
+ == Get it!
10
+
11
+ Install Thin from RubyForge:
12
+
13
+ gem install thin
14
+
15
+ Or using my mirror:
16
+
17
+ gem install thin --source http://code.macournoyer.com
18
+
19
+ == Contribute
20
+
21
+ Site: http://code.macournoyer.com/thin/
22
+ Group: http://groups.google.com/group/thin-ruby/topics
23
+ Bugs: http://thin.lighthouseapp.com/projects/7212-thin
24
+ Code: http://github.com/macournoyer/thin
25
+ IRC: #thin on freenode
26
+
27
+ Thanks to all the people who contributed to Thin, EventMachine, Rack and Mongrel.
28
+
29
+ Marc-Andre Cournoyer
30
+ http://macournoyer.com/
@@ -0,0 +1,66 @@
1
+ require 'rake/gempackagetask'
2
+ require 'yaml'
3
+
4
+ task :clean => :clobber_package
5
+
6
+ Thin::GemSpec = Gem::Specification.new do |s|
7
+ s.name = Thin::NAME
8
+ s.version = Thin::VERSION::STRING
9
+ s.platform = WIN ? Gem::Platform::CURRENT : Gem::Platform::RUBY
10
+ s.summary =
11
+ s.description = "A thin and fast web server"
12
+ s.author = "Marc-Andre Cournoyer"
13
+ s.email = 'macournoyer@gmail.com'
14
+ s.homepage = 'http://code.macournoyer.com/thin/'
15
+ s.rubyforge_project = 'thin'
16
+ s.has_rdoc = true
17
+ s.executables = %w(thin)
18
+
19
+ s.required_ruby_version = '>= 1.8.5'
20
+
21
+ s.add_dependency 'rack', '>= 1.0.0'
22
+ s.add_dependency 'eventmachine', '>= 0.12.6'
23
+ unless WIN
24
+ s.add_dependency 'daemons', '>= 1.0.9'
25
+ end
26
+
27
+ s.files = %w(COPYING CHANGELOG README Rakefile) +
28
+ Dir.glob("{benchmark,bin,doc,example,lib,spec,tasks}/**/*") +
29
+ Dir.glob("ext/**/*.{h,c,rb,rl}")
30
+
31
+ if WIN
32
+ s.files += ["lib/thin_parser.#{Config::CONFIG['DLEXT']}"]
33
+ else
34
+ s.extensions = FileList["ext/**/extconf.rb"].to_a
35
+ end
36
+
37
+ s.require_path = "lib"
38
+ s.bindir = "bin"
39
+ end
40
+
41
+ Rake::GemPackageTask.new(Thin::GemSpec) do |p|
42
+ p.gem_spec = Thin::GemSpec
43
+ end
44
+
45
+ task :tag_warn do
46
+ puts "*" * 40
47
+ puts "Don't forget to tag the release:"
48
+ puts
49
+ puts " git tag -m 'Tagging #{Thin::SERVER}' -a v#{Thin::VERSION::STRING}"
50
+ puts
51
+ puts "or run rake tag"
52
+ puts "*" * 40
53
+ end
54
+ task :tag do
55
+ sh "git tag -m 'Tagging #{Thin::SERVER}' -a v#{Thin::VERSION::STRING}"
56
+ end
57
+ task :gem => :tag_warn
58
+
59
+ namespace :gem do
60
+ desc 'Upload gems to gemcutter.org'
61
+ task :push => :gem do
62
+ Dir["pkg/#{Thin::GemSpec.full_name}*.gem"].each do |file|
63
+ puts "gem push #{file}"
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,25 @@
1
+ require 'rake/rdoctask'
2
+
3
+ CLEAN.include %w(doc/rdoc)
4
+
5
+ Rake::RDocTask.new do |rdoc|
6
+ rdoc.rdoc_dir = 'doc/rdoc'
7
+ rdoc.options += ['--quiet', '--title', Thin::NAME,
8
+ "--opname", "index.html",
9
+ "--line-numbers",
10
+ "--main", "README",
11
+ "--inline-source"]
12
+ rdoc.template = "site/rdoc.rb"
13
+ rdoc.main = "README"
14
+ rdoc.title = Thin::NAME
15
+ rdoc.rdoc_files.add %w(README) +
16
+ FileList['lib/**/*.rb'] +
17
+ FileList['bin/*']
18
+ end
19
+
20
+ namespace :rdoc do
21
+ desc 'Upload rdoc to code.macournoyer.com'
22
+ task :upload => :rdoc do
23
+ upload "doc/rdoc", 'thin/doc', :replace => true
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ namespace :site do
2
+ task :build do
3
+ mkdir_p 'tmp/site/images'
4
+ cd 'tmp/site' do
5
+ sh "SITE_ROOT='/thin' ruby ../../site/thin.rb --dump"
6
+ end
7
+ cp 'site/style.css', 'tmp/site'
8
+ cp_r Dir['site/images/*'], 'tmp/site/images'
9
+ end
10
+
11
+ desc 'Upload website to code.macournoyer.com'
12
+ task :upload => 'site:build' do
13
+ upload 'tmp/site/*', 'thin'
14
+ end
15
+ end
@@ -0,0 +1,43 @@
1
+ CLEAN.include %w(coverage tmp log)
2
+
3
+ require 'spec/rake/spectask'
4
+
5
+ PERF_SPECS = FileList['spec/perf/*_spec.rb']
6
+ WIN_SPECS = %w(
7
+ spec/backends/unix_server_spec.rb
8
+ spec/controllers/service_spec.rb
9
+ spec/daemonizing_spec.rb
10
+ spec/server/unix_socket_spec.rb
11
+ spec/server/swiftiply_spec.rb
12
+ )
13
+ # HACK Event machine causes some problems when running multiple
14
+ # tests in the same VM so we split the specs in 2 before I find
15
+ # a better solution...
16
+ SPECS2 = %w(spec/server/threaded_spec.rb spec/server/tcp_spec.rb)
17
+ SPECS = FileList['spec/**/*_spec.rb'] - PERF_SPECS - SPECS2
18
+
19
+ def spec_task(name, specs)
20
+ Spec::Rake::SpecTask.new(name) do |t|
21
+ t.libs << 'lib'
22
+ t.spec_opts = %w(-fs -c)
23
+ t.spec_files = specs
24
+ end
25
+ end
26
+
27
+ desc "Run all examples"
28
+ spec_task :spec, SPECS
29
+ spec_task :spec2, SPECS2
30
+ task :spec => [:compile, :spec2]
31
+
32
+ desc "Run all performance examples"
33
+ spec_task 'spec:perf', PERF_SPECS
34
+
35
+ task :check_benchmark_unit_gem do
36
+ begin
37
+ require 'benchmark_unit'
38
+ rescue LoadError
39
+ abort "To run specs, install benchmark_unit gem"
40
+ end
41
+ end
42
+
43
+ task 'spec:perf' => :check_benchmark_unit_gem
@@ -0,0 +1,28 @@
1
+ desc 'Show some stats about the code'
2
+ task :stats do
3
+ line_count = proc do |path|
4
+ Dir[path].collect { |f| File.open(f).readlines.reject { |l| l =~ /(^\s*(\#|\/\*))|^\s*$/ }.size }.inject(0){ |sum,n| sum += n }
5
+ end
6
+ comment_count = proc do |path|
7
+ Dir[path].collect { |f| File.open(f).readlines.select { |l| l =~ /^\s*\#/ }.size }.inject(0) { |sum,n| sum += n }
8
+ end
9
+ lib = line_count['lib/**/*.rb']
10
+ comment = comment_count['lib/**/*.rb']
11
+ ext = line_count['ext/**/*.{c,h}']
12
+ spec = line_count['spec/**/*.rb']
13
+
14
+ comment_ratio = '%1.2f' % (comment.to_f / lib.to_f)
15
+ spec_ratio = '%1.2f' % (spec.to_f / lib.to_f)
16
+
17
+ puts '/======================\\'
18
+ puts '| Part LOC |'
19
+ puts '|======================|'
20
+ puts "| lib #{lib.to_s.ljust(5)}|"
21
+ puts "| lib comments #{comment.to_s.ljust(5)}|"
22
+ puts "| ext #{ext.to_s.ljust(5)}|"
23
+ puts "| spec #{spec.to_s.ljust(5)}|"
24
+ puts '| ratios: |'
25
+ puts "| lib/comment #{comment_ratio.to_s.ljust(5)}|"
26
+ puts "| lib/spec #{spec_ratio.to_s.ljust(5)}|"
27
+ puts '\======================/'
28
+ end
metadata ADDED
@@ -0,0 +1,219 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: thin
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.6
5
+ platform: x86-mingw32
6
+ authors:
7
+ - Marc-Andre Cournoyer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-02-25 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: eventmachine
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.12.6
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: daemons
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.9
44
+ version:
45
+ description: A thin and fast web server
46
+ email: macournoyer@gmail.com
47
+ executables:
48
+ - thin
49
+ extensions: []
50
+
51
+ extra_rdoc_files: []
52
+
53
+ files:
54
+ - COPYING
55
+ - CHANGELOG
56
+ - README
57
+ - Rakefile
58
+ - benchmark/abc
59
+ - benchmark/benchmarker.rb
60
+ - benchmark/runner
61
+ - bin/thin
62
+ - example/adapter.rb
63
+ - example/async_app.ru
64
+ - example/async_chat.ru
65
+ - example/async_tailer.ru
66
+ - example/config.ru
67
+ - example/monit_sockets
68
+ - example/monit_unixsock
69
+ - example/myapp.rb
70
+ - example/ramaze.ru
71
+ - example/thin.god
72
+ - example/thin_solaris_smf.erb
73
+ - example/thin_solaris_smf.readme.txt
74
+ - example/vlad.rake
75
+ - lib/rack/adapter/loader.rb
76
+ - lib/rack/adapter/rails.rb
77
+ - lib/thin/backends/base.rb
78
+ - lib/thin/backends/swiftiply_client.rb
79
+ - lib/thin/backends/tcp_server.rb
80
+ - lib/thin/backends/unix_server.rb
81
+ - lib/thin/command.rb
82
+ - lib/thin/connection.rb
83
+ - lib/thin/controllers/cluster.rb
84
+ - lib/thin/controllers/controller.rb
85
+ - lib/thin/controllers/service.rb
86
+ - lib/thin/controllers/service.sh.erb
87
+ - lib/thin/daemonizing.rb
88
+ - lib/thin/headers.rb
89
+ - lib/thin/logging.rb
90
+ - lib/thin/request.rb
91
+ - lib/thin/response.rb
92
+ - lib/thin/runner.rb
93
+ - lib/thin/server.rb
94
+ - lib/thin/stats.html.erb
95
+ - lib/thin/stats.rb
96
+ - lib/thin/statuses.rb
97
+ - lib/thin/version.rb
98
+ - lib/thin.rb
99
+ - spec/backends/swiftiply_client_spec.rb
100
+ - spec/backends/tcp_server_spec.rb
101
+ - spec/backends/unix_server_spec.rb
102
+ - spec/command_spec.rb
103
+ - spec/configs/cluster.yml
104
+ - spec/configs/single.yml
105
+ - spec/connection_spec.rb
106
+ - spec/controllers/cluster_spec.rb
107
+ - spec/controllers/controller_spec.rb
108
+ - spec/controllers/service_spec.rb
109
+ - spec/daemonizing_spec.rb
110
+ - spec/headers_spec.rb
111
+ - spec/logging_spec.rb
112
+ - spec/perf/request_perf_spec.rb
113
+ - spec/perf/response_perf_spec.rb
114
+ - spec/perf/server_perf_spec.rb
115
+ - spec/rack/loader_spec.rb
116
+ - spec/rack/rails_adapter_spec.rb
117
+ - spec/rails_app/app/controllers/application.rb
118
+ - spec/rails_app/app/controllers/simple_controller.rb
119
+ - spec/rails_app/app/helpers/application_helper.rb
120
+ - spec/rails_app/app/views/simple/index.html.erb
121
+ - spec/rails_app/config/boot.rb
122
+ - spec/rails_app/config/environment.rb
123
+ - spec/rails_app/config/environments/development.rb
124
+ - spec/rails_app/config/environments/production.rb
125
+ - spec/rails_app/config/environments/test.rb
126
+ - spec/rails_app/config/initializers/inflections.rb
127
+ - spec/rails_app/config/initializers/mime_types.rb
128
+ - spec/rails_app/config/routes.rb
129
+ - spec/rails_app/public/404.html
130
+ - spec/rails_app/public/422.html
131
+ - spec/rails_app/public/500.html
132
+ - spec/rails_app/public/dispatch.cgi
133
+ - spec/rails_app/public/dispatch.fcgi
134
+ - spec/rails_app/public/dispatch.rb
135
+ - spec/rails_app/public/favicon.ico
136
+ - spec/rails_app/public/images/rails.png
137
+ - spec/rails_app/public/index.html
138
+ - spec/rails_app/public/javascripts/application.js
139
+ - spec/rails_app/public/javascripts/controls.js
140
+ - spec/rails_app/public/javascripts/dragdrop.js
141
+ - spec/rails_app/public/javascripts/effects.js
142
+ - spec/rails_app/public/javascripts/prototype.js
143
+ - spec/rails_app/public/robots.txt
144
+ - spec/rails_app/script/about
145
+ - spec/rails_app/script/console
146
+ - spec/rails_app/script/destroy
147
+ - spec/rails_app/script/generate
148
+ - spec/rails_app/script/performance/benchmarker
149
+ - spec/rails_app/script/performance/profiler
150
+ - spec/rails_app/script/performance/request
151
+ - spec/rails_app/script/plugin
152
+ - spec/rails_app/script/process/inspector
153
+ - spec/rails_app/script/process/reaper
154
+ - spec/rails_app/script/process/spawner
155
+ - spec/rails_app/script/runner
156
+ - spec/rails_app/script/server
157
+ - spec/request/mongrel_spec.rb
158
+ - spec/request/parser_spec.rb
159
+ - spec/request/persistent_spec.rb
160
+ - spec/request/processing_spec.rb
161
+ - spec/response_spec.rb
162
+ - spec/runner_spec.rb
163
+ - spec/server/builder_spec.rb
164
+ - spec/server/pipelining_spec.rb
165
+ - spec/server/robustness_spec.rb
166
+ - spec/server/stopping_spec.rb
167
+ - spec/server/swiftiply.yml
168
+ - spec/server/swiftiply_spec.rb
169
+ - spec/server/tcp_spec.rb
170
+ - spec/server/threaded_spec.rb
171
+ - spec/server/unix_socket_spec.rb
172
+ - spec/server_spec.rb
173
+ - spec/spec_helper.rb
174
+ - tasks/announce.rake
175
+ - tasks/deploy.rake
176
+ - tasks/email.erb
177
+ - tasks/gem.rake
178
+ - tasks/rdoc.rake
179
+ - tasks/site.rake
180
+ - tasks/spec.rake
181
+ - tasks/stats.rake
182
+ - ext/thin_parser/ext_help.h
183
+ - ext/thin_parser/parser.h
184
+ - ext/thin_parser/parser.c
185
+ - ext/thin_parser/thin.c
186
+ - ext/thin_parser/extconf.rb
187
+ - ext/thin_parser/common.rl
188
+ - ext/thin_parser/parser.rl
189
+ - lib/thin_parser.so
190
+ has_rdoc: true
191
+ homepage: http://code.macournoyer.com/thin/
192
+ licenses: []
193
+
194
+ post_install_message:
195
+ rdoc_options: []
196
+
197
+ require_paths:
198
+ - lib
199
+ required_ruby_version: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: 1.8.5
204
+ version:
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: "0"
210
+ version:
211
+ requirements: []
212
+
213
+ rubyforge_project: thin
214
+ rubygems_version: 1.3.5
215
+ signing_key:
216
+ specification_version: 3
217
+ summary: A thin and fast web server
218
+ test_files: []
219
+