diff options
-rw-r--r-- | lib/zero/response.rb | 9 | ||||
-rw-r--r-- | spec/unit/response/response_spec.rb | 10 |
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/zero/response.rb b/lib/zero/response.rb index 24c1aaf..a3e1651 100644 --- a/lib/zero/response.rb +++ b/lib/zero/response.rb @@ -67,5 +67,14 @@ module Zero self.header['Content-Type'] = value end + # Sets the Location header to the given URL and the status code to 302. + # + # @param [String] location Redirect URL + # + def redirect(location) + self.status = 302 + self.header['Location'] = location + end + end end diff --git a/spec/unit/response/response_spec.rb b/spec/unit/response/response_spec.rb index 9d2097a..8edc48d 100644 --- a/spec/unit/response/response_spec.rb +++ b/spec/unit/response/response_spec.rb @@ -125,4 +125,14 @@ describe Zero::Response do end end + describe '#redirect' do + it "sets the status to 302 and the given Location URL in header" do + subject.redirect 'http://foo.bar/relocated/thingy' + value = subject.to_a + + value[0].should eq(302) + value[1]['Location'].should eq('http://foo.bar/relocated/thingy') + end + end + end
\ No newline at end of file |