Class: Tofu::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/tofu.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(req, res) ⇒ Context

Returns a new instance of Context.



376
377
378
379
# File 'lib/tofu.rb', line 376

def initialize(req, res)
  @req = req
  @res = res
end

Instance Attribute Details

#reqObject (readonly)

Returns the value of attribute req.



380
381
382
# File 'lib/tofu.rb', line 380

def req
  @req
end

#resObject (readonly)

Returns the value of attribute res.



380
381
382
# File 'lib/tofu.rb', line 380

def res
  @res
end

Instance Method Details

#doneObject



382
383
384
385
386
# File 'lib/tofu.rb', line 382

def done
  throw(:tofu_done)
rescue NameError
  nil
end

#req_absolute_pathObject



431
432
433
# File 'lib/tofu.rb', line 431

def req_absolute_path
  (@req.request_uri + '/').to_s.chomp('/')
end


401
402
403
404
405
# File 'lib/tofu.rb', line 401

def req_cookie(name)
  found = @req.cookies.find {|c| c.name == name}
  return nil unless found
  WEBrick::HTTPUtils::unescape(found.value) rescue nil
end

#req_methodObject



415
416
417
# File 'lib/tofu.rb', line 415

def req_method
  @req.request_method
end

#req_paramsObject



393
394
395
396
397
398
399
# File 'lib/tofu.rb', line 393

def req_params
  hash = {}
  @req.query.each do |k,v|
   hash[k] = v.list
  end
  hash
end

#req_path_infoObject



423
424
425
# File 'lib/tofu.rb', line 423

def req_path_info
  @req.path_info
end

#req_script_nameObject



427
428
429
# File 'lib/tofu.rb', line 427

def req_script_name
  @req.script_name
end


407
408
409
410
411
412
413
# File 'lib/tofu.rb', line 407

def res_add_cookie(name, value, expires=nil)
  value = WEBrick::HTTPUtils::escape(value)
  c = WEBrick::Cookie.new(name, value)
  c.expires = expires if expires
  c.path = req_script_name.to_s
  @res.cookies.push(c)
end

#res_body(v) ⇒ Object



435
436
437
# File 'lib/tofu.rb', line 435

def res_body(v)
  @res.body = v
end

#res_header(k, v) ⇒ Object



439
440
441
442
443
444
445
# File 'lib/tofu.rb', line 439

def res_header(k, v)
  if k.downcase == 'status'
    @res.status = v.to_i
    return
  end
  @res[k] = v
end

#res_method_not_allowedObject

Raises:

  • (HTTPStatus::MethodNotAllowed)


419
420
421
# File 'lib/tofu.rb', line 419

def res_method_not_allowed
  raise HTTPStatus::MethodNotAllowed, "unsupported method `#{req_method}'."
end

#service(bartender) ⇒ Object



388
389
390
391
# File 'lib/tofu.rb', line 388

def service(bartender)
  bartender.service(self)
  nil
end