mongrel2 0.0.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.
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: []