mongrel2 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data.tar.gz.sig +0 -0
  2. data/.gemtest +0 -0
  3. data/History.rdoc +4 -0
  4. data/Manifest.txt +66 -0
  5. data/README.rdoc +169 -0
  6. data/Rakefile +77 -0
  7. data/bin/m2sh.rb +600 -0
  8. data/data/mongrel2/bootstrap.html +25 -0
  9. data/data/mongrel2/config.sql +84 -0
  10. data/data/mongrel2/mimetypes.sql +855 -0
  11. data/examples/README.txt +6 -0
  12. data/examples/config.rb +54 -0
  13. data/examples/helloworld-handler.rb +31 -0
  14. data/examples/request-dumper.rb +45 -0
  15. data/examples/request-dumper.tmpl +71 -0
  16. data/examples/run +17 -0
  17. data/lib/mongrel2.rb +62 -0
  18. data/lib/mongrel2/config.rb +212 -0
  19. data/lib/mongrel2/config/directory.rb +78 -0
  20. data/lib/mongrel2/config/dsl.rb +206 -0
  21. data/lib/mongrel2/config/handler.rb +124 -0
  22. data/lib/mongrel2/config/host.rb +88 -0
  23. data/lib/mongrel2/config/log.rb +48 -0
  24. data/lib/mongrel2/config/mimetype.rb +15 -0
  25. data/lib/mongrel2/config/proxy.rb +15 -0
  26. data/lib/mongrel2/config/route.rb +51 -0
  27. data/lib/mongrel2/config/server.rb +58 -0
  28. data/lib/mongrel2/config/setting.rb +15 -0
  29. data/lib/mongrel2/config/statistic.rb +23 -0
  30. data/lib/mongrel2/connection.rb +212 -0
  31. data/lib/mongrel2/constants.rb +159 -0
  32. data/lib/mongrel2/control.rb +165 -0
  33. data/lib/mongrel2/exceptions.rb +59 -0
  34. data/lib/mongrel2/handler.rb +309 -0
  35. data/lib/mongrel2/httprequest.rb +51 -0
  36. data/lib/mongrel2/httpresponse.rb +187 -0
  37. data/lib/mongrel2/jsonrequest.rb +43 -0
  38. data/lib/mongrel2/logging.rb +241 -0
  39. data/lib/mongrel2/mixins.rb +143 -0
  40. data/lib/mongrel2/request.rb +148 -0
  41. data/lib/mongrel2/response.rb +74 -0
  42. data/lib/mongrel2/table.rb +216 -0
  43. data/lib/mongrel2/xmlrequest.rb +36 -0
  44. data/spec/lib/constants.rb +237 -0
  45. data/spec/lib/helpers.rb +246 -0
  46. data/spec/lib/matchers.rb +50 -0
  47. data/spec/mongrel2/config/directory_spec.rb +91 -0
  48. data/spec/mongrel2/config/dsl_spec.rb +218 -0
  49. data/spec/mongrel2/config/handler_spec.rb +118 -0
  50. data/spec/mongrel2/config/host_spec.rb +30 -0
  51. data/spec/mongrel2/config/log_spec.rb +95 -0
  52. data/spec/mongrel2/config/proxy_spec.rb +30 -0
  53. data/spec/mongrel2/config/route_spec.rb +83 -0
  54. data/spec/mongrel2/config/server_spec.rb +84 -0
  55. data/spec/mongrel2/config/setting_spec.rb +30 -0
  56. data/spec/mongrel2/config/statistic_spec.rb +30 -0
  57. data/spec/mongrel2/config_spec.rb +111 -0
  58. data/spec/mongrel2/connection_spec.rb +172 -0
  59. data/spec/mongrel2/constants_spec.rb +32 -0
  60. data/spec/mongrel2/control_spec.rb +192 -0
  61. data/spec/mongrel2/handler_spec.rb +261 -0
  62. data/spec/mongrel2/httpresponse_spec.rb +232 -0
  63. data/spec/mongrel2/logging_spec.rb +76 -0
  64. data/spec/mongrel2/mixins_spec.rb +62 -0
  65. data/spec/mongrel2/request_spec.rb +157 -0
  66. data/spec/mongrel2/response_spec.rb +81 -0
  67. data/spec/mongrel2/table_spec.rb +176 -0
  68. data/spec/mongrel2_spec.rb +34 -0
  69. metadata +294 -0
  70. metadata.gz.sig +0 -0
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ BEGIN {
4
+ require 'pathname'
5
+ basedir = Pathname.new( __FILE__ ).dirname.parent.parent
6
+
7
+ libdir = basedir + "lib"
8
+
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
10
+ $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
11
+ }
12
+
13
+ require 'rspec'
14
+ require 'tnetstring'
15
+
16
+ require 'spec/lib/helpers'
17
+
18
+ require 'mongrel2'
19
+ require 'mongrel2/request'
20
+ require 'mongrel2/response'
21
+
22
+
23
+ #####################################################################
24
+ ### C O N T E X T S
25
+ #####################################################################
26
+
27
+ describe Mongrel2::Response do
28
+
29
+ before( :all ) do
30
+ setup_logging( :fatal )
31
+ end
32
+
33
+ after( :all ) do
34
+ reset_logging()
35
+ end
36
+
37
+
38
+ it "can create a matching response given a Mongrel2::Request" do
39
+ req = Mongrel2::Request.new( TEST_UUID, 8, '/path', {}, '' )
40
+ response = Mongrel2::Response.from_request( req )
41
+
42
+ response.should be_a( Mongrel2::Response )
43
+ response.sender_id.should == req.sender_id
44
+ response.conn_id.should == req.conn_id
45
+ end
46
+
47
+
48
+ it "can be created with a body" do
49
+ response = Mongrel2::Response.new( TEST_UUID, 8, 'the body' )
50
+ response.body.should == 'the body'
51
+ end
52
+
53
+ it "stringifies to its body contents" do
54
+ response = Mongrel2::Response.new( TEST_UUID, 8, 'the body' )
55
+ response.to_s.should == 'the body'
56
+ end
57
+
58
+ context "an instance with default values" do
59
+
60
+ before( :each ) do
61
+ @response = Mongrel2::Response.new( TEST_UUID, 8 )
62
+ end
63
+
64
+ it "has an empty-string body" do
65
+ @response.body.should == ''
66
+ end
67
+
68
+ it "supports the append operator to append objects to the body" do
69
+ @response << 'some body stuff' << ' and some more body stuff'
70
+ @response.body.should == 'some body stuff and some more body stuff'
71
+ end
72
+
73
+ it "supports #puts for appending objects separated by EOL" do
74
+ @response.puts( "some body stuff\n", " and some more body stuff\n\n", :and_a_symbol )
75
+ @response.body.should == "some body stuff\n and some more body stuff\n\nand_a_symbol\n"
76
+ end
77
+
78
+ end
79
+
80
+ end
81
+
@@ -0,0 +1,176 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ BEGIN {
4
+ require 'pathname'
5
+ basedir = Pathname.new( __FILE__ ).dirname.parent.parent
6
+
7
+ libdir = basedir + "lib"
8
+
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
10
+ $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
11
+ }
12
+
13
+ require 'rspec'
14
+
15
+ require 'spec/lib/helpers'
16
+
17
+ require 'mongrel2'
18
+ require 'mongrel2/table'
19
+
20
+
21
+ #####################################################################
22
+ ### C O N T E X T S
23
+ #####################################################################
24
+
25
+ describe Mongrel2::Table do
26
+
27
+
28
+ before( :all ) do
29
+ setup_logging( :fatal )
30
+ end
31
+
32
+ before( :each ) do
33
+ @table = Mongrel2::Table.new
34
+ end
35
+
36
+ after( :all ) do
37
+ reset_logging()
38
+ end
39
+
40
+
41
+
42
+ it "allows setting/fetching case-insensitively" do
43
+
44
+ @table['Accept'] = :accept
45
+ @table['USER-AGENT'] = :user_agent
46
+ @table[:accept_encoding] = :accept_encoding
47
+ @table.accept_encoding = :accept_encoding
48
+
49
+ @table['accept'].should == :accept
50
+ @table['ACCEPT'].should == :accept
51
+ @table['Accept'].should == :accept
52
+ @table[:accept].should == :accept
53
+ @table.accept.should == :accept
54
+
55
+ @table['USER-AGENT'].should == :user_agent
56
+ @table['User-Agent'].should == :user_agent
57
+ @table['user-agent'].should == :user_agent
58
+ @table[:user_agent].should == :user_agent
59
+ @table.user_agent.should == :user_agent
60
+
61
+ @table['ACCEPT-ENCODING'].should == :accept_encoding
62
+ @table['Accept-Encoding'].should == :accept_encoding
63
+ @table['accept-encoding'].should == :accept_encoding
64
+ @table[:accept_encoding].should == :accept_encoding
65
+ @table.accept_encoding.should == :accept_encoding
66
+ end
67
+
68
+
69
+ it "should assign a new value when appending to a non-existing key" do
70
+ @table.append( 'indian-meal' => 'pinecones' )
71
+ @table['Indian-Meal'].should == 'pinecones'
72
+ end
73
+
74
+
75
+ it "should create an array value and append when appending to an existing key" do
76
+ @table[:indian_meal] = 'pork sausage'
77
+ @table.append( 'Indian-MEAL' => 'pinecones' )
78
+ @table['Indian-Meal'].should have(2).members
79
+ @table['Indian-Meal'].should include('pinecones')
80
+ @table['Indian-Meal'].should include('pork sausage')
81
+ end
82
+
83
+
84
+ it "it should combine pairs in the intial hash whose keys normalize to the " +
85
+ "same thing into an array value" do
86
+
87
+ table = Mongrel2::Table.new({ :bob => :dan, 'Bob' => :dan_too })
88
+
89
+ table[:bob].should have(2).members
90
+ table['Bob'].should include( :dan )
91
+ table['bob'].should include( :dan_too )
92
+ end
93
+
94
+
95
+ it "creates RFC822-style header lines when cast to a String" do
96
+ table = Mongrel2::Table.new({
97
+ :accept => 'text/html',
98
+ 'x-ice-cream-flavor' => 'mango'
99
+ })
100
+
101
+ table.append( 'x-ice-cream-flavor' => 'banana' )
102
+
103
+ table.to_s.should =~ %r{Accept: text/html\r\n}
104
+ table.to_s.should =~ %r{X-Ice-Cream-Flavor: mango\r\n}
105
+ table.to_s.should =~ %r{X-Ice-Cream-Flavor: banana\r\n}
106
+ end
107
+
108
+
109
+ it "merges other Tables" do
110
+ othertable = Mongrel2::Table.new
111
+
112
+ @table['accept'] = 'thing'
113
+ @table['cookie'] = 'chocolate chip'
114
+
115
+ othertable['cookie'] = 'peanut butter'
116
+
117
+ ot = @table.merge( othertable )
118
+ ot['accept'].should == 'thing'
119
+ ot['cookie'].should == 'peanut butter'
120
+ end
121
+
122
+
123
+ it "merges hashes after normalizing keys" do
124
+ @table['accept'] = 'thing'
125
+ @table['cookie-flavor'] = 'chocolate chip'
126
+
127
+ hash = { 'CookiE_FLAVOR' => 'peanut butter' }
128
+
129
+ ot = @table.merge( hash )
130
+ ot['accept'].should == 'thing'
131
+ ot['cookie-flavor'].should == 'peanut butter'
132
+ end
133
+
134
+
135
+ it "dupes its inner hash when duped" do
136
+ newtable = @table.dup
137
+
138
+ newtable['idkfa'] = 'god'
139
+ @table.should_not include( 'idkfa' )
140
+ @table.should be_empty()
141
+ end
142
+
143
+
144
+ it "provides a case-insensitive version of the #values_at" do
145
+ @table['uuddlrlrbas'] = 'contra_rules'
146
+ @table['idspispopd'] = 'ghosty'
147
+ @table['porntipsguzzardo'] = 'cha-ching'
148
+
149
+ results = @table.values_at( :idspispopd, 'PornTipsGuzzARDO' )
150
+ results.should == [ 'ghosty', 'cha-ching' ]
151
+ end
152
+
153
+
154
+ it "provides an implementation of #each that returns keys as HTTP table" do
155
+ @table.append( 'thai_food' => 'normally good' )
156
+ @table.append( :with_absinthe => 'questionable' )
157
+ @table.append( 'A_Number_of_SOME_sort' => 2 )
158
+ @table.append( 'thai_food' => 'seldom hot enough' )
159
+
160
+ values = []
161
+ @table.each_header do |header, value|
162
+ values << [ header, value ]
163
+ end
164
+
165
+ values.flatten.should have(8).members
166
+ values.transpose[0].should include( 'Thai-Food', 'With-Absinthe', 'A-Number-Of-Some-Sort' )
167
+ values.transpose[1].should include( 'normally good', 'seldom hot enough', 'questionable', '2' )
168
+ end
169
+
170
+
171
+ it "can yield an Enumerator for its header iterator" do
172
+ @table.each_header.should be_a( Enumerator )
173
+ end
174
+ end
175
+
176
+
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env rspec -cfd -b
2
+
3
+ BEGIN {
4
+ require 'pathname'
5
+ basedir = Pathname( __FILE__ ).dirname.parent
6
+ libdir = basedir + 'lib'
7
+
8
+ $LOAD_PATH.unshift( basedir.to_s ) unless $LOAD_PATH.include?( basedir.to_s )
9
+ $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
10
+ }
11
+
12
+ require 'rspec'
13
+
14
+ require 'spec/lib/helpers'
15
+
16
+ require 'logger'
17
+ require 'mongrel2'
18
+
19
+
20
+ describe Mongrel2 do
21
+
22
+ describe "version methods" do
23
+ it "returns a version string if asked" do
24
+ Mongrel2.version_string.should =~ /\w+ [\d.]+/
25
+ end
26
+
27
+
28
+ it "returns a version string with a build number if asked" do
29
+ Mongrel2.version_string(true).should =~ /\w+ [\d.]+ \(build [[:xdigit:]]+\)/
30
+ end
31
+ end
32
+
33
+ end
34
+
metadata ADDED
@@ -0,0 +1,294 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mongrel2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Michael Granger
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain:
12
+ - ! '-----BEGIN CERTIFICATE-----
13
+
14
+ MIIDLDCCAhSgAwIBAgIBADANBgkqhkiG9w0BAQUFADA8MQwwCgYDVQQDDANnZWQx
15
+
16
+ FzAVBgoJkiaJk/IsZAEZFgdfYWVyaWVfMRMwEQYKCZImiZPyLGQBGRYDb3JnMB4X
17
+
18
+ DTEwMDkxNjE0NDg1MVoXDTExMDkxNjE0NDg1MVowPDEMMAoGA1UEAwwDZ2VkMRcw
19
+
20
+ FQYKCZImiZPyLGQBGRYHX2FlcmllXzETMBEGCgmSJomT8ixkARkWA29yZzCCASIw
21
+
22
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALy//BFxC1f/cPSnwtJBWoFiFrir
23
+
24
+ h7RicI+joq/ocVXQqI4TDWPyF/8tqkvt+rD99X9qs2YeR8CU/YiIpLWrQOYST70J
25
+
26
+ vDn7Uvhb2muFVqq6+vobeTkILBEO6pionWDG8jSbo3qKm1RjKJDwg9p4wNKhPuu8
27
+
28
+ KGue/BFb67KflqyApPmPeb3Vdd9clspzqeFqp7cUBMEpFS6LWxy4Gk+qvFFJBJLB
29
+
30
+ BUHE/LZVJMVzfpC5Uq+QmY7B+FH/QqNndn3tOHgsPadLTNimuB1sCuL1a4z3Pepd
31
+
32
+ TeLBEFmEao5Dk3K/Q8o8vlbIB/jBDTUx6Djbgxw77909x6gI9doU4LD5XMcCAwEA
33
+
34
+ AaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJeoGkOr9l4B
35
+
36
+ +saMkW/ZXT4UeSvVMA0GCSqGSIb3DQEBBQUAA4IBAQBG2KObvYI2eHyyBUJSJ3jN
37
+
38
+ vEnU3d60znAXbrSd2qb3r1lY1EPDD3bcy0MggCfGdg3Xu54z21oqyIdk8uGtWBPL
39
+
40
+ HIa9EgfFGSUEgvcIvaYqiN4jTUtidfEFw+Ltjs8AP9gWgSIYS6Gr38V0WGFFNzIH
41
+
42
+ aOD2wmu9oo/RffW4hS/8GuvfMzcw7CQ355wFR4KB/nyze+EsZ1Y5DerCAagMVuDQ
43
+
44
+ U0BLmWDFzPGGWlPeQCrYHCr+AcJz+NRnaHCKLZdSKj/RHuTOt+gblRex8FAh8NeA
45
+
46
+ cmlhXe46pZNJgWKbxZah85jIjx95hR8vOI+NAM5iH9kOqK13DrxacTKPhqj5PjwF
47
+
48
+ -----END CERTIFICATE-----
49
+
50
+ '
51
+ date: 2011-09-13 00:00:00.000000000Z
52
+ dependencies:
53
+ - !ruby/object:Gem::Dependency
54
+ name: nokogiri
55
+ requirement: &70288039557840 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '1.5'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: *70288039557840
64
+ - !ruby/object:Gem::Dependency
65
+ name: sequel
66
+ requirement: &70288039557240 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ version: '3.26'
72
+ type: :runtime
73
+ prerelease: false
74
+ version_requirements: *70288039557240
75
+ - !ruby/object:Gem::Dependency
76
+ name: amalgalite
77
+ requirement: &70288039556620 !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '1.1'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: *70288039556620
86
+ - !ruby/object:Gem::Dependency
87
+ name: tnetstring
88
+ requirement: &70288039556040 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '0.3'
94
+ type: :runtime
95
+ prerelease: false
96
+ version_requirements: *70288039556040
97
+ - !ruby/object:Gem::Dependency
98
+ name: yajl-ruby
99
+ requirement: &70288039555360 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ version: '0.8'
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: *70288039555360
108
+ - !ruby/object:Gem::Dependency
109
+ name: zmq
110
+ requirement: &70288039554760 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ~>
114
+ - !ruby/object:Gem::Version
115
+ version: 2.1.3.1
116
+ type: :runtime
117
+ prerelease: false
118
+ version_requirements: *70288039554760
119
+ - !ruby/object:Gem::Dependency
120
+ name: hoe-mercurial
121
+ requirement: &70288039554060 !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ version: 1.2.2
127
+ type: :development
128
+ prerelease: false
129
+ version_requirements: *70288039554060
130
+ - !ruby/object:Gem::Dependency
131
+ name: hoe-highline
132
+ requirement: &70288039553380 !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ~>
136
+ - !ruby/object:Gem::Version
137
+ version: 0.0.1
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: *70288039553380
141
+ - !ruby/object:Gem::Dependency
142
+ name: configurability
143
+ requirement: &70288039540900 !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ~>
147
+ - !ruby/object:Gem::Version
148
+ version: '1.0'
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: *70288039540900
152
+ - !ruby/object:Gem::Dependency
153
+ name: rspec
154
+ requirement: &70288039540120 !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - ~>
158
+ - !ruby/object:Gem::Version
159
+ version: '2.4'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: *70288039540120
163
+ - !ruby/object:Gem::Dependency
164
+ name: hoe
165
+ requirement: &70288039539340 !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ~>
169
+ - !ruby/object:Gem::Version
170
+ version: '2.12'
171
+ type: :development
172
+ prerelease: false
173
+ version_requirements: *70288039539340
174
+ description: ! "A complete Ruby connector for Mongrel2[http://mongrel2.org/].\n\nThis
175
+ library includes configuration-database ORM classes, a Ruby\nimplementation of the
176
+ 'm2sh' tool, a configuration DSL for generating config\ndatabases in pure Ruby,
177
+ a Control port interface object, handler classes for creating applications or higher-level
178
+ frameworks.\n\nIt differs from the original Mongrel2 Ruby library (m2r), and the\nmongrel2-rack
179
+ library in several ways:\n\n* It uses the C extension for 0MQ (zmq) instead of the
180
+ FFI one. If you\n strongly prefer the FFI library, both of the other Mongrel2 libraries
181
+ use\n it, so you'll want to stick to one of them.\n\n* It doesn't come with a Rack
182
+ handler, or Rails examples, or anything fancy. I\n intend to build my own webby
183
+ framework bits around Mongrel2, and I thought\n maybe someone else might want to
184
+ as well. If you don't, well again, there\n are two other libraries for you.\n\n*
185
+ It includes configuration stuff. I want to make tools that use the Mongrel2\n config
186
+ database, so I wrote config classes. Sequel::Model made it\n stupid-easy. There's
187
+ also a DSL for generating a config database, too,\n mostly because I found it an
188
+ interesting exercise, and I like the way it\n looks."
189
+ email:
190
+ - ged@FaerieMUD.org
191
+ executables:
192
+ - m2sh.rb
193
+ extensions: []
194
+ extra_rdoc_files:
195
+ - Manifest.txt
196
+ - examples/README.txt
197
+ - README.rdoc
198
+ - History.rdoc
199
+ files:
200
+ - History.rdoc
201
+ - Manifest.txt
202
+ - README.rdoc
203
+ - Rakefile
204
+ - bin/m2sh.rb
205
+ - data/mongrel2/bootstrap.html
206
+ - data/mongrel2/config.sql
207
+ - data/mongrel2/mimetypes.sql
208
+ - examples/README.txt
209
+ - examples/config.rb
210
+ - examples/helloworld-handler.rb
211
+ - examples/request-dumper.rb
212
+ - examples/request-dumper.tmpl
213
+ - examples/run
214
+ - lib/mongrel2.rb
215
+ - lib/mongrel2/config.rb
216
+ - lib/mongrel2/config/directory.rb
217
+ - lib/mongrel2/config/dsl.rb
218
+ - lib/mongrel2/config/handler.rb
219
+ - lib/mongrel2/config/host.rb
220
+ - lib/mongrel2/config/log.rb
221
+ - lib/mongrel2/config/mimetype.rb
222
+ - lib/mongrel2/config/proxy.rb
223
+ - lib/mongrel2/config/route.rb
224
+ - lib/mongrel2/config/server.rb
225
+ - lib/mongrel2/config/setting.rb
226
+ - lib/mongrel2/config/statistic.rb
227
+ - lib/mongrel2/connection.rb
228
+ - lib/mongrel2/constants.rb
229
+ - lib/mongrel2/control.rb
230
+ - lib/mongrel2/exceptions.rb
231
+ - lib/mongrel2/handler.rb
232
+ - lib/mongrel2/httprequest.rb
233
+ - lib/mongrel2/httpresponse.rb
234
+ - lib/mongrel2/jsonrequest.rb
235
+ - lib/mongrel2/logging.rb
236
+ - lib/mongrel2/mixins.rb
237
+ - lib/mongrel2/request.rb
238
+ - lib/mongrel2/response.rb
239
+ - lib/mongrel2/table.rb
240
+ - lib/mongrel2/xmlrequest.rb
241
+ - spec/lib/constants.rb
242
+ - spec/lib/helpers.rb
243
+ - spec/lib/matchers.rb
244
+ - spec/mongrel2/config/directory_spec.rb
245
+ - spec/mongrel2/config/dsl_spec.rb
246
+ - spec/mongrel2/config/handler_spec.rb
247
+ - spec/mongrel2/config/host_spec.rb
248
+ - spec/mongrel2/config/log_spec.rb
249
+ - spec/mongrel2/config/proxy_spec.rb
250
+ - spec/mongrel2/config/route_spec.rb
251
+ - spec/mongrel2/config/server_spec.rb
252
+ - spec/mongrel2/config/setting_spec.rb
253
+ - spec/mongrel2/config/statistic_spec.rb
254
+ - spec/mongrel2/config_spec.rb
255
+ - spec/mongrel2/connection_spec.rb
256
+ - spec/mongrel2/constants_spec.rb
257
+ - spec/mongrel2/control_spec.rb
258
+ - spec/mongrel2/handler_spec.rb
259
+ - spec/mongrel2/httpresponse_spec.rb
260
+ - spec/mongrel2/logging_spec.rb
261
+ - spec/mongrel2/mixins_spec.rb
262
+ - spec/mongrel2/request_spec.rb
263
+ - spec/mongrel2/response_spec.rb
264
+ - spec/mongrel2/table_spec.rb
265
+ - spec/mongrel2_spec.rb
266
+ - .gemtest
267
+ homepage: http://deveiate.org/projects/Ruby-Mongrel2/
268
+ licenses:
269
+ - BSD
270
+ post_install_message:
271
+ rdoc_options:
272
+ - -t
273
+ - Ruby-Mongrel2
274
+ require_paths:
275
+ - lib
276
+ required_ruby_version: !ruby/object:Gem::Requirement
277
+ none: false
278
+ requirements:
279
+ - - ! '>='
280
+ - !ruby/object:Gem::Version
281
+ version: 1.9.2
282
+ required_rubygems_version: !ruby/object:Gem::Requirement
283
+ none: false
284
+ requirements:
285
+ - - ! '>='
286
+ - !ruby/object:Gem::Version
287
+ version: '0'
288
+ requirements: []
289
+ rubyforge_project: mongrel2
290
+ rubygems_version: 1.8.10
291
+ signing_key:
292
+ specification_version: 3
293
+ summary: A complete Ruby connector for Mongrel2[http://mongrel2.org/]
294
+ test_files: []