diff --git a/lib/zero/response.rb b/lib/zero/response.rb index a3e1651..15fb8c7 100644 --- a/lib/zero/response.rb +++ b/lib/zero/response.rb @@ -71,8 +71,8 @@ module Zero # # @param [String] location Redirect URL # - def redirect(location) - self.status = 302 + def redirect(location, status = 302) + self.status = status self.header['Location'] = location end diff --git a/spec/unit/response/response_spec.rb b/spec/unit/response/response_spec.rb index 8edc48d..bc5199a 100644 --- a/spec/unit/response/response_spec.rb +++ b/spec/unit/response/response_spec.rb @@ -133,6 +133,14 @@ describe Zero::Response do value[0].should eq(302) value[1]['Location'].should eq('http://foo.bar/relocated/thingy') end + + it "sets the given status code and the given Location" do + subject.redirect('http://foo.bar/relocated/other_thingy', 307) + value = subject.to_a + + value[0].should eq(307) + value[1]['Location'].should eq('http://foo.bar/relocated/other_thingy') + end end end \ No newline at end of file