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.
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