thin 1.3.1 → 1.4.0
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 +8 -0
- data/README.md +83 -0
- data/Rakefile +9 -32
- data/example/vlad.rake +1 -1
- data/lib/rack/adapter/loader.rb +0 -16
- data/lib/thin.rb +22 -24
- data/lib/thin/backends/base.rb +3 -1
- data/lib/thin/connection.rb +9 -8
- data/lib/thin/daemonizing.rb +3 -1
- data/lib/thin/logging.rb +1 -1
- data/lib/thin/runner.rb +36 -36
- data/lib/thin/server.rb +13 -0
- data/lib/thin/version.rb +3 -3
- metadata +5 -91
- data/README +0 -69
- data/benchmark/abc +0 -51
- data/benchmark/benchmarker.rb +0 -80
- data/benchmark/runner +0 -82
- data/spec/backends/swiftiply_client_spec.rb +0 -66
- data/spec/backends/tcp_server_spec.rb +0 -33
- data/spec/backends/unix_server_spec.rb +0 -37
- data/spec/command_spec.rb +0 -25
- data/spec/configs/cluster.yml +0 -9
- data/spec/configs/single.yml +0 -9
- data/spec/connection_spec.rb +0 -107
- data/spec/controllers/cluster_spec.rb +0 -267
- data/spec/controllers/controller_spec.rb +0 -129
- data/spec/controllers/service_spec.rb +0 -50
- data/spec/daemonizing_spec.rb +0 -200
- data/spec/headers_spec.rb +0 -40
- data/spec/logging_spec.rb +0 -52
- data/spec/perf/request_perf_spec.rb +0 -50
- data/spec/perf/response_perf_spec.rb +0 -19
- data/spec/perf/server_perf_spec.rb +0 -39
- data/spec/rack/loader_spec.rb +0 -42
- data/spec/rack/rails_adapter_spec.rb +0 -173
- data/spec/rails_app/app/controllers/application.rb +0 -10
- data/spec/rails_app/app/controllers/simple_controller.rb +0 -19
- data/spec/rails_app/app/helpers/application_helper.rb +0 -3
- data/spec/rails_app/app/views/simple/index.html.erb +0 -15
- data/spec/rails_app/config/boot.rb +0 -109
- data/spec/rails_app/config/environment.rb +0 -64
- data/spec/rails_app/config/environments/development.rb +0 -18
- data/spec/rails_app/config/environments/production.rb +0 -19
- data/spec/rails_app/config/environments/test.rb +0 -22
- data/spec/rails_app/config/initializers/inflections.rb +0 -10
- data/spec/rails_app/config/initializers/mime_types.rb +0 -5
- data/spec/rails_app/config/routes.rb +0 -35
- data/spec/rails_app/public/404.html +0 -30
- data/spec/rails_app/public/422.html +0 -30
- data/spec/rails_app/public/500.html +0 -30
- data/spec/rails_app/public/dispatch.cgi +0 -10
- data/spec/rails_app/public/dispatch.fcgi +0 -24
- data/spec/rails_app/public/dispatch.rb +0 -10
- data/spec/rails_app/public/favicon.ico +0 -0
- data/spec/rails_app/public/images/rails.png +0 -0
- data/spec/rails_app/public/index.html +0 -277
- data/spec/rails_app/public/javascripts/application.js +0 -2
- data/spec/rails_app/public/javascripts/controls.js +0 -963
- data/spec/rails_app/public/javascripts/dragdrop.js +0 -972
- data/spec/rails_app/public/javascripts/effects.js +0 -1120
- data/spec/rails_app/public/javascripts/prototype.js +0 -4225
- data/spec/rails_app/public/robots.txt +0 -5
- data/spec/rails_app/script/about +0 -3
- data/spec/rails_app/script/console +0 -3
- data/spec/rails_app/script/destroy +0 -3
- data/spec/rails_app/script/generate +0 -3
- data/spec/rails_app/script/performance/benchmarker +0 -3
- data/spec/rails_app/script/performance/profiler +0 -3
- data/spec/rails_app/script/performance/request +0 -3
- data/spec/rails_app/script/plugin +0 -3
- data/spec/rails_app/script/process/inspector +0 -3
- data/spec/rails_app/script/process/reaper +0 -3
- data/spec/rails_app/script/process/spawner +0 -3
- data/spec/rails_app/script/runner +0 -3
- data/spec/rails_app/script/server +0 -3
- data/spec/request/mongrel_spec.rb +0 -39
- data/spec/request/parser_spec.rb +0 -254
- data/spec/request/persistent_spec.rb +0 -35
- data/spec/request/processing_spec.rb +0 -50
- data/spec/response_spec.rb +0 -102
- data/spec/runner_spec.rb +0 -168
- data/spec/server/builder_spec.rb +0 -44
- data/spec/server/pipelining_spec.rb +0 -110
- data/spec/server/robustness_spec.rb +0 -34
- data/spec/server/stopping_spec.rb +0 -55
- data/spec/server/swiftiply.yml +0 -6
- data/spec/server/swiftiply_spec.rb +0 -32
- data/spec/server/tcp_spec.rb +0 -47
- data/spec/server/threaded_spec.rb +0 -27
- data/spec/server/unix_socket_spec.rb +0 -26
- data/spec/server_spec.rb +0 -100
- data/spec/spec_helper.rb +0 -234
- data/tasks/announce.rake +0 -22
- data/tasks/deploy.rake +0 -13
- data/tasks/email.erb +0 -27
- data/tasks/gem.rake +0 -65
- data/tasks/rdoc.rake +0 -25
- data/tasks/site.rake +0 -15
- data/tasks/spec.rake +0 -43
- data/tasks/stats.rake +0 -28
data/tasks/announce.rake
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
require 'erb'
|
|
2
|
-
|
|
3
|
-
MSG_TEMPLATE = File.dirname(__FILE__) + '/email.erb'
|
|
4
|
-
SEND_TO = %w(thin-ruby@googlegroups.com ruby-talk@ruby-lang.org)
|
|
5
|
-
|
|
6
|
-
desc 'Generate a template for the new version annoucement'
|
|
7
|
-
task :ann do
|
|
8
|
-
msg = ERB.new(File.read(MSG_TEMPLATE)).result(binding)
|
|
9
|
-
|
|
10
|
-
body = <<END_OF_MESSAGE
|
|
11
|
-
To: #{SEND_TO.join(', ')}
|
|
12
|
-
Subject: [ANN] Thin #{Thin::VERSION::STRING} #{Thin::VERSION::CODENAME} release
|
|
13
|
-
|
|
14
|
-
#{msg}
|
|
15
|
-
END_OF_MESSAGE
|
|
16
|
-
|
|
17
|
-
fork { `echo "#{body}" | mate` }
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def changelog
|
|
21
|
-
File.read('CHANGELOG').split("==")[1].split("\n")[1..-1].join("\n")
|
|
22
|
-
end
|
data/tasks/deploy.rake
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
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
|
data/tasks/email.erb
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
Hey,
|
|
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 RubyGems:
|
|
12
|
-
|
|
13
|
-
gem install thin
|
|
14
|
-
|
|
15
|
-
== Contribute
|
|
16
|
-
|
|
17
|
-
Site: http://code.macournoyer.com/thin/
|
|
18
|
-
Group: http://groups.google.com/group/thin-ruby/topics
|
|
19
|
-
Issues: https://github.com/macournoyer/thin/issues
|
|
20
|
-
Security issues: macournoyer+thinsecurity@gmail.com
|
|
21
|
-
Code: http://github.com/macournoyer/thin
|
|
22
|
-
IRC: #thin on freenode
|
|
23
|
-
|
|
24
|
-
Thanks to all the people who contributed to Thin, EventMachine, Rack and Mongrel.
|
|
25
|
-
|
|
26
|
-
Marc-Andre Cournoyer
|
|
27
|
-
http://macournoyer.com/
|
data/tasks/gem.rake
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
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.executables = %w(thin)
|
|
17
|
-
|
|
18
|
-
s.required_ruby_version = '>= 1.8.5'
|
|
19
|
-
|
|
20
|
-
s.add_dependency 'rack', '>= 1.0.0'
|
|
21
|
-
s.add_dependency 'eventmachine', '>= 0.12.6'
|
|
22
|
-
unless WIN
|
|
23
|
-
s.add_dependency 'daemons', '>= 1.0.9'
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
s.files = %w(CHANGELOG README Rakefile) +
|
|
27
|
-
Dir.glob("{benchmark,bin,doc,example,lib,spec,tasks}/**/*") - Dir.glob("lib/thin_parser.*") +
|
|
28
|
-
Dir.glob("ext/**/*.{h,c,rb,rl}")
|
|
29
|
-
|
|
30
|
-
if WIN
|
|
31
|
-
s.files += FileList["lib/*/thin_parser.*"].to_a
|
|
32
|
-
else
|
|
33
|
-
s.extensions = FileList["ext/**/extconf.rb"].to_a
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
s.require_path = "lib"
|
|
37
|
-
s.bindir = "bin"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
Rake::GemPackageTask.new(Thin::GemSpec) do |p|
|
|
41
|
-
p.gem_spec = Thin::GemSpec
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
task :tag_warn do
|
|
45
|
-
puts "*" * 40
|
|
46
|
-
puts "Don't forget to tag the release:"
|
|
47
|
-
puts
|
|
48
|
-
puts " git tag -m 'Tagging #{Thin::SERVER}' -a v#{Thin::VERSION::STRING}"
|
|
49
|
-
puts
|
|
50
|
-
puts "or run rake tag"
|
|
51
|
-
puts "*" * 40
|
|
52
|
-
end
|
|
53
|
-
task :tag do
|
|
54
|
-
sh "git tag -m 'Tagging #{Thin::SERVER}' -a v#{Thin::VERSION::STRING}"
|
|
55
|
-
end
|
|
56
|
-
task :gem => :tag_warn
|
|
57
|
-
|
|
58
|
-
namespace :gem do
|
|
59
|
-
desc 'Upload gems to gemcutter.org'
|
|
60
|
-
task :push do
|
|
61
|
-
Dir["pkg/#{Thin::GemSpec.full_name}*.gem"].each do |file|
|
|
62
|
-
sh "gem push #{file}"
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
data/tasks/rdoc.rake
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
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
|
data/tasks/site.rake
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
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
|
data/tasks/spec.rake
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
CLEAN.include %w(coverage tmp log)
|
|
2
|
-
|
|
3
|
-
gem "rspec", "~> 1.2.9"
|
|
4
|
-
require 'spec/rake/spectask'
|
|
5
|
-
|
|
6
|
-
PERF_SPECS = FileList['spec/perf/*_spec.rb']
|
|
7
|
-
WIN_SPECS = %w(
|
|
8
|
-
spec/backends/unix_server_spec.rb
|
|
9
|
-
spec/controllers/service_spec.rb
|
|
10
|
-
spec/daemonizing_spec.rb
|
|
11
|
-
spec/server/unix_socket_spec.rb
|
|
12
|
-
spec/server/swiftiply_spec.rb
|
|
13
|
-
)
|
|
14
|
-
# HACK Event machine causes some problems when running multiple
|
|
15
|
-
# tests in the same VM so we split the specs in 2 before I find
|
|
16
|
-
# a better solution...
|
|
17
|
-
SPECS2 = %w(spec/server/threaded_spec.rb spec/server/tcp_spec.rb)
|
|
18
|
-
SPECS = FileList['spec/**/*_spec.rb'] - PERF_SPECS - SPECS2
|
|
19
|
-
|
|
20
|
-
def spec_task(name, specs)
|
|
21
|
-
Spec::Rake::SpecTask.new(name) do |t|
|
|
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
|
data/tasks/stats.rake
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
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
|