webmachine 0.2.0 → 0.3.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/spec/tests.org CHANGED
@@ -54,4 +54,27 @@
54
54
  - Comparisons of scheme names MUST be case-insensitive
55
55
  - An empty abs_path is equivalent to an abs_path of "/"
56
56
  * 3.3 Date/Time Formats
57
-
57
+ ** 3.3.1 Full Date
58
+ Formats: (RFC 822/1123, RFC850/1036, asctime())
59
+
60
+ - HTTP/1.1 clients and servers that parse the date value MUST
61
+ accept all three formats (for compatibility with HTTP/1.0),
62
+ though they MUST only generate the RFC 1123 format for
63
+ representing HTTP-date values in header fields.
64
+ - All HTTP date/time stamps MUST be represented in GMT (UTC),
65
+ without exception... This is indicated in the first two formats by
66
+ the inclusion of "GMT" as the three-letter abbreviation for time
67
+ zone, and MUST be assumed when reading the asctime format.
68
+ - HTTP-date is case sensitive and MUST NOT include additional LWS
69
+ beyond that specifically included as SP in the grammar.
70
+ * 3.4 Character Sets
71
+ - HTTP uses the same definition of the term “character set” as that
72
+ described for MIME.
73
+ - Character set tokens are defined by the IANA Character Set registry.
74
+ - ...any token that has a predefined value within the IANA Character
75
+ Set registry MUST represent the character set defined by that
76
+ registry.
77
+ - Applications SHOULD limit their use of character sets to those
78
+ defined by the IANA registry.
79
+ ** 3.4.1 Missing Charset
80
+ -
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+ require 'webmachine/adapters/rack'
3
+ require 'rack'
4
+
5
+ module Test
6
+ class Resource < Webmachine::Resource
7
+ def to_html
8
+ "<html><body>testing</body></html>"
9
+ end
10
+ end
11
+ end
12
+
13
+ describe Webmachine::Adapters::Rack do
14
+ let(:adapter) { described_class }
15
+
16
+ let(:env) do
17
+ { "REQUEST_METHOD" => "GET",
18
+ "SCRIPT_NAME" => "",
19
+ "PATH_INFO" => "/test",
20
+ "QUERY_STRING" => "",
21
+ "SERVER_NAME" => "test.server",
22
+ "SERVER_PORT" => 8080,
23
+ "rack.version" => Rack::VERSION,
24
+ "rack.url_scheme" => "http",
25
+ "rack.input" => StringIO.new,
26
+ "rack.errors" => StringIO.new,
27
+ "rack.multithread" => false,
28
+ "rack.multiprocess" => true,
29
+ "rack.run_once" => false }
30
+ end
31
+
32
+ before do
33
+ Webmachine::Dispatcher.reset
34
+ Webmachine::Dispatcher.add_route ['test'], Test::Resource
35
+ end
36
+
37
+ it "should proxy request to webmachine" do
38
+ code, headers, body = adapter.new.call(env)
39
+ code.should == 200
40
+ headers["Content-Type"].should == "text/html"
41
+ body.should include "<html><body>testing</body></html>"
42
+ end
43
+
44
+ it "should set Server header" do
45
+ code, headers, body = adapter.new.call(env)
46
+ headers.should have_key "Server"
47
+ end
48
+
49
+ it "should handle non-success correctly" do
50
+ env["PATH_INFO"] = "/missing"
51
+ code, headers, body = adapter.new.call(env)
52
+ code.should == 404
53
+ headers["Content-Type"].should == "text/html"
54
+ end
55
+
56
+ it "should handle empty bodies correctly" do
57
+ env["HTTP_ACCEPT"] = "application/json"
58
+ code, headers, body = adapter.new.call(env)
59
+ code.should == 406
60
+ headers.should_not have_key "Content-Type"
61
+ headers.should_not have_key "Content-Length"
62
+ body.should == []
63
+ end
64
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+ require 'webmachine/chunked_body'
3
+
4
+ describe Webmachine::ChunkedBody do
5
+ it "builds a proper body" do
6
+ body = ''
7
+ Webmachine::ChunkedBody.new(['foo', 'bar', '', 'j', 'webmachine']).each do |chunk|
8
+ body << chunk
9
+ end
10
+ body.should == "3\r\nfoo\r\n3\r\nbar\r\n1\r\nj\r\na\r\nwebmachine\r\n0\r\n\r\n"
11
+ end
12
+
13
+ context "with an empty body" do
14
+ it "builds a proper body" do
15
+ body = ''
16
+ Webmachine::ChunkedBody.new([]).each do |chunk|
17
+ body << chunk
18
+ end
19
+ body.should == "0\r\n\r\n"
20
+ end
21
+ end
22
+
23
+ describe "#each" do
24
+ context "without a block given" do
25
+ it "returns an Enumerator" do
26
+ Webmachine::ChunkedBody.new([]).each.should respond_to(:next)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -101,5 +101,16 @@ describe Webmachine::Decision::Helpers do
101
101
 
102
102
  it_should_behave_like "a non-String body"
103
103
  end
104
+
105
+ context "with a Fiber body" do
106
+ before { response.body = Fiber.new { Fiber.yield "foo" } }
107
+
108
+ it "wraps the response body in a FiberEncoder" do
109
+ subject.encode_body
110
+ Webmachine::FiberEncoder.should === response.body
111
+ end
112
+
113
+ it_should_behave_like "a non-String body"
114
+ end
104
115
  end
105
116
  end
@@ -17,6 +17,14 @@ describe Webmachine::Dispatcher do
17
17
  let(:fsm){ mock }
18
18
 
19
19
  before { dispatcher.reset }
20
+
21
+ it "should add routes from a block" do
22
+ _resource = resource
23
+ Webmachine.routes do
24
+ add ['*'], _resource
25
+ end.should == Webmachine
26
+ dispatcher.instance_variable_get(:@routes).should have(1).item
27
+ end
20
28
 
21
29
  it "should add routes" do
22
30
  expect {
@@ -24,6 +32,11 @@ describe Webmachine::Dispatcher do
24
32
  }.should_not raise_error
25
33
  end
26
34
 
35
+ it "should have add_route return the newly created route" do
36
+ route = dispatcher.add_route ['*'], resource
37
+ route.should be_instance_of Webmachine::Dispatcher::Route
38
+ end
39
+
27
40
  it "should route to the proper resource" do
28
41
  dispatcher.add_route ["goodbye"], resource2
29
42
  dispatcher.add_route ['*'], resource
@@ -21,4 +21,9 @@ describe Webmachine::Request do
21
21
  subject.uri.query = "foo=bar&baz=bam"
22
22
  subject.query.should == {"foo" => "bar", "baz" => "bam"}
23
23
  end
24
+
25
+ it "should treat '+' characters in query parameters as spaces" do
26
+ subject.uri.query = "a%20b=foo+bar&c+d=baz%20quux"
27
+ subject.query.should == {"a b" => "foo bar", "c d" => "baz quux"}
28
+ end
24
29
  end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe Webmachine::Resource::Authentication do
4
+ subject { Webmachine::Decision::FSM.new(resource, request, response) }
5
+ let(:method) { 'GET' }
6
+ let(:uri) { URI.parse("http://localhost/") }
7
+ let(:headers) { Webmachine::Headers.new }
8
+ let(:body) { "" }
9
+ let(:request) { Webmachine::Request.new(method, uri, headers, body) }
10
+ let(:response) { Webmachine::Response.new }
11
+
12
+ def resource_with(&block)
13
+ klass = Class.new(Webmachine::Resource) do
14
+ def to_html; "test resource"; end
15
+ end
16
+ klass.module_eval(&block) if block_given?
17
+ klass.new(request, response)
18
+ end
19
+
20
+ describe "Basic authentication" do
21
+ let(:resource) do
22
+ resource_with do
23
+ include Webmachine::Resource::Authentication
24
+ attr_accessor :realm
25
+ def is_authorized?(auth)
26
+ basic_auth(auth, @realm || "Webmachine") {|u,p| u == "webmachine" && p == "http" }
27
+ end
28
+ end
29
+ end
30
+
31
+ context "when no authorization is sent by the client" do
32
+ it "should reply with a 401 Unauthorized and a WWW-Authenticate header using Basic" do
33
+ subject.run
34
+ response.code.should == 401
35
+ response.headers['WWW-Authenticate'].should == 'Basic realm="Webmachine"'
36
+ end
37
+
38
+ it "should use the specified realm in the WWW-Authenticate header" do
39
+ resource.realm = "My App"
40
+ subject.run
41
+ response.headers['WWW-Authenticate'].should == 'Basic realm="My App"'
42
+ end
43
+ end
44
+
45
+ context "when the client sends invalid authorization" do
46
+ before do
47
+ headers['Authorization'] = "Basic " + ["invalid:auth"].pack('m*').chomp
48
+ end
49
+
50
+ it "should reply with a 401 Unauthorized and a WWW-Authenticate header using Basic" do
51
+ subject.run
52
+ response.code.should == 401
53
+ response.headers['WWW-Authenticate'].should == 'Basic realm="Webmachine"'
54
+ end
55
+ end
56
+
57
+ context "when the client sends valid authorization" do
58
+ before do
59
+ headers['Authorization'] = "Basic " + ["webmachine:http"].pack('m*').chomp
60
+ end
61
+
62
+ it "should not reply with 401 Unauthorized" do
63
+ subject.run
64
+ response.code.should_not == 401
65
+ end
66
+ end
67
+ end
68
+ end
data/webmachine.gemspec CHANGED
@@ -21,22 +21,25 @@ Gem::Specification.new do |gem|
21
21
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
22
22
  gem.add_runtime_dependency(%q<i18n>, [">= 0.4.0"])
23
23
  gem.add_development_dependency(%q<rspec>, ["~> 2.6.0"])
24
- gem.add_development_dependency(%q<yard>, ["~> 0.6.7"])
24
+ gem.add_development_dependency(%q<yard>, ["~> 0.7.3"])
25
25
  gem.add_development_dependency(%q<rake>)
26
26
  gem.add_development_dependency(%q<mongrel>, ['~>1.2.beta'])
27
+ gem.add_development_dependency(%q<rack>)
27
28
  else
28
29
  gem.add_dependency(%q<i18n>, [">= 0.4.0"])
29
30
  gem.add_dependency(%q<rspec>, ["~> 2.6.0"])
30
- gem.add_dependency(%q<yard>, ["~> 0.6.7"])
31
+ gem.add_dependency(%q<yard>, ["~> 0.7.3"])
31
32
  gem.add_dependency(%q<rake>)
32
33
  gem.add_dependency(%q<mongrel>, ['~>1.2.beta'])
34
+ gem.add_dependency(%q<rack>)
33
35
  end
34
36
  else
35
37
  gem.add_dependency(%q<i18n>, [">= 0.4.0"])
36
38
  gem.add_dependency(%q<rspec>, ["~> 2.6.0"])
37
- gem.add_dependency(%q<yard>, ["~> 0.6.7"])
39
+ gem.add_dependency(%q<yard>, ["~> 0.7.3"])
38
40
  gem.add_dependency(%q<rake>)
39
41
  gem.add_dependency(%q<mongrel>, ['~>1.2.beta'])
42
+ gem.add_dependency(%q<rack>)
40
43
  end
41
44
 
42
45
  ignores = File.read(".gitignore").split(/\r?\n/).reject{ |f| f =~ /^(#.+|\s*)$/ }.map {|f| Dir[f] }.flatten
metadata CHANGED
@@ -1,87 +1,182 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: webmachine
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Sean Cribbs
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-09-11 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-11-09 00:00:00 -03:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
15
22
  name: i18n
16
- requirement: &2160756300 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
17
25
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 15
30
+ segments:
31
+ - 0
32
+ - 4
33
+ - 0
21
34
  version: 0.4.0
22
35
  type: :runtime
23
- prerelease: false
24
- version_requirements: *2160756300
25
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
26
38
  name: rspec
27
- requirement: &2160755360 !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
28
41
  none: false
29
- requirements:
42
+ requirements:
30
43
  - - ~>
31
- - !ruby/object:Gem::Version
44
+ - !ruby/object:Gem::Version
45
+ hash: 23
46
+ segments:
47
+ - 2
48
+ - 6
49
+ - 0
32
50
  version: 2.6.0
33
51
  type: :development
34
- prerelease: false
35
- version_requirements: *2160755360
36
- - !ruby/object:Gem::Dependency
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
37
54
  name: yard
38
- requirement: &2160754640 !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
39
57
  none: false
40
- requirements:
58
+ requirements:
41
59
  - - ~>
42
- - !ruby/object:Gem::Version
43
- version: 0.6.7
60
+ - !ruby/object:Gem::Version
61
+ hash: 5
62
+ segments:
63
+ - 0
64
+ - 7
65
+ - 3
66
+ version: 0.7.3
44
67
  type: :development
45
- prerelease: false
46
- version_requirements: *2160754640
47
- - !ruby/object:Gem::Dependency
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
48
70
  name: rake
49
- requirement: &2160754100 !ruby/object:Gem::Requirement
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
50
73
  none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ hash: 3
78
+ segments:
79
+ - 0
80
+ version: "0"
55
81
  type: :development
56
- prerelease: false
57
- version_requirements: *2160754100
58
- - !ruby/object:Gem::Dependency
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
59
84
  name: mongrel
60
- requirement: &2160752320 !ruby/object:Gem::Requirement
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
61
87
  none: false
62
- requirements:
88
+ requirements:
63
89
  - - ~>
64
- - !ruby/object:Gem::Version
90
+ - !ruby/object:Gem::Version
91
+ hash: 31098129
92
+ segments:
93
+ - 1
94
+ - 2
95
+ - beta
65
96
  version: 1.2.beta
66
97
  type: :development
98
+ version_requirements: *id005
99
+ - !ruby/object:Gem::Dependency
100
+ name: rack
67
101
  prerelease: false
68
- version_requirements: *2160752320
69
- description: ! ' webmachine is a toolkit for building HTTP applications in a declarative
70
- fashion, that avoids the confusion of going through a CGI-style interface like Rack.
71
- It is strongly influenced by the original Erlang project of the same name and shares
72
- its opinionated nature about HTTP. '
73
- email:
102
+ requirement: &id006 !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ hash: 3
108
+ segments:
109
+ - 0
110
+ version: "0"
111
+ type: :development
112
+ version_requirements: *id006
113
+ description: " webmachine is a toolkit for building HTTP applications in a declarative fashion, that avoids the confusion of going through a CGI-style interface like Rack. It is strongly influenced by the original Erlang project of the same name and shares its opinionated nature about HTTP. "
114
+ email:
74
115
  - sean@basho.com
75
116
  executables: []
117
+
76
118
  extensions: []
119
+
77
120
  extra_rdoc_files: []
78
- files:
121
+
122
+ files:
123
+ - doc/_index.html
124
+ - doc/class_list.html
125
+ - doc/css/common.css
126
+ - doc/css/full_list.css
127
+ - doc/css/style.css
128
+ - doc/file.README.html
129
+ - doc/file_list.html
130
+ - doc/frames.html
131
+ - doc/index.html
132
+ - doc/js/app.js
133
+ - doc/js/full_list.js
134
+ - doc/js/jquery.js
135
+ - doc/method_list.html
136
+ - doc/top-level-namespace.html
137
+ - doc/Webmachine/Adapters/Mongrel/Handler.html
138
+ - doc/Webmachine/Adapters/Mongrel.html
139
+ - doc/Webmachine/Adapters/Rack.html
140
+ - doc/Webmachine/Adapters/WEBrick/RequestBody.html
141
+ - doc/Webmachine/Adapters/WEBrick/Server.html
142
+ - doc/Webmachine/Adapters/WEBrick.html
143
+ - doc/Webmachine/Adapters.html
144
+ - doc/Webmachine/CallableEncoder.html
145
+ - doc/Webmachine/ChunkedBody.html
146
+ - doc/Webmachine/Configuration.html
147
+ - doc/Webmachine/Decision/Conneg/MediaTypeList.html
148
+ - doc/Webmachine/Decision/Conneg/PriorityList.html
149
+ - doc/Webmachine/Decision/Conneg.html
150
+ - doc/Webmachine/Decision/Flow.html
151
+ - doc/Webmachine/Decision/FSM.html
152
+ - doc/Webmachine/Decision/Helpers.html
153
+ - doc/Webmachine/Decision.html
154
+ - doc/Webmachine/Dispatcher/Route.html
155
+ - doc/Webmachine/Dispatcher.html
156
+ - doc/Webmachine/EnumerableEncoder.html
157
+ - doc/Webmachine/Error.html
158
+ - doc/Webmachine/FiberEncoder.html
159
+ - doc/Webmachine/Headers.html
160
+ - doc/Webmachine/InvalidResource.html
161
+ - doc/Webmachine/MalformedRequest.html
162
+ - doc/Webmachine/MediaType.html
163
+ - doc/Webmachine/Request.html
164
+ - doc/Webmachine/Resource/Authentication.html
165
+ - doc/Webmachine/Resource/Callbacks.html
166
+ - doc/Webmachine/Resource/Encodings.html
167
+ - doc/Webmachine/Resource.html
168
+ - doc/Webmachine/Response.html
169
+ - doc/Webmachine/StreamingEncoder.html
170
+ - doc/Webmachine/Translation.html
171
+ - doc/Webmachine.html
79
172
  - examples/webrick.rb
80
173
  - Gemfile
81
174
  - Guardfile
82
175
  - lib/webmachine/adapters/mongrel.rb
176
+ - lib/webmachine/adapters/rack.rb
83
177
  - lib/webmachine/adapters/webrick.rb
84
178
  - lib/webmachine/adapters.rb
179
+ - lib/webmachine/chunked_body.rb
85
180
  - lib/webmachine/configuration.rb
86
181
  - lib/webmachine/decision/conneg.rb
87
182
  - lib/webmachine/decision/flow.rb
@@ -91,10 +186,12 @@ files:
91
186
  - lib/webmachine/dispatcher/route.rb
92
187
  - lib/webmachine/dispatcher.rb
93
188
  - lib/webmachine/errors.rb
189
+ - lib/webmachine/fiber18.rb
94
190
  - lib/webmachine/headers.rb
95
191
  - lib/webmachine/locale/en.yml
96
192
  - lib/webmachine/media_type.rb
97
193
  - lib/webmachine/request.rb
194
+ - lib/webmachine/resource/authentication.rb
98
195
  - lib/webmachine/resource/callbacks.rb
99
196
  - lib/webmachine/resource/encodings.rb
100
197
  - lib/webmachine/resource.rb
@@ -102,6 +199,7 @@ files:
102
199
  - lib/webmachine/streaming.rb
103
200
  - lib/webmachine/translation.rb
104
201
  - lib/webmachine/version.rb
202
+ - lib/webmachine/version.rbc
105
203
  - lib/webmachine.rb
106
204
  - pkg/webmachine-0.1.0/examples/webrick.rb
107
205
  - pkg/webmachine-0.1.0/Gemfile
@@ -139,10 +237,91 @@ files:
139
237
  - pkg/webmachine-0.1.0/spec/webmachine/request_spec.rb
140
238
  - pkg/webmachine-0.1.0/webmachine.gemspec
141
239
  - pkg/webmachine-0.1.0.gem
240
+ - pkg/webmachine-0.2.0/examples/webrick.rb
241
+ - pkg/webmachine-0.2.0/Gemfile
242
+ - pkg/webmachine-0.2.0/Guardfile
243
+ - pkg/webmachine-0.2.0/lib/webmachine/adapters/mongrel.rb
244
+ - pkg/webmachine-0.2.0/lib/webmachine/adapters/webrick.rb
245
+ - pkg/webmachine-0.2.0/lib/webmachine/adapters.rb
246
+ - pkg/webmachine-0.2.0/lib/webmachine/configuration.rb
247
+ - pkg/webmachine-0.2.0/lib/webmachine/decision/conneg.rb
248
+ - pkg/webmachine-0.2.0/lib/webmachine/decision/flow.rb
249
+ - pkg/webmachine-0.2.0/lib/webmachine/decision/fsm.rb
250
+ - pkg/webmachine-0.2.0/lib/webmachine/decision/helpers.rb
251
+ - pkg/webmachine-0.2.0/lib/webmachine/decision.rb
252
+ - pkg/webmachine-0.2.0/lib/webmachine/dispatcher/route.rb
253
+ - pkg/webmachine-0.2.0/lib/webmachine/dispatcher.rb
254
+ - pkg/webmachine-0.2.0/lib/webmachine/errors.rb
255
+ - pkg/webmachine-0.2.0/lib/webmachine/headers.rb
256
+ - pkg/webmachine-0.2.0/lib/webmachine/locale/en.yml
257
+ - pkg/webmachine-0.2.0/lib/webmachine/media_type.rb
258
+ - pkg/webmachine-0.2.0/lib/webmachine/request.rb
259
+ - pkg/webmachine-0.2.0/lib/webmachine/resource/callbacks.rb
260
+ - pkg/webmachine-0.2.0/lib/webmachine/resource/encodings.rb
261
+ - pkg/webmachine-0.2.0/lib/webmachine/resource.rb
262
+ - pkg/webmachine-0.2.0/lib/webmachine/response.rb
263
+ - pkg/webmachine-0.2.0/lib/webmachine/streaming.rb
264
+ - pkg/webmachine-0.2.0/lib/webmachine/translation.rb
265
+ - pkg/webmachine-0.2.0/lib/webmachine/version.rb
266
+ - pkg/webmachine-0.2.0/lib/webmachine.rb
267
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/examples/webrick.rb
268
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/Gemfile
269
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/Guardfile
270
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/adapters/webrick.rb
271
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/adapters.rb
272
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/decision/conneg.rb
273
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/decision/flow.rb
274
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/decision/fsm.rb
275
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/decision/helpers.rb
276
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/decision.rb
277
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/dispatcher/route.rb
278
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/dispatcher.rb
279
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/errors.rb
280
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/headers.rb
281
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/locale/en.yml
282
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/request.rb
283
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/resource/callbacks.rb
284
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/resource/encodings.rb
285
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/resource.rb
286
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/response.rb
287
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/streaming.rb
288
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/translation.rb
289
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine/version.rb
290
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/lib/webmachine.rb
291
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/Rakefile
292
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/README.md
293
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/spec/spec_helper.rb
294
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/spec/tests.org
295
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/spec/webmachine/decision/conneg_spec.rb
296
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/spec/webmachine/decision/flow_spec.rb
297
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/spec/webmachine/dispatcher/route_spec.rb
298
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/spec/webmachine/dispatcher_spec.rb
299
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/spec/webmachine/headers_spec.rb
300
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/spec/webmachine/request_spec.rb
301
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0/webmachine.gemspec
302
+ - pkg/webmachine-0.2.0/pkg/webmachine-0.1.0.gem
303
+ - pkg/webmachine-0.2.0/Rakefile
304
+ - pkg/webmachine-0.2.0/README.md
305
+ - pkg/webmachine-0.2.0/spec/spec_helper.rb
306
+ - pkg/webmachine-0.2.0/spec/tests.org
307
+ - pkg/webmachine-0.2.0/spec/webmachine/configuration_spec.rb
308
+ - pkg/webmachine-0.2.0/spec/webmachine/decision/conneg_spec.rb
309
+ - pkg/webmachine-0.2.0/spec/webmachine/decision/flow_spec.rb
310
+ - pkg/webmachine-0.2.0/spec/webmachine/decision/helpers_spec.rb
311
+ - pkg/webmachine-0.2.0/spec/webmachine/dispatcher/route_spec.rb
312
+ - pkg/webmachine-0.2.0/spec/webmachine/dispatcher_spec.rb
313
+ - pkg/webmachine-0.2.0/spec/webmachine/errors_spec.rb
314
+ - pkg/webmachine-0.2.0/spec/webmachine/headers_spec.rb
315
+ - pkg/webmachine-0.2.0/spec/webmachine/media_type_spec.rb
316
+ - pkg/webmachine-0.2.0/spec/webmachine/request_spec.rb
317
+ - pkg/webmachine-0.2.0/webmachine.gemspec
318
+ - pkg/webmachine-0.2.0.gem
142
319
  - Rakefile
143
320
  - README.md
144
321
  - spec/spec_helper.rb
145
322
  - spec/tests.org
323
+ - spec/webmachine/adapters/rack_spec.rb
324
+ - spec/webmachine/chunked_body_spec.rb
146
325
  - spec/webmachine/configuration_spec.rb
147
326
  - spec/webmachine/decision/conneg_spec.rb
148
327
  - spec/webmachine/decision/flow_spec.rb
@@ -153,35 +332,48 @@ files:
153
332
  - spec/webmachine/headers_spec.rb
154
333
  - spec/webmachine/media_type_spec.rb
155
334
  - spec/webmachine/request_spec.rb
335
+ - spec/webmachine/resource/authentication_spec.rb
156
336
  - webmachine.gemspec
157
337
  - .gitignore
338
+ has_rdoc: true
158
339
  homepage: http://github.com/seancribbs/webmachine-ruby
159
340
  licenses: []
341
+
160
342
  post_install_message:
161
343
  rdoc_options: []
162
- require_paths:
344
+
345
+ require_paths:
163
346
  - lib
164
- required_ruby_version: !ruby/object:Gem::Requirement
347
+ required_ruby_version: !ruby/object:Gem::Requirement
165
348
  none: false
166
- requirements:
167
- - - ! '>='
168
- - !ruby/object:Gem::Version
169
- version: '0'
170
- required_rubygems_version: !ruby/object:Gem::Requirement
349
+ requirements:
350
+ - - ">="
351
+ - !ruby/object:Gem::Version
352
+ hash: 3
353
+ segments:
354
+ - 0
355
+ version: "0"
356
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
357
  none: false
172
- requirements:
173
- - - ! '>='
174
- - !ruby/object:Gem::Version
175
- version: '0'
358
+ requirements:
359
+ - - ">="
360
+ - !ruby/object:Gem::Version
361
+ hash: 3
362
+ segments:
363
+ - 0
364
+ version: "0"
176
365
  requirements: []
366
+
177
367
  rubyforge_project:
178
- rubygems_version: 1.8.6
368
+ rubygems_version: 1.6.2
179
369
  signing_key:
180
370
  specification_version: 3
181
371
  summary: webmachine is a toolkit for building HTTP applications,
182
- test_files:
372
+ test_files:
183
373
  - spec/spec_helper.rb
184
374
  - spec/tests.org
375
+ - spec/webmachine/adapters/rack_spec.rb
376
+ - spec/webmachine/chunked_body_spec.rb
185
377
  - spec/webmachine/configuration_spec.rb
186
378
  - spec/webmachine/decision/conneg_spec.rb
187
379
  - spec/webmachine/decision/flow_spec.rb
@@ -192,4 +384,5 @@ test_files:
192
384
  - spec/webmachine/headers_spec.rb
193
385
  - spec/webmachine/media_type_spec.rb
194
386
  - spec/webmachine/request_spec.rb
387
+ - spec/webmachine/resource/authentication_spec.rb
195
388
  - .gitignore