aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/zero/response.rb12
-rw-r--r--spec/unit/response/response_spec.rb10
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/zero/response.rb b/lib/zero/response.rb
index 418c8a7..3c54c54 100644
--- a/lib/zero/response.rb
+++ b/lib/zero/response.rb
@@ -3,7 +3,17 @@ module Zero
# This is the representation of a response
#
class Response
- attr_accessor :status, :header, :body
+ attr_reader :status
+ attr_accessor :header, :body
+
+ # Sets the status.
+ # Also converts every input directly to an integer
+ #
+ # @param [Integer] status
+ #
+ def status=(status)
+ @status = status.to_i
+ end
# Returns the data of the response as an array:
# [status, header, body]
diff --git a/spec/unit/response/response_spec.rb b/spec/unit/response/response_spec.rb
index a0d423f..28ee6db 100644
--- a/spec/unit/response/response_spec.rb
+++ b/spec/unit/response/response_spec.rb
@@ -15,5 +15,15 @@ describe Zero::Response, '#finish' do
value[1].should eq({}) # Headers
value[2].should eq([]) # Body
end
+end
+describe Zero::Response, '#status' do
+ it "must return the status always as an integer" do
+
+ subject.status = "foobar"
+ subject.status.should eq(0)
+
+ subject.status = 240.5
+ subject.status.should eq(240)
+ end
end \ No newline at end of file