diff options
| -rw-r--r-- | lib/zero/controller.rb | 21 | ||||
| -rw-r--r-- | spec/unit/zero/controller/call_spec.rb | 20 | ||||
| -rw-r--r-- | spec/unit/zero/controller/render_spec.rb | 9 | ||||
| -rw-r--r-- | spec/unit/zero/controller/renderer_spec.rb | 8 | 
4 files changed, 16 insertions, 42 deletions
| diff --git a/lib/zero/controller.rb b/lib/zero/controller.rb index f77bf44..b9568cd 100644 --- a/lib/zero/controller.rb +++ b/lib/zero/controller.rb @@ -11,16 +11,17 @@ module Zero        new(env).response      end -    # set the class to use for responses -    accept_options :response - -    # set a class to use for requests -    accept_options :request +    # set the renderer to use for rendering +    def self.renderer=(renderer) +      @@renderer = renderer +    end -    # set the renderer to use in the controller -    accept_options :renderer +    # returns the defined renderer +    def self.renderer +      @@renderer +    end -    # the renderer which can be used to render templates +    # returns the current renderer      attr_reader :renderer      # initialize the controller @@ -29,8 +30,8 @@ module Zero      # renderer, request and response.      # @param env [Hash] a rack compatible environment      def initialize(env) -      @request  = self.class.request.new(env) -      @response = self.class.response.new +      @request  = Zero::Request.new(env) +      @response = Zero::Response.new        @renderer = self.class.renderer      end diff --git a/spec/unit/zero/controller/call_spec.rb b/spec/unit/zero/controller/call_spec.rb index 44c4d7b..3231b7d 100644 --- a/spec/unit/zero/controller/call_spec.rb +++ b/spec/unit/zero/controller/call_spec.rb @@ -6,13 +6,11 @@ describe Zero::Controller, '.call' do    let(:env) { EnvGenerator.get('/foo') }    before :each do -    object.renderer(Object.new) -    object.response(Zero::Response) -    object.request(Zero::Request) +    object.renderer = Object.new    end    it "returns a response" do -    subject.should be_respond_to(:to_a) +    subject.should respond_to(:to_a)    end    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)      expect(r.params['foo']).to eq('bar')    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 diff --git a/spec/unit/zero/controller/render_spec.rb b/spec/unit/zero/controller/render_spec.rb index 843f237..0228524 100644 --- a/spec/unit/zero/controller/render_spec.rb +++ b/spec/unit/zero/controller/render_spec.rb @@ -4,22 +4,17 @@ describe Zero::Controller, '#render' do    let(:object) { create_controller }    subject { object.new(env) } -  before do -    object.request(Zero::Request) -    object.response(Zero::Response) -  end -      let(:env) { EnvGenerator.get('/foo') }    let(:renderer) { mock }    let(:template) { '/foo' }    before :each do -    object.renderer(renderer) +    object.renderer = renderer      renderer.should_receive(:render).with(template,                                    kind_of(Zero::Request::AcceptType), subject)    end    after :each do -    Zero::Controller.renderer(nil) +    Zero::Controller.renderer = nil    end    it { subject.render(template) } diff --git a/spec/unit/zero/controller/renderer_spec.rb b/spec/unit/zero/controller/renderer_spec.rb index e4a712e..c7d1769 100644 --- a/spec/unit/zero/controller/renderer_spec.rb +++ b/spec/unit/zero/controller/renderer_spec.rb @@ -4,14 +4,8 @@ describe Zero::Controller, '#renderer' do    subject { create_controller }    let(:renderer) { Object.new } -  before do -    subject.response(Zero::Response) -    subject.request(Zero::Request) -  end -    it 'returns the set renderer' do -    subject.renderer(renderer) -    p subject.renderer +    subject.renderer = renderer      expect(subject.new({}).renderer).to be(renderer)    end  end | 
