summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/zero/response.rb4
-rw-r--r--spec/unit/response/response_spec.rb8
2 files changed, 10 insertions, 2 deletions
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