rack-mongrel2 0.2.0 → 0.2.1

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/Gemfile CHANGED
@@ -1,10 +1,3 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'ffi', '~> 0.6.3'
4
- gem 'ffi-rzmq', '~> 0.6.0'
5
-
6
- group :development do
7
- gem 'jeweler', '~> 1.4.0'
8
- gem 'rspec', '~> 2.0.1'
9
- gem 'yard', '~> 0.6.1'
10
- end
3
+ gemspec
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Daniel Huckstep
1
+ Copyright (c) 2010 Daniel Huckstep
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -1,28 +1,32 @@
1
- = rack-mongrel2
1
+ # rack-mongrel2
2
2
 
3
3
  The only Mongrel2 Rack handler you'll ever need.
4
4
 
5
5
  I wrote this because I wanted to learn Mongrel2, and I didn't like what was out there. I copy-pasted a lot of code from Colin Curtin's m2r project (http://github.com/perplexes/m2r), but I also changed and reorganized it into what I believe is a good setup for a proper rubygem.
6
6
 
7
- == How to use
7
+ ## How to use
8
8
 
9
9
  1. Get mongrel2 installed (http://mongrel2.org/wiki?name=GettingStarted)
10
- 2. Get your config for mongrel2 setup (see example directory)
11
- 3. Add it to your Gemfile
10
+ 1. Get your config for mongrel2 setup (see example directory)
11
+ 1. Add it to your Gemfile
12
12
 
13
- gem 'rack-mongrel2', '~> 0.1.0', :require => nil
13
+ gem 'rack-mongrel2', '~> 0.2.0', :require => nil
14
14
 
15
- 4. You also need some sort of JSON parsing library installed, like Yajl or JSON (gem i yajl-ruby or gem i json). json-jruby will work too
16
- 5. Run Mongrel2
17
- 6. Run your rails application
15
+ 1. You also need some sort of JSON parsing library installed, like Yajl or JSON (gem i yajl-ruby or gem i json). json-jruby will work too
16
+ 1. Run Mongrel2
17
+ 1. Run your rails application
18
18
 
19
19
  RACK_MONGREL2_UUID=<my uuid> rails s Mongrel2
20
20
 
21
- 7. Profit!
21
+ 1. Profit!
22
22
 
23
- I'll write a better blog post soon...
23
+ Check out the blog post too: http://blog.darkhax.com/2010/10/26/deploying-your-ruby-app-with-mongrel2
24
24
 
25
- == Note on Patches/Pull Requests
25
+ ## Thanks!
26
+
27
+ * Kevin Williams for PULL, specs, and other things.
28
+
29
+ ## Note on Patches/Pull Requests
26
30
 
27
31
  * Fork the project.
28
32
  * Make your feature addition or bug fix.
@@ -32,6 +36,6 @@ I'll write a better blog post soon...
32
36
  (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
33
37
  * Send me a pull request. Bonus points for topic branches.
34
38
 
35
- == Copyright
39
+ ## Copyright
36
40
 
37
41
  Copyright (c) 2010 Daniel Huckstep. See LICENSE for details.
data/Rakefile CHANGED
@@ -1,24 +1,68 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
- require 'bundler'
4
-
5
- begin
6
- require 'jeweler'
7
- Jeweler::Tasks.new do |gem|
8
- gem.name = "rack-mongrel2"
9
- gem.summary = %Q{The only Mongrel2 Rack handler you'll ever need.}
10
- gem.description = %Q{A Rack handler for the Mongrel2 web server, by Zed Shaw. http://mongrel2.org/}
11
- gem.email = 'darkhelmet@darkhelmetlive.com'
12
- gem.homepage = 'http://github.com/darkhelmet/rack-mongrel2'
13
- gem.authors = ['Daniel Huckstep']
14
- gem.add_bundler_dependencies
15
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
- end
17
- Jeweler::GemcutterTasks.new
18
- rescue LoadError
19
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
3
+ require 'date'
4
+
5
+ #############################################################################
6
+ #
7
+ # Helper functions
8
+ #
9
+ #############################################################################
10
+
11
+ def name
12
+ @name ||= Dir['*.gemspec'].first.split('.').first
13
+ end
14
+
15
+ def version
16
+ line = File.read("lib/mongrel2.rb")[/^\s*VERSION\s*=\s*.*/]
17
+ line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
18
+ end
19
+
20
+ def date
21
+ Date.today.to_s
22
+ end
23
+
24
+ def rubyforge_project
25
+ name
26
+ end
27
+
28
+ def gemspec_file
29
+ "#{name}.gemspec"
30
+ end
31
+
32
+ def gem_file
33
+ "#{name}-#{version}.gem"
34
+ end
35
+
36
+ def replace_header(head, header_name)
37
+ head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
20
38
  end
21
39
 
40
+ #############################################################################
41
+ #
42
+ # Standard tasks
43
+ #
44
+ #############################################################################
45
+
46
+ task :default => :test
47
+
48
+ require 'rake/testtask'
49
+ Rake::TestTask.new(:test) do |test|
50
+ test.libs << 'lib' << 'test'
51
+ test.pattern = 'test/**/test_*.rb'
52
+ test.verbose = true
53
+ end
54
+
55
+ desc "Open an irb session preloaded with this library"
56
+ task :console do
57
+ sh "irb -rubygems -r ./lib/#{name}.rb"
58
+ end
59
+
60
+ #############################################################################
61
+ #
62
+ # Custom tasks (add your own tasks here)
63
+ #
64
+ #############################################################################
65
+
22
66
  require 'rspec/core/rake_task'
23
67
  RSpec::Core::RakeTask.new(:spec) do |t|
24
68
  t.ruby_opts = ['-Ilib', '-Ispec']
@@ -31,15 +75,64 @@ RSpec::Core::RakeTask.new(:rcov) do |t|
31
75
  t.rcov = true
32
76
  end
33
77
 
34
- task :spec => :check_dependencies
78
+ # task :spec => :check_dependencies
35
79
 
36
80
  task :default => :spec
37
81
 
38
- begin
39
- require 'yard'
40
- YARD::Rake::YardocTask.new
41
- rescue LoadError
42
- task :yardoc do
43
- abort 'YARD is not available. In order to run yardoc, you must: `gem i yard`'
82
+ require 'yard'
83
+ YARD::Rake::YardocTask.new
84
+
85
+ #############################################################################
86
+ #
87
+ # Packaging tasks
88
+ #
89
+ #############################################################################
90
+
91
+ desc "Create tag v#{version} and build and push #{gem_file} to Rubygems"
92
+ task :release => :build do
93
+ unless `git branch` =~ /^\* master$/
94
+ puts "You must be on the master branch to release!"
95
+ exit!
44
96
  end
97
+ sh "git commit --allow-empty -a -m 'Release #{version}'"
98
+ sh "git tag v#{version}"
99
+ sh "git push origin master"
100
+ sh "git push origin v#{version}"
101
+ sh "gem push pkg/#{name}-#{version}.gem"
102
+ end
103
+
104
+ desc "Build #{gem_file} into the pkg directory"
105
+ task :build => :gemspec do
106
+ sh "mkdir -p pkg"
107
+ sh "gem build #{gemspec_file}"
108
+ sh "mv #{gem_file} pkg"
109
+ end
110
+
111
+ desc "Generate #{gemspec_file}"
112
+ task :gemspec do
113
+ # read spec file and split out manifest section
114
+ spec = File.read(gemspec_file)
115
+ head, manifest, tail = spec.split(" # = MANIFEST =\n")
116
+
117
+ # replace name version and date
118
+ replace_header(head, :name)
119
+ replace_header(head, :version)
120
+ replace_header(head, :date)
121
+ #comment this out if your rubyforge_project has a different name
122
+ replace_header(head, :rubyforge_project)
123
+
124
+ # determine file list from git ls-files
125
+ files = `git ls-files`.
126
+ split("\n").
127
+ sort.
128
+ reject { |file| file =~ /^\./ }.
129
+ reject { |file| file =~ /^(rdoc|pkg)/ }.
130
+ map { |file| " #{file}" }.
131
+ join("\n")
132
+
133
+ # piece file back together and write
134
+ manifest = " s.files = %w[\n#{files}\n ]\n"
135
+ spec = [head, manifest, tail].join(" # = MANIFEST =\n")
136
+ File.open(gemspec_file, 'w') { |io| io.write(spec) }
137
+ puts "Updated #{gemspec_file}"
45
138
  end
@@ -10,7 +10,7 @@ module Mongrel2
10
10
  @uuid, @sub, @pub, @block = uuid, sub, pub, block
11
11
 
12
12
  # Connect to receive requests
13
- @reqs = CTX.socket(ZMQ::UPSTREAM)
13
+ @reqs = CTX.socket(ZMQ::PULL)
14
14
  @reqs.connect(sub)
15
15
 
16
16
  # Connect to send responses
@@ -2,7 +2,7 @@ require 'mongrel2'
2
2
 
3
3
  module Mongrel2
4
4
  class Request
5
- attr_reader :headers, :body, :uuid, :conn_id
5
+ attr_reader :headers, :body, :uuid, :conn_id, :path
6
6
 
7
7
  class << self
8
8
  def parse(msg)
@@ -50,6 +50,10 @@ module Mongrel2
50
50
  def send_http(req, body, status, headers)
51
51
  send_resp(req.uuid, req.conn_id, build_http_response(body, status, headers))
52
52
  end
53
+
54
+ def close(req)
55
+ send_resp(req.uuid, req.conn_id, "")
56
+ end
53
57
 
54
58
  private
55
59
 
data/lib/mongrel2.rb CHANGED
@@ -10,4 +10,5 @@ end
10
10
 
11
11
  module Mongrel2
12
12
  JSON = Object.const_defined?('Yajl') ? ::Yajl::Parser : ::JSON
13
+ VERSION = '0.2.1'
13
14
  end
@@ -20,12 +20,12 @@ module Rack
20
20
  running = true
21
21
 
22
22
  # This doesn't work at all until zmq fixes their shit
23
- %w(INT TERM KILL).each do |sig|
24
- trap(sig) do
25
- conn.close
26
- running = false
27
- end
28
- end
23
+ # %w(INT TERM KILL).each do |sig|
24
+ # trap(sig) do
25
+ # conn.close
26
+ # running = false
27
+ # end
28
+ # end
29
29
 
30
30
  while running
31
31
  req = conn.recv
@@ -1,79 +1,82 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
1
+ ## This is the rakegem gemspec template. Make sure you read and understand
2
+ ## all of the comments. Some sections require modification, and others can
3
+ ## be deleted if you don't need them. Once you understand the contents of
4
+ ## this file, feel free to delete any comments that begin with two hash marks.
5
+ ## You can find comprehensive Gem::Specification documentation, at
6
+ ## http://docs.rubygems.org/read/chapter/20
6
7
  Gem::Specification.new do |s|
7
- s.name = %q{rack-mongrel2}
8
- s.version = "0.2.0"
9
-
8
+ s.specification_version = 2 if s.respond_to? :specification_version=
10
9
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Daniel Huckstep"]
12
- s.date = %q{2010-10-24}
13
- s.description = %q{A Rack handler for the Mongrel2 web server, by Zed Shaw. http://mongrel2.org/}
14
- s.email = %q{darkhelmet@darkhelmetlive.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- ".rvmrc",
23
- "Gemfile",
24
- "Gemfile.lock",
25
- "LICENSE",
26
- "README.rdoc",
27
- "Rakefile",
28
- "VERSION",
29
- "example/mongrel2.conf",
30
- "example/sinatra/.gitignore",
31
- "example/sinatra/app.rb",
32
- "example/sinatra/config.ru",
33
- "example/sinatra/mongrel2.conf",
34
- "lib/mongrel2.rb",
35
- "lib/mongrel2/connection.rb",
36
- "lib/mongrel2/request.rb",
37
- "lib/mongrel2/response.rb",
38
- "lib/rack/handler/mongrel2.rb",
39
- "rack-mongrel2.gemspec",
40
- "spec/rack-mongrel2_spec.rb",
41
- "spec/spec.opts",
42
- "spec/spec_helper.rb"
43
- ]
44
- s.homepage = %q{http://github.com/darkhelmet/rack-mongrel2}
10
+ s.rubygems_version = '1.3.5'
11
+
12
+ ## Leave these as is they will be modified for you by the rake gemspec task.
13
+ ## If your rubyforge_project name is different, then edit it and comment out
14
+ ## the sub! line in the Rakefile
15
+ s.name = 'rack-mongrel2'
16
+ s.version = '0.2.1'
17
+ s.date = '2010-11-28'
18
+ s.rubyforge_project = 'rack-mongrel2'
19
+
20
+ ## Make sure your summary is short. The description may be as long
21
+ ## as you like.
22
+ s.summary = %Q{The only Mongrel2 Rack handler you'll ever need.}
23
+ s.description = %Q{A Rack handler for the Mongrel2 web server, by Zed Shaw. http://mongrel2.org/}
24
+
25
+ ## List the primary authors. If there are a bunch of authors, it's probably
26
+ ## better to set the email to an email list or something. If you don't have
27
+ ## a custom homepage, consider using your GitHub URL or the like.
28
+ s.authors = ['Daniel Huckstep']
29
+ s.email = 'darkhelmet@darkhelmetlive.com'
30
+ s.homepage = 'http://github.com/darkhelmet/rack-mongrel2'
31
+
32
+ ## This gets added to the $LOAD_PATH so that 'lib/NAME.rb' can be required as
33
+ ## require 'NAME.rb' or'/lib/NAME/file.rb' can be as require 'NAME/file.rb'
34
+ s.require_paths = %w[lib]
35
+
36
+ ## Specify any RDoc options here. You'll want to add your README and
37
+ ## LICENSE files to the extra_rdoc_files list.
45
38
  s.rdoc_options = ["--charset=UTF-8"]
46
- s.require_paths = ["lib"]
47
- s.rubygems_version = %q{1.3.7}
48
- s.summary = %q{The only Mongrel2 Rack handler you'll ever need.}
49
- s.test_files = [
50
- "spec/rack-mongrel2_spec.rb",
51
- "spec/spec_helper.rb"
52
- ]
39
+ s.extra_rdoc_files = %w[README.md LICENSE]
40
+
41
+ ## List your runtime dependencies here. Runtime dependencies are those
42
+ ## that are needed for an end user to actually USE your code.
43
+ s.add_dependency('ffi', ['~> 0.6.3'])
44
+ s.add_dependency('ffi-rzmq', ['~> 0.6.0'])
53
45
 
54
- if s.respond_to? :specification_version then
55
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
56
- s.specification_version = 3
46
+ ## List your development dependencies here. Development dependencies are
47
+ ## those that are only needed during development
48
+ s.add_development_dependency('rspec', ['~> 2.2.0'])
49
+ s.add_development_dependency('fuubar', ['~> 0.0.2'])
50
+ s.add_development_dependency('yard', ['~> 0.6.3'])
57
51
 
58
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
- s.add_runtime_dependency(%q<ffi>, ["~> 0.6.3"])
60
- s.add_runtime_dependency(%q<ffi-rzmq>, ["~> 0.6.0"])
61
- s.add_development_dependency(%q<jeweler>, ["~> 1.4.0"])
62
- s.add_development_dependency(%q<rspec>, ["~> 2.0.1"])
63
- s.add_development_dependency(%q<yard>, ["~> 0.6.1"])
64
- else
65
- s.add_dependency(%q<ffi>, ["~> 0.6.3"])
66
- s.add_dependency(%q<ffi-rzmq>, ["~> 0.6.0"])
67
- s.add_dependency(%q<jeweler>, ["~> 1.4.0"])
68
- s.add_dependency(%q<rspec>, ["~> 2.0.1"])
69
- s.add_dependency(%q<yard>, ["~> 0.6.1"])
70
- end
71
- else
72
- s.add_dependency(%q<ffi>, ["~> 0.6.3"])
73
- s.add_dependency(%q<ffi-rzmq>, ["~> 0.6.0"])
74
- s.add_dependency(%q<jeweler>, ["~> 1.4.0"])
75
- s.add_dependency(%q<rspec>, ["~> 2.0.1"])
76
- s.add_dependency(%q<yard>, ["~> 0.6.1"])
77
- end
78
- end
52
+ ## Leave this section as-is. It will be automatically generated from the
53
+ ## contents of your Git repository via the gemspec task. DO NOT REMOVE
54
+ ## THE MANIFEST COMMENTS, they are used as delimiters by the task.
55
+ # = MANIFEST =
56
+ s.files = %w[
57
+ Gemfile
58
+ LICENSE
59
+ README.md
60
+ Rakefile
61
+ example/mongrel2.conf
62
+ example/sinatra/.gitignore
63
+ example/sinatra/app.rb
64
+ example/sinatra/config.ru
65
+ example/sinatra/mongrel2.conf
66
+ lib/mongrel2.rb
67
+ lib/mongrel2/connection.rb
68
+ lib/mongrel2/request.rb
69
+ lib/mongrel2/response.rb
70
+ lib/rack/handler/mongrel2.rb
71
+ rack-mongrel2.gemspec
72
+ spec/request_spec.rb
73
+ spec/response_spec.rb
74
+ spec/spec.opts
75
+ spec/spec_helper.rb
76
+ ]
77
+ # = MANIFEST =
79
78
 
79
+ ## Test files will be grabbed from the file list. Make sure the path glob
80
+ ## matches what you actually use.
81
+ s.test_files = s.files.select { |path| path =~ /^spec\/.*_spec\.rb/ }
82
+ end
@@ -0,0 +1,46 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Mongrel2::Request" do
4
+
5
+ it "should parse a netstring and ignore the contents of the netstring as well as the trailing comma" do
6
+ netstring = "9:aoeu:snth,"
7
+ result = Mongrel2::Request.parse_netstring(netstring)
8
+ result.length.should == 2
9
+ result[0].length.should == 9
10
+ result[0].should eql("aoeu:snth")
11
+ end
12
+
13
+ it "should parse a netstring made up of multiple netstrings" do
14
+ netstring = "9:aoeu:snth,16:aeou snth qwerty,"
15
+ result = Mongrel2::Request.parse_netstring(netstring)
16
+ result.length.should == 2
17
+ result[0].length.should == 9
18
+ result[0].should eql("aoeu:snth")
19
+ result[1].length.should == 20
20
+ result[1].should eql("16:aeou snth qwerty,")
21
+ end
22
+
23
+ it "should fail if the netstring does not end in a comma" do
24
+ expect{Mongrel2::Request.parse_netstring("3:foo")}.to raise_error(NameError)
25
+ end
26
+
27
+ it "should parse a Mongrel2 message and have all parts populated" do
28
+ netstring = "UUID CON PATH 232:{\"PATH\":\"/\",\"user-agent\":\"curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3\",\"host\":\"localhost:6767\",\"accept\":\"*/*\",\"x-forwarded-for\":\"::1\",\"METHOD\":\"GET\",\"VERSION\":\"HTTP/1.1\",\"URI\":\"/\",\"PATTERN\":\"/\"},0:,"
29
+ r = Mongrel2::Request.parse(netstring)
30
+ r.should_not be_nil
31
+ r.uuid.should eql("UUID")
32
+ r.conn_id.should eql("CON")
33
+ r.path.should eql("PATH")
34
+ r.body.length.should == 0
35
+ r.headers.length.should == 9
36
+ r.headers["PATH"].should eql("/")
37
+ r.headers["user-agent"].should eql("curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3")
38
+ r.headers["host"].should eql("localhost:6767")
39
+ r.headers["accept"].should eql("*/*")
40
+ r.headers["x-forwarded-for"].should eql("::1")
41
+ r.headers["METHOD"].should eql("GET")
42
+ r.headers["VERSION"].should eql("HTTP/1.1")
43
+ r.headers["URI"].should eql("/")
44
+ r.headers["PATTERN"].should eql("/")
45
+ end
46
+ end
@@ -0,0 +1,30 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Mongrel2::Response" do
4
+ before(:each) do
5
+ @req = double()
6
+ @resp = double()
7
+ @response = Mongrel2::Response.new(@resp)
8
+ end
9
+
10
+ it "should build the HTTP request format" do
11
+ @req.should_receive(:uuid) {"UUID"}
12
+ @req.should_receive(:conn_id) {"CONN_ID"}
13
+
14
+ httpreq = "UUID 7:CONN_ID, HTTP/1.1 200 OK\r\nContent-Length: 4\r\n\r\nBoo!"
15
+ @resp.should_receive(:send_string).with(httpreq)
16
+
17
+ @response.send_http(@req, "Boo!", 200, {})
18
+ end
19
+
20
+ it "should send a blank response to close the response" do
21
+ @req.should_receive(:uuid) {"UUID"}
22
+ @req.should_receive(:conn_id) {"CONN_ID"}
23
+
24
+ httpreq = "UUID 7:CONN_ID, "
25
+ @resp.should_receive(:send_string).with(httpreq)
26
+
27
+ @response.close(@req)
28
+ end
29
+
30
+ end
data/spec/spec.opts CHANGED
@@ -1 +1,2 @@
1
+ --format Fuubar
1
2
  --color
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,12 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
- require 'rack-mongrel2'
4
- require 'spec'
5
- require 'spec/autorun'
3
+ require 'mongrel2'
4
+ require 'mongrel2/connection'
5
+ require 'mongrel2/request'
6
+ require 'mongrel2/response'
7
+ require 'rspec'
8
+ require 'rspec/autorun'
6
9
 
7
- Spec::Runner.configure do |config|
10
+ RSpec.configure do |config|
8
11
 
9
12
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 0
9
- version: 0.2.0
8
+ - 1
9
+ version: 0.2.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Huckstep
@@ -14,11 +14,12 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-24 00:00:00 -06:00
17
+ date: 2010-11-28 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: ffi
22
+ prerelease: false
22
23
  requirement: &id001 !ruby/object:Gem::Requirement
23
24
  none: false
24
25
  requirements:
@@ -30,10 +31,10 @@ dependencies:
30
31
  - 3
31
32
  version: 0.6.3
32
33
  type: :runtime
33
- prerelease: false
34
34
  version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: ffi-rzmq
37
+ prerelease: false
37
38
  requirement: &id002 !ruby/object:Gem::Requirement
38
39
  none: false
39
40
  requirements:
@@ -45,40 +46,40 @@ dependencies:
45
46
  - 0
46
47
  version: 0.6.0
47
48
  type: :runtime
48
- prerelease: false
49
49
  version_requirements: *id002
50
50
  - !ruby/object:Gem::Dependency
51
- name: jeweler
51
+ name: rspec
52
+ prerelease: false
52
53
  requirement: &id003 !ruby/object:Gem::Requirement
53
54
  none: false
54
55
  requirements:
55
56
  - - ~>
56
57
  - !ruby/object:Gem::Version
57
58
  segments:
58
- - 1
59
- - 4
59
+ - 2
60
+ - 2
60
61
  - 0
61
- version: 1.4.0
62
+ version: 2.2.0
62
63
  type: :development
63
- prerelease: false
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
66
- name: rspec
66
+ name: fuubar
67
+ prerelease: false
67
68
  requirement: &id004 !ruby/object:Gem::Requirement
68
69
  none: false
69
70
  requirements:
70
71
  - - ~>
71
72
  - !ruby/object:Gem::Version
72
73
  segments:
73
- - 2
74
74
  - 0
75
- - 1
76
- version: 2.0.1
75
+ - 0
76
+ - 2
77
+ version: 0.0.2
77
78
  type: :development
78
- prerelease: false
79
79
  version_requirements: *id004
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: yard
82
+ prerelease: false
82
83
  requirement: &id005 !ruby/object:Gem::Requirement
83
84
  none: false
84
85
  requirements:
@@ -87,10 +88,9 @@ dependencies:
87
88
  segments:
88
89
  - 0
89
90
  - 6
90
- - 1
91
- version: 0.6.1
91
+ - 3
92
+ version: 0.6.3
92
93
  type: :development
93
- prerelease: false
94
94
  version_requirements: *id005
95
95
  description: A Rack handler for the Mongrel2 web server, by Zed Shaw. http://mongrel2.org/
96
96
  email: darkhelmet@darkhelmetlive.com
@@ -99,18 +99,13 @@ executables: []
99
99
  extensions: []
100
100
 
101
101
  extra_rdoc_files:
102
+ - README.md
102
103
  - LICENSE
103
- - README.rdoc
104
104
  files:
105
- - .document
106
- - .gitignore
107
- - .rvmrc
108
105
  - Gemfile
109
- - Gemfile.lock
110
106
  - LICENSE
111
- - README.rdoc
107
+ - README.md
112
108
  - Rakefile
113
- - VERSION
114
109
  - example/mongrel2.conf
115
110
  - example/sinatra/.gitignore
116
111
  - example/sinatra/app.rb
@@ -122,7 +117,8 @@ files:
122
117
  - lib/mongrel2/response.rb
123
118
  - lib/rack/handler/mongrel2.rb
124
119
  - rack-mongrel2.gemspec
125
- - spec/rack-mongrel2_spec.rb
120
+ - spec/request_spec.rb
121
+ - spec/response_spec.rb
126
122
  - spec/spec.opts
127
123
  - spec/spec_helper.rb
128
124
  has_rdoc: true
@@ -152,11 +148,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
148
  version: "0"
153
149
  requirements: []
154
150
 
155
- rubyforge_project:
151
+ rubyforge_project: rack-mongrel2
156
152
  rubygems_version: 1.3.7
157
153
  signing_key:
158
- specification_version: 3
154
+ specification_version: 2
159
155
  summary: The only Mongrel2 Rack handler you'll ever need.
160
156
  test_files:
161
- - spec/rack-mongrel2_spec.rb
162
- - spec/spec_helper.rb
157
+ - spec/request_spec.rb
158
+ - spec/response_spec.rb
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/.gitignore DELETED
@@ -1,23 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
22
- .bundle/
23
- *.rbc
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 1.9.2@rack-mongrel2
data/Gemfile.lock DELETED
@@ -1,38 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- diff-lcs (1.1.2)
5
- ffi (0.6.3)
6
- rake (>= 0.8.7)
7
- ffi-rzmq (0.6.0)
8
- gemcutter (0.6.1)
9
- git (1.2.5)
10
- jeweler (1.4.0)
11
- gemcutter (>= 0.1.0)
12
- git (>= 1.2.5)
13
- rubyforge (>= 2.0.0)
14
- json_pure (1.4.6)
15
- rake (0.8.7)
16
- rspec (2.0.1)
17
- rspec-core (~> 2.0.1)
18
- rspec-expectations (~> 2.0.1)
19
- rspec-mocks (~> 2.0.1)
20
- rspec-core (2.0.1)
21
- rspec-expectations (2.0.1)
22
- diff-lcs (>= 1.1.2)
23
- rspec-mocks (2.0.1)
24
- rspec-core (~> 2.0.1)
25
- rspec-expectations (~> 2.0.1)
26
- rubyforge (2.0.4)
27
- json_pure (>= 1.1.7)
28
- yard (0.6.1)
29
-
30
- PLATFORMS
31
- ruby
32
-
33
- DEPENDENCIES
34
- ffi (~> 0.6.3)
35
- ffi-rzmq (~> 0.6.0)
36
- jeweler (~> 1.4.0)
37
- rspec (~> 2.0.1)
38
- yard (~> 0.6.1)
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.2.0
@@ -1,7 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "RackMongrel2" do
4
- it "fails" do
5
- fail "hey buddy, you should probably rename this file and start specing for real"
6
- end
7
- end