diff options
author | Stormwind <stormwind@stormwinds-page.de> | 2012-11-30 18:58:32 +0100 |
---|---|---|
committer | Stormwind <stormwind@stormwinds-page.de> | 2012-11-30 18:58:32 +0100 |
commit | facd4f143bb3f0bb44d89b6ff11e61a0b7c36427 (patch) | |
tree | 06974380eb50c3ad5cee8bbe17247d160e94fd1f | |
parent | d28dc720d10a3380b5649e29db053ca9a989efd5 (diff) |
Add redirect to response
Now a relocation can be done, by calling redirect with the URL you want
relocate to.
This will set the Location header and set the status code to 302.
-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 |