watts 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/Rakefile +1 -1
  2. data/lib/watts.rb +15 -3
  3. metadata +3 -3
data/Rakefile CHANGED
@@ -22,7 +22,7 @@ spec = Gem::Specification.new { |s|
22
22
  "Resource-oriented, Rack-based, minimalist web framework."
23
23
  s.homepage = "http://debu.gs/#{s.name}"
24
24
  %w(metaid).each &s.method(:add_dependency)
25
- s.version = '0.0.4'
25
+ s.version = '0.0.5'
26
26
  }
27
27
 
28
28
  Rake::RDocTask.new(:doc) { |t|
@@ -159,6 +159,7 @@ module Watts
159
159
  resource_class, args = match req_path
160
160
 
161
161
  if resource_class
162
+ env = env.merge :watts_app => self
162
163
  res = resource_class.new(env)
163
164
  res.send(rm, *args)
164
165
  else
@@ -253,10 +254,13 @@ module Watts
253
254
 
254
255
  to_instance :http_methods
255
256
  attr_new Rack::Response, :response
256
- attr_accessor :env, :response
257
+ attr_accessor :env, :response, :app
257
258
 
258
259
  # Every resource, on being instantiated, is given the Rack env.
259
260
  def initialize(env)
261
+ if app = env.delete(:watts_app)
262
+ self.app = app
263
+ end
260
264
  self.env = env
261
265
  self.response = Rack::Response.new
262
266
  end
@@ -275,11 +279,19 @@ module Watts
275
279
  ]
276
280
  end
277
281
 
282
+ def request
283
+ @request ||= Rack::Request.new(env)
284
+ end
285
+
278
286
  # By default, we return "405 Method Not Allowed" and set the Allow:
279
287
  # header appropriately.
280
288
  def default_http_method(*args)
289
+ s = 'Method not allowed.'
281
290
  [405,
282
- { 'Allow' => http_methods.join(', ') },
291
+ { 'Allow' => http_methods.join(', '),
292
+ 'Content-Type' => 'text/plain',
293
+ 'Content-Length' => s.bytesize.to_s,
294
+ },
283
295
  ['Method not allowed.']]
284
296
  end
285
297
  end
@@ -304,7 +316,7 @@ module Watts
304
316
  body = view_class.new.send(view_method, *args)
305
317
  [200,
306
318
  {'Content-Type' => 'text/html',
307
- 'Content-Length' => body.length.to_s},
319
+ 'Content-Length' => body.bytesize.to_s},
308
320
  [body]]
309
321
  end
310
322
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 4
9
- version: 0.0.4
8
+ - 5
9
+ version: 0.0.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Pete Elmore
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-03-02 00:00:00 -08:00
17
+ date: 2011-03-10 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency