replaced .create with .new on Zero::Request
This commit is contained in:
parent
34a7a04a04
commit
a95f1436c4
|
@ -7,7 +7,17 @@ module Zero
|
|||
class Controller
|
||||
# initialize a new instance of the controller and call response on it
|
||||
def self.call(env)
|
||||
new(Zero::Request.create(env)).response
|
||||
new(Zero::Request.new(env)).response
|
||||
end
|
||||
|
||||
# set the class to use for responses
|
||||
def self.response=(response_class)
|
||||
@@response = response_class
|
||||
end
|
||||
|
||||
# return the set response class
|
||||
def self.response
|
||||
@@response ||= Zero::Response
|
||||
end
|
||||
|
||||
# set the renderer to use in the controller
|
||||
|
@ -29,7 +39,7 @@ module Zero
|
|||
# @param request [Request] a request object
|
||||
def initialize(request)
|
||||
@request = request
|
||||
@response = Zero::Response.new
|
||||
@response = self.class.response
|
||||
@renderer = self.class.renderer
|
||||
end
|
||||
|
||||
|
|
|
@ -6,9 +6,16 @@ require_relative 'request/server'
|
|||
module Zero
|
||||
# This class wraps around a rack environment for easier access to all data.
|
||||
class Request
|
||||
def self.create(environment)
|
||||
return environment['zero.request'] if environment.has_key?('zero.request')
|
||||
new(environment)
|
||||
class << self
|
||||
# replace #new with a function to reuse an already defined request
|
||||
alias_method :__new__, :new
|
||||
|
||||
# reuse an already defined request in the environment or create a new one
|
||||
# @param environment [Hash] a rack compatible request environment
|
||||
def new(environment)
|
||||
return environment['zero.request'] if environment.has_key?('zero.request')
|
||||
__new__(environment)
|
||||
end
|
||||
end
|
||||
|
||||
# create a new request object
|
||||
|
|
|
@ -47,7 +47,7 @@ module Zero
|
|||
# @param env [Hash] a rack environment
|
||||
# @return [Array] a rack compatible response
|
||||
def call(env)
|
||||
request = Zero::Request.create(env)
|
||||
request = Zero::Request.new(env)
|
||||
@routes.each do |route, target|
|
||||
match = route.match(request.path)
|
||||
if match
|
||||
|
|
|
@ -21,7 +21,7 @@ describe Zero::Controller, '.call' do
|
|||
r = Zero::Request.new(env)
|
||||
r.params['foo'] = 'bar'
|
||||
subject
|
||||
r = Zero::Request.create(env)
|
||||
r = Zero::Request.new(env)
|
||||
expect(r.params['foo']).to eq('bar')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Zero::Request, '.create' do
|
||||
describe Zero::Request, '.new' do
|
||||
subject { Zero::Request.new(env) }
|
||||
|
||||
context "with a fresh environment" do
|
||||
let(:env) { EnvGenerator.get('/foo') }
|
||||
it "creates an instance of Zero::Request" do
|
||||
Zero::Request.create(env).should be_an_instance_of(Zero::Request)
|
||||
Zero::Request.new(env).should be_an_instance_of(Zero::Request)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -15,7 +15,7 @@ describe Zero::Request, '.create' do
|
|||
let(:new_env) { subject.env }
|
||||
|
||||
it "returns an already build request" do
|
||||
Zero::Request.create(new_env).should be(subject)
|
||||
Zero::Request.new(new_env).should be(subject)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -45,7 +45,7 @@ describe Zero::Router, '#call' do
|
|||
let(:env) { EnvGenerator.get('/foo/bar') }
|
||||
let(:app) do
|
||||
lambda do |env|
|
||||
[200, {}, [Zero::Request.create(env).params['id']]]
|
||||
[200, {}, [Zero::Request.new(env).params['id']]]
|
||||
end
|
||||
end
|
||||
let(:result) { ['bar'] }
|
||||
|
|
Loading…
Reference in New Issue