mongrel2 0.8.0 → 0.9.0
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/History.rdoc +6 -0
- data/lib/mongrel2.rb +2 -2
- data/lib/mongrel2/httpresponse.rb +1 -0
- data/lib/mongrel2/table.rb +22 -2
- data/spec/mongrel2/httpresponse_spec.rb +13 -25
- data/spec/mongrel2/table_spec.rb +8 -2
- metadata +23 -23
- metadata.gz.sig +1 -1
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== v0.9.0 [2011-10-12] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
- Fix Mongrel2::Table not duping/cloning its internal values.
|
4
|
+
- Set a default Content-type header in HTTP responses
|
5
|
+
|
6
|
+
|
1
7
|
== v0.8.0 [2011-10-12] Michael Granger <ged@FaerieMUD.org>
|
2
8
|
|
3
9
|
- Split out the normalization of HTTP response headers into two
|
data/lib/mongrel2.rb
CHANGED
@@ -14,10 +14,10 @@ module Mongrel2
|
|
14
14
|
abort "\n\n>>> Mongrel2 requires Ruby 1.9.2 or later. <<<\n\n" if RUBY_VERSION < '1.9.2'
|
15
15
|
|
16
16
|
# Library version constant
|
17
|
-
VERSION = '0.
|
17
|
+
VERSION = '0.9.0'
|
18
18
|
|
19
19
|
# Version-control revision constant
|
20
|
-
REVISION = %q$Revision:
|
20
|
+
REVISION = %q$Revision: 180ebbaeb4a0 $
|
21
21
|
|
22
22
|
|
23
23
|
require 'mongrel2/logging'
|
data/lib/mongrel2/table.rb
CHANGED
@@ -50,8 +50,28 @@ class Mongrel2::Table
|
|
50
50
|
|
51
51
|
|
52
52
|
### Make sure the inner Hash is unique on duplications.
|
53
|
-
def
|
54
|
-
@hash =
|
53
|
+
def initialize_dup( * ) # :nodoc:
|
54
|
+
@hash = @hash.dup
|
55
|
+
@hash.each do |k, v|
|
56
|
+
if v.is_a?( Array )
|
57
|
+
@hash[ k ] = v.map( &:dup )
|
58
|
+
else
|
59
|
+
@hash[ k ] = v.dup
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
### Make sure the inner Hash is unique on clones.
|
66
|
+
def initialize_clone( * ) # :nodoc:
|
67
|
+
@hash = @hash.clone
|
68
|
+
@hash.each do |k, v|
|
69
|
+
if v.is_a?( Array )
|
70
|
+
@hash[ k ] = v.map( &:clone )
|
71
|
+
else
|
72
|
+
@hash[ k ] = v.clone
|
73
|
+
end
|
74
|
+
end
|
55
75
|
end
|
56
76
|
|
57
77
|
|
@@ -31,7 +31,7 @@ describe Mongrel2::HTTPResponse do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
before( :each ) do
|
34
|
-
@response = Mongrel2::HTTPResponse.new( TEST_UUID, 299
|
34
|
+
@response = Mongrel2::HTTPResponse.new( TEST_UUID, 299 )
|
35
35
|
end
|
36
36
|
|
37
37
|
after( :all ) do
|
@@ -44,16 +44,18 @@ describe Mongrel2::HTTPResponse do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "allows headers to be set when the response is created" do
|
47
|
-
|
47
|
+
response = Mongrel2::HTTPResponse.new( TEST_UUID, 299, :content_type => 'image/jpeg' )
|
48
|
+
response.headers.content_type.should == 'image/jpeg'
|
48
49
|
end
|
49
50
|
|
50
51
|
it "is a No Content response if not set otherwise" do
|
51
52
|
@response.status_line.should == 'HTTP/1.1 204 No Content'
|
52
53
|
end
|
53
54
|
|
54
|
-
it "sets Date and Content-length headers automatically if they haven't been set" do
|
55
|
+
it "sets Date, Content-type, and Content-length headers automatically if they haven't been set" do
|
55
56
|
@response << "Some stuff."
|
56
57
|
|
58
|
+
@response.header_data.should =~ %r{Content-type: #{Mongrel2::HTTPResponse::DEFAULT_CONTENT_TYPE}}i
|
57
59
|
@response.header_data.should =~ /Content-length: 11/i
|
58
60
|
@response.header_data.should =~ /Date: #{HTTP_DATE}/i
|
59
61
|
end
|
@@ -68,10 +70,6 @@ describe Mongrel2::HTTPResponse do
|
|
68
70
|
@response.body.should be_empty()
|
69
71
|
end
|
70
72
|
|
71
|
-
it "knows it hasn't been handled" do
|
72
|
-
@response.should_not be_handled()
|
73
|
-
end
|
74
|
-
|
75
73
|
it "stringifies to a valid RFC2616 response string" do
|
76
74
|
@response.to_s.should =~ HTTP_RESPONSE
|
77
75
|
end
|
@@ -128,14 +126,15 @@ describe Mongrel2::HTTPResponse do
|
|
128
126
|
@response.get_content_length.should == length - 100
|
129
127
|
end
|
130
128
|
|
131
|
-
it "knows
|
132
|
-
@response.
|
129
|
+
it "knows whether or not it has been handled" do
|
130
|
+
@response.should_not be_handled()
|
131
|
+
@response.status = HTTP::OK
|
133
132
|
@response.should be_handled()
|
134
133
|
end
|
135
134
|
|
136
|
-
it "knows
|
137
|
-
@response.
|
138
|
-
@response.status = HTTP::
|
135
|
+
it "knows that it has been handled even if the status is set to NOT_FOUND" do
|
136
|
+
@response.reset
|
137
|
+
@response.status = HTTP::NOT_FOUND
|
139
138
|
@response.should be_handled()
|
140
139
|
end
|
141
140
|
|
@@ -185,25 +184,14 @@ describe Mongrel2::HTTPResponse do
|
|
185
184
|
|
186
185
|
|
187
186
|
it "knows what the response content type is" do
|
188
|
-
headers =
|
189
|
-
@response.stub!( :headers ).and_return( headers )
|
190
|
-
|
191
|
-
headers.should_receive( :[] ).
|
192
|
-
with( :content_type ).
|
193
|
-
and_return( 'text/erotica' )
|
194
|
-
|
187
|
+
@response.headers['Content-Type'] = 'text/erotica'
|
195
188
|
@response.content_type.should == 'text/erotica'
|
196
189
|
end
|
197
190
|
|
198
191
|
|
199
192
|
it "can modify the response content type" do
|
200
|
-
headers = mock( 'headers' )
|
201
|
-
@response.stub!( :headers ).and_return( headers )
|
202
|
-
|
203
|
-
headers.should_receive( :[]= ).
|
204
|
-
with( :content_type, 'image/nude' )
|
205
|
-
|
206
193
|
@response.content_type = 'image/nude'
|
194
|
+
@response.headers['Content-Type'].should == 'image/nude'
|
207
195
|
end
|
208
196
|
|
209
197
|
|
data/spec/mongrel2/table_spec.rb
CHANGED
@@ -133,11 +133,17 @@ describe Mongrel2::Table do
|
|
133
133
|
|
134
134
|
|
135
135
|
it "dupes its inner hash when duped" do
|
136
|
-
|
136
|
+
@table['foom'] = 'a string'
|
137
|
+
@table['frong'] = %w[eenie meenie mynie moe]
|
137
138
|
|
139
|
+
newtable = @table.dup
|
138
140
|
newtable['idkfa'] = 'god'
|
141
|
+
newtable[:foom] << " and another string"
|
142
|
+
newtable[:frong][3].replace( "mississipi" )
|
143
|
+
|
139
144
|
@table.should_not include( 'idkfa' )
|
140
|
-
@table.should
|
145
|
+
@table[:foom].should == 'a string'
|
146
|
+
@table[:frong][3].should == 'moe'
|
141
147
|
end
|
142
148
|
|
143
149
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongrel2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -52,7 +52,7 @@ date: 2011-10-12 00:00:00.000000000Z
|
|
52
52
|
dependencies:
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: nokogiri
|
55
|
-
requirement: &
|
55
|
+
requirement: &70233021488600 !ruby/object:Gem::Requirement
|
56
56
|
none: false
|
57
57
|
requirements:
|
58
58
|
- - ~>
|
@@ -60,10 +60,10 @@ dependencies:
|
|
60
60
|
version: '1.5'
|
61
61
|
type: :runtime
|
62
62
|
prerelease: false
|
63
|
-
version_requirements: *
|
63
|
+
version_requirements: *70233021488600
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
65
|
name: sequel
|
66
|
-
requirement: &
|
66
|
+
requirement: &70233021487960 !ruby/object:Gem::Requirement
|
67
67
|
none: false
|
68
68
|
requirements:
|
69
69
|
- - ~>
|
@@ -71,10 +71,10 @@ dependencies:
|
|
71
71
|
version: '3.26'
|
72
72
|
type: :runtime
|
73
73
|
prerelease: false
|
74
|
-
version_requirements: *
|
74
|
+
version_requirements: *70233021487960
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: amalgalite
|
77
|
-
requirement: &
|
77
|
+
requirement: &70233021487340 !ruby/object:Gem::Requirement
|
78
78
|
none: false
|
79
79
|
requirements:
|
80
80
|
- - ~>
|
@@ -82,10 +82,10 @@ dependencies:
|
|
82
82
|
version: '1.1'
|
83
83
|
type: :runtime
|
84
84
|
prerelease: false
|
85
|
-
version_requirements: *
|
85
|
+
version_requirements: *70233021487340
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
name: tnetstring
|
88
|
-
requirement: &
|
88
|
+
requirement: &70233021486780 !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
91
|
- - ~>
|
@@ -93,10 +93,10 @@ dependencies:
|
|
93
93
|
version: '0.3'
|
94
94
|
type: :runtime
|
95
95
|
prerelease: false
|
96
|
-
version_requirements: *
|
96
|
+
version_requirements: *70233021486780
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: yajl-ruby
|
99
|
-
requirement: &
|
99
|
+
requirement: &70233021486140 !ruby/object:Gem::Requirement
|
100
100
|
none: false
|
101
101
|
requirements:
|
102
102
|
- - ~>
|
@@ -104,10 +104,10 @@ dependencies:
|
|
104
104
|
version: '0.8'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
|
-
version_requirements: *
|
107
|
+
version_requirements: *70233021486140
|
108
108
|
- !ruby/object:Gem::Dependency
|
109
109
|
name: zmq
|
110
|
-
requirement: &
|
110
|
+
requirement: &70233021485440 !ruby/object:Gem::Requirement
|
111
111
|
none: false
|
112
112
|
requirements:
|
113
113
|
- - ~>
|
@@ -115,10 +115,10 @@ dependencies:
|
|
115
115
|
version: 2.1.4
|
116
116
|
type: :runtime
|
117
117
|
prerelease: false
|
118
|
-
version_requirements: *
|
118
|
+
version_requirements: *70233021485440
|
119
119
|
- !ruby/object:Gem::Dependency
|
120
120
|
name: hoe-mercurial
|
121
|
-
requirement: &
|
121
|
+
requirement: &70233021484760 !ruby/object:Gem::Requirement
|
122
122
|
none: false
|
123
123
|
requirements:
|
124
124
|
- - ~>
|
@@ -126,10 +126,10 @@ dependencies:
|
|
126
126
|
version: 1.3.1
|
127
127
|
type: :development
|
128
128
|
prerelease: false
|
129
|
-
version_requirements: *
|
129
|
+
version_requirements: *70233021484760
|
130
130
|
- !ruby/object:Gem::Dependency
|
131
131
|
name: hoe-highline
|
132
|
-
requirement: &
|
132
|
+
requirement: &70233021484020 !ruby/object:Gem::Requirement
|
133
133
|
none: false
|
134
134
|
requirements:
|
135
135
|
- - ~>
|
@@ -137,10 +137,10 @@ dependencies:
|
|
137
137
|
version: 0.0.1
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
|
-
version_requirements: *
|
140
|
+
version_requirements: *70233021484020
|
141
141
|
- !ruby/object:Gem::Dependency
|
142
142
|
name: configurability
|
143
|
-
requirement: &
|
143
|
+
requirement: &70233021483100 !ruby/object:Gem::Requirement
|
144
144
|
none: false
|
145
145
|
requirements:
|
146
146
|
- - ~>
|
@@ -148,10 +148,10 @@ dependencies:
|
|
148
148
|
version: '1.0'
|
149
149
|
type: :development
|
150
150
|
prerelease: false
|
151
|
-
version_requirements: *
|
151
|
+
version_requirements: *70233021483100
|
152
152
|
- !ruby/object:Gem::Dependency
|
153
153
|
name: rspec
|
154
|
-
requirement: &
|
154
|
+
requirement: &70233021482360 !ruby/object:Gem::Requirement
|
155
155
|
none: false
|
156
156
|
requirements:
|
157
157
|
- - ~>
|
@@ -159,10 +159,10 @@ dependencies:
|
|
159
159
|
version: '2.4'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
|
-
version_requirements: *
|
162
|
+
version_requirements: *70233021482360
|
163
163
|
- !ruby/object:Gem::Dependency
|
164
164
|
name: hoe
|
165
|
-
requirement: &
|
165
|
+
requirement: &70233021481580 !ruby/object:Gem::Requirement
|
166
166
|
none: false
|
167
167
|
requirements:
|
168
168
|
- - ~>
|
@@ -170,7 +170,7 @@ dependencies:
|
|
170
170
|
version: '2.12'
|
171
171
|
type: :development
|
172
172
|
prerelease: false
|
173
|
-
version_requirements: *
|
173
|
+
version_requirements: *70233021481580
|
174
174
|
description: ! "Ruby-Mongrel2 is a complete Ruby (1.9-only) connector for \nMongrel2[http://mongrel2.org/].\n\nThis
|
175
175
|
library includes configuration-database ORM classes, a Ruby\nimplementation of the
|
176
176
|
'm2sh' tool, a configuration DSL for generating config\ndatabases in pure Ruby,
|
metadata.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
h�8ޑ5�Y�{潍u�W㍡{tزܞ�{���:�HQ�� ��I8����u��A��H�\� 4w���|� h��gFA��H�[>ݤ�J�Q)%���8*�H�+Ba������LEJM�Sg��=��0Ӓ�/B��=�ǑK��"�����:�l�ӝ�����0=��cl�i]��BK\a��W���D�}U�!�������O0�zt�H�i��%'��C*�p �������u^Q�u
|