thin 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/CHANGELOG +8 -0
  2. data/README.md +83 -0
  3. data/Rakefile +9 -32
  4. data/example/vlad.rake +1 -1
  5. data/lib/rack/adapter/loader.rb +0 -16
  6. data/lib/thin.rb +22 -24
  7. data/lib/thin/backends/base.rb +3 -1
  8. data/lib/thin/connection.rb +9 -8
  9. data/lib/thin/daemonizing.rb +3 -1
  10. data/lib/thin/logging.rb +1 -1
  11. data/lib/thin/runner.rb +36 -36
  12. data/lib/thin/server.rb +13 -0
  13. data/lib/thin/version.rb +3 -3
  14. metadata +5 -91
  15. data/README +0 -69
  16. data/benchmark/abc +0 -51
  17. data/benchmark/benchmarker.rb +0 -80
  18. data/benchmark/runner +0 -82
  19. data/spec/backends/swiftiply_client_spec.rb +0 -66
  20. data/spec/backends/tcp_server_spec.rb +0 -33
  21. data/spec/backends/unix_server_spec.rb +0 -37
  22. data/spec/command_spec.rb +0 -25
  23. data/spec/configs/cluster.yml +0 -9
  24. data/spec/configs/single.yml +0 -9
  25. data/spec/connection_spec.rb +0 -107
  26. data/spec/controllers/cluster_spec.rb +0 -267
  27. data/spec/controllers/controller_spec.rb +0 -129
  28. data/spec/controllers/service_spec.rb +0 -50
  29. data/spec/daemonizing_spec.rb +0 -200
  30. data/spec/headers_spec.rb +0 -40
  31. data/spec/logging_spec.rb +0 -52
  32. data/spec/perf/request_perf_spec.rb +0 -50
  33. data/spec/perf/response_perf_spec.rb +0 -19
  34. data/spec/perf/server_perf_spec.rb +0 -39
  35. data/spec/rack/loader_spec.rb +0 -42
  36. data/spec/rack/rails_adapter_spec.rb +0 -173
  37. data/spec/rails_app/app/controllers/application.rb +0 -10
  38. data/spec/rails_app/app/controllers/simple_controller.rb +0 -19
  39. data/spec/rails_app/app/helpers/application_helper.rb +0 -3
  40. data/spec/rails_app/app/views/simple/index.html.erb +0 -15
  41. data/spec/rails_app/config/boot.rb +0 -109
  42. data/spec/rails_app/config/environment.rb +0 -64
  43. data/spec/rails_app/config/environments/development.rb +0 -18
  44. data/spec/rails_app/config/environments/production.rb +0 -19
  45. data/spec/rails_app/config/environments/test.rb +0 -22
  46. data/spec/rails_app/config/initializers/inflections.rb +0 -10
  47. data/spec/rails_app/config/initializers/mime_types.rb +0 -5
  48. data/spec/rails_app/config/routes.rb +0 -35
  49. data/spec/rails_app/public/404.html +0 -30
  50. data/spec/rails_app/public/422.html +0 -30
  51. data/spec/rails_app/public/500.html +0 -30
  52. data/spec/rails_app/public/dispatch.cgi +0 -10
  53. data/spec/rails_app/public/dispatch.fcgi +0 -24
  54. data/spec/rails_app/public/dispatch.rb +0 -10
  55. data/spec/rails_app/public/favicon.ico +0 -0
  56. data/spec/rails_app/public/images/rails.png +0 -0
  57. data/spec/rails_app/public/index.html +0 -277
  58. data/spec/rails_app/public/javascripts/application.js +0 -2
  59. data/spec/rails_app/public/javascripts/controls.js +0 -963
  60. data/spec/rails_app/public/javascripts/dragdrop.js +0 -972
  61. data/spec/rails_app/public/javascripts/effects.js +0 -1120
  62. data/spec/rails_app/public/javascripts/prototype.js +0 -4225
  63. data/spec/rails_app/public/robots.txt +0 -5
  64. data/spec/rails_app/script/about +0 -3
  65. data/spec/rails_app/script/console +0 -3
  66. data/spec/rails_app/script/destroy +0 -3
  67. data/spec/rails_app/script/generate +0 -3
  68. data/spec/rails_app/script/performance/benchmarker +0 -3
  69. data/spec/rails_app/script/performance/profiler +0 -3
  70. data/spec/rails_app/script/performance/request +0 -3
  71. data/spec/rails_app/script/plugin +0 -3
  72. data/spec/rails_app/script/process/inspector +0 -3
  73. data/spec/rails_app/script/process/reaper +0 -3
  74. data/spec/rails_app/script/process/spawner +0 -3
  75. data/spec/rails_app/script/runner +0 -3
  76. data/spec/rails_app/script/server +0 -3
  77. data/spec/request/mongrel_spec.rb +0 -39
  78. data/spec/request/parser_spec.rb +0 -254
  79. data/spec/request/persistent_spec.rb +0 -35
  80. data/spec/request/processing_spec.rb +0 -50
  81. data/spec/response_spec.rb +0 -102
  82. data/spec/runner_spec.rb +0 -168
  83. data/spec/server/builder_spec.rb +0 -44
  84. data/spec/server/pipelining_spec.rb +0 -110
  85. data/spec/server/robustness_spec.rb +0 -34
  86. data/spec/server/stopping_spec.rb +0 -55
  87. data/spec/server/swiftiply.yml +0 -6
  88. data/spec/server/swiftiply_spec.rb +0 -32
  89. data/spec/server/tcp_spec.rb +0 -47
  90. data/spec/server/threaded_spec.rb +0 -27
  91. data/spec/server/unix_socket_spec.rb +0 -26
  92. data/spec/server_spec.rb +0 -100
  93. data/spec/spec_helper.rb +0 -234
  94. data/tasks/announce.rake +0 -22
  95. data/tasks/deploy.rake +0 -13
  96. data/tasks/email.erb +0 -27
  97. data/tasks/gem.rake +0 -65
  98. data/tasks/rdoc.rake +0 -25
  99. data/tasks/site.rake +0 -15
  100. data/tasks/spec.rake +0 -43
  101. data/tasks/stats.rake +0 -28
@@ -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
@@ -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
@@ -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/
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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