0
0
Fork 0

make request and response static

This is a step back but makes the controller work for the moment. It
should be reimplemented in a better way in the future.
This commit is contained in:
Gibheer 2013-01-29 10:34:48 +01:00
parent 4a4d68d896
commit a2aed1fa20
4 changed files with 16 additions and 42 deletions

View File

@ -11,16 +11,17 @@ module Zero
new(env).response new(env).response
end end
# set the class to use for responses # set the renderer to use for rendering
accept_options :response def self.renderer=(renderer)
@@renderer = renderer
end
# set a class to use for requests # returns the defined renderer
accept_options :request def self.renderer
@@renderer
end
# set the renderer to use in the controller # returns the current renderer
accept_options :renderer
# the renderer which can be used to render templates
attr_reader :renderer attr_reader :renderer
# initialize the controller # initialize the controller
@ -29,8 +30,8 @@ module Zero
# renderer, request and response. # renderer, request and response.
# @param env [Hash] a rack compatible environment # @param env [Hash] a rack compatible environment
def initialize(env) def initialize(env)
@request = self.class.request.new(env) @request = Zero::Request.new(env)
@response = self.class.response.new @response = Zero::Response.new
@renderer = self.class.renderer @renderer = self.class.renderer
end end

View File

@ -6,13 +6,11 @@ describe Zero::Controller, '.call' do
let(:env) { EnvGenerator.get('/foo') } let(:env) { EnvGenerator.get('/foo') }
before :each do before :each do
object.renderer(Object.new) object.renderer = Object.new
object.response(Zero::Response)
object.request(Zero::Request)
end end
it "returns a response" do it "returns a response" do
subject.should be_respond_to(:to_a) subject.should respond_to(:to_a)
end end
it "returns an object with the first element being a status" do it "returns an object with the first element being a status" do
@ -26,18 +24,4 @@ describe Zero::Controller, '.call' do
r = Zero::Request.new(env) r = Zero::Request.new(env)
expect(r.params['foo']).to eq('bar') expect(r.params['foo']).to eq('bar')
end end
context "with the response" do
let(:response_class) { mock }
before :each do
object.response(response_class)
response_class.should_receive(:new).and_return(Zero::Response.new)
end
after :each do
Zero::Controller.response(nil)
end
it { subject }
end
end end

View File

@ -4,22 +4,17 @@ describe Zero::Controller, '#render' do
let(:object) { create_controller } let(:object) { create_controller }
subject { object.new(env) } subject { object.new(env) }
before do
object.request(Zero::Request)
object.response(Zero::Response)
end
let(:env) { EnvGenerator.get('/foo') } let(:env) { EnvGenerator.get('/foo') }
let(:renderer) { mock } let(:renderer) { mock }
let(:template) { '/foo' } let(:template) { '/foo' }
before :each do before :each do
object.renderer(renderer) object.renderer = renderer
renderer.should_receive(:render).with(template, renderer.should_receive(:render).with(template,
kind_of(Zero::Request::AcceptType), subject) kind_of(Zero::Request::AcceptType), subject)
end end
after :each do after :each do
Zero::Controller.renderer(nil) Zero::Controller.renderer = nil
end end
it { subject.render(template) } it { subject.render(template) }

View File

@ -4,14 +4,8 @@ describe Zero::Controller, '#renderer' do
subject { create_controller } subject { create_controller }
let(:renderer) { Object.new } let(:renderer) { Object.new }
before do
subject.response(Zero::Response)
subject.request(Zero::Request)
end
it 'returns the set renderer' do it 'returns the set renderer' do
subject.renderer(renderer) subject.renderer = renderer
p subject.renderer
expect(subject.new({}).renderer).to be(renderer) expect(subject.new({}).renderer).to be(renderer)
end end
end end