diff --git a/lib/zero/all.rb b/lib/zero/all.rb index 3252d6e..c994bee 100644 --- a/lib/zero/all.rb +++ b/lib/zero/all.rb @@ -2,3 +2,4 @@ require_relative 'controller' require_relative 'router' require_relative 'renderer' require_relative 'request' +require_relative 'response' \ No newline at end of file diff --git a/lib/zero/response.rb b/lib/zero/response.rb new file mode 100644 index 0000000..418c8a7 --- /dev/null +++ b/lib/zero/response.rb @@ -0,0 +1,19 @@ +module Zero + + # This is the representation of a response + # + class Response + attr_accessor :status, :header, :body + + # Returns the data of the response as an array: + # [status, header, body] + # to be usable by any webserver + # + # @return Array + # + def to_a() + [@status, @header, @body] + end + + end +end diff --git a/spec/unit/response/response_spec.rb b/spec/unit/response/response_spec.rb new file mode 100644 index 0000000..a0d423f --- /dev/null +++ b/spec/unit/response/response_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +describe Zero::Response, '#finish' do + subject { Zero::Response.new() } + + it "returns an array within status header and body" do + subject.status = 200 + subject.header = {} + subject.body = [] + + value = subject.to_a + + value.should be_an_instance_of(Array) + value[0].should eq(200) # Status code + value[1].should eq({}) # Headers + value[2].should eq([]) # Body + end + +end \ No newline at end of file