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.
- data.tar.gz.sig +0 -0
- data/.gemtest +0 -0
- data/History.rdoc +4 -0
- data/Manifest.txt +66 -0
- data/README.rdoc +169 -0
- data/Rakefile +77 -0
- data/bin/m2sh.rb +600 -0
- data/data/mongrel2/bootstrap.html +25 -0
- data/data/mongrel2/config.sql +84 -0
- data/data/mongrel2/mimetypes.sql +855 -0
- data/examples/README.txt +6 -0
- data/examples/config.rb +54 -0
- data/examples/helloworld-handler.rb +31 -0
- data/examples/request-dumper.rb +45 -0
- data/examples/request-dumper.tmpl +71 -0
- data/examples/run +17 -0
- data/lib/mongrel2.rb +62 -0
- data/lib/mongrel2/config.rb +212 -0
- data/lib/mongrel2/config/directory.rb +78 -0
- data/lib/mongrel2/config/dsl.rb +206 -0
- data/lib/mongrel2/config/handler.rb +124 -0
- data/lib/mongrel2/config/host.rb +88 -0
- data/lib/mongrel2/config/log.rb +48 -0
- data/lib/mongrel2/config/mimetype.rb +15 -0
- data/lib/mongrel2/config/proxy.rb +15 -0
- data/lib/mongrel2/config/route.rb +51 -0
- data/lib/mongrel2/config/server.rb +58 -0
- data/lib/mongrel2/config/setting.rb +15 -0
- data/lib/mongrel2/config/statistic.rb +23 -0
- data/lib/mongrel2/connection.rb +212 -0
- data/lib/mongrel2/constants.rb +159 -0
- data/lib/mongrel2/control.rb +165 -0
- data/lib/mongrel2/exceptions.rb +59 -0
- data/lib/mongrel2/handler.rb +309 -0
- data/lib/mongrel2/httprequest.rb +51 -0
- data/lib/mongrel2/httpresponse.rb +187 -0
- data/lib/mongrel2/jsonrequest.rb +43 -0
- data/lib/mongrel2/logging.rb +241 -0
- data/lib/mongrel2/mixins.rb +143 -0
- data/lib/mongrel2/request.rb +148 -0
- data/lib/mongrel2/response.rb +74 -0
- data/lib/mongrel2/table.rb +216 -0
- data/lib/mongrel2/xmlrequest.rb +36 -0
- data/spec/lib/constants.rb +237 -0
- data/spec/lib/helpers.rb +246 -0
- data/spec/lib/matchers.rb +50 -0
- data/spec/mongrel2/config/directory_spec.rb +91 -0
- data/spec/mongrel2/config/dsl_spec.rb +218 -0
- data/spec/mongrel2/config/handler_spec.rb +118 -0
- data/spec/mongrel2/config/host_spec.rb +30 -0
- data/spec/mongrel2/config/log_spec.rb +95 -0
- data/spec/mongrel2/config/proxy_spec.rb +30 -0
- data/spec/mongrel2/config/route_spec.rb +83 -0
- data/spec/mongrel2/config/server_spec.rb +84 -0
- data/spec/mongrel2/config/setting_spec.rb +30 -0
- data/spec/mongrel2/config/statistic_spec.rb +30 -0
- data/spec/mongrel2/config_spec.rb +111 -0
- data/spec/mongrel2/connection_spec.rb +172 -0
- data/spec/mongrel2/constants_spec.rb +32 -0
- data/spec/mongrel2/control_spec.rb +192 -0
- data/spec/mongrel2/handler_spec.rb +261 -0
- data/spec/mongrel2/httpresponse_spec.rb +232 -0
- data/spec/mongrel2/logging_spec.rb +76 -0
- data/spec/mongrel2/mixins_spec.rb +62 -0
- data/spec/mongrel2/request_spec.rb +157 -0
- data/spec/mongrel2/response_spec.rb +81 -0
- data/spec/mongrel2/table_spec.rb +176 -0
- data/spec/mongrel2_spec.rb +34 -0
- metadata +294 -0
- 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: []
|