rack-mongrel2 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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