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