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:
parent
4a4d68d896
commit
a2aed1fa20
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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) }
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user