lib/azure/table/batch_response.rb in azure-0.6.0 vs lib/azure/table/batch_response.rb in azure-0.6.1
- old
+ new
@@ -1,118 +1,118 @@
-#-------------------------------------------------------------------------
-# # Copyright (c) Microsoft and contributors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#--------------------------------------------------------------------------
-module Azure
- module Table
- module BatchResponse
- def self.parse(data)
- context = {
- :lines => data.lines.to_a,
- :index=> 0,
- :responses => []
- }
-
- find(context) { |c| batch_boundary c }
- find(context) { |c| batch_headers c }
-
- while(find(context){ |c| changeset_boundary_or_end c } == :boundary)
- find(context) { |c| changeset_headers c }
- find(context) { |c| response c }
- find(context) { |c| response_headers c }
- find(context) { |c| response_body c }
- end
-
- context[:responses]
- end
-
- def self.find(context, &block)
- while(context[:index] < context[:lines].length)
- result = block.call(context)
- return result if result
- context[:index] +=1
- end
- end
-
- def self.response_body(context)
- end_of_body = nil
- end_of_body = changeset_boundary_or_end(context.dup.merge!({:index=>context[:index] + 1})) if context[:index] < (context[:lines].length - 1)
-
- if end_of_body
- context[:responses].last[:body] ||= ""
- context[:responses].last[:body] << current_line(context)
- return context[:responses].last[:body]
- else
- context[:responses].last[:body] ||= ""
- context[:responses].last[:body] << current_line(context)
- return nil
- end
- end
-
- def self.response_headers(context)
- match = /(.*): (.*)/.match(current_line(context))
-
- if context[:responses].last[:headers] and not match
- context[:index] += 1
- return context[:responses].last[:headers]
- elsif match
- context[:responses].last[:headers] ||= {}
- context[:responses].last[:headers][match[1].downcase] = match[2].strip
- return nil
- else
- return nil
- end
- end
-
- def self.response(context)
- match = /HTTP\/1.1 (\d*) (.*)/.match(current_line(context))
- return nil unless match
- response = {:status_code => match[1], :message => match[2] }
- context[:responses].push response
- end
-
- def self.changeset_headers(context)
- current_line(context).strip == ''
- end
-
- def self.changeset_boundary_or_end(context)
- match_boundary = /--changesetresponse_(.*)/.match(current_line(context))
- match_end = /--changesetresponse_(.*)--/.match(current_line(context))
-
- (match_boundary and not match_end) ? :boundary : (match_end ? :end : nil)
- end
-
- def self.batch_headers(context)
- match = /(.*): (.*)/.match(current_line(context))
-
- if context[:batch_headers] and not match
- return context[:batch_headers]
- elsif match
- context[:batch_headers] ||= {}
- context[:batch_headers][match[1].downcase] = match[2]
- return nil
- else
- return nil
- end
- end
-
- def self.batch_boundary(context)
- match = /--batchresponse_(.*)/.match(current_line(context))
- match ? match[1] : nil
- end
-
- def self.current_line(context)
- context[:lines][context[:index]]
- end
- end
- end
-end
+#-------------------------------------------------------------------------
+# # Copyright (c) Microsoft and contributors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#--------------------------------------------------------------------------
+module Azure
+ module Table
+ module BatchResponse
+ def self.parse(data)
+ context = {
+ :lines => data.lines.to_a,
+ :index=> 0,
+ :responses => []
+ }
+
+ find(context) { |c| batch_boundary c }
+ find(context) { |c| batch_headers c }
+
+ while(find(context){ |c| changeset_boundary_or_end c } == :boundary)
+ find(context) { |c| changeset_headers c }
+ find(context) { |c| response c }
+ find(context) { |c| response_headers c }
+ find(context) { |c| response_body c }
+ end
+
+ context[:responses]
+ end
+
+ def self.find(context, &block)
+ while(context[:index] < context[:lines].length)
+ result = block.call(context)
+ return result if result
+ context[:index] +=1
+ end
+ end
+
+ def self.response_body(context)
+ end_of_body = nil
+ end_of_body = changeset_boundary_or_end(context.dup.merge!({:index=>context[:index] + 1})) if context[:index] < (context[:lines].length - 1)
+
+ if end_of_body
+ context[:responses].last[:body] ||= ""
+ context[:responses].last[:body] << current_line(context)
+ return context[:responses].last[:body]
+ else
+ context[:responses].last[:body] ||= ""
+ context[:responses].last[:body] << current_line(context)
+ return nil
+ end
+ end
+
+ def self.response_headers(context)
+ match = /(.*): (.*)/.match(current_line(context))
+
+ if context[:responses].last[:headers] and not match
+ context[:index] += 1
+ return context[:responses].last[:headers]
+ elsif match
+ context[:responses].last[:headers] ||= {}
+ context[:responses].last[:headers][match[1].downcase] = match[2].strip
+ return nil
+ else
+ return nil
+ end
+ end
+
+ def self.response(context)
+ match = /HTTP\/1.1 (\d*) (.*)/.match(current_line(context))
+ return nil unless match
+ response = {:status_code => match[1], :message => match[2] }
+ context[:responses].push response
+ end
+
+ def self.changeset_headers(context)
+ current_line(context).strip == ''
+ end
+
+ def self.changeset_boundary_or_end(context)
+ match_boundary = /--changesetresponse_(.*)/.match(current_line(context))
+ match_end = /--changesetresponse_(.*)--/.match(current_line(context))
+
+ (match_boundary and not match_end) ? :boundary : (match_end ? :end : nil)
+ end
+
+ def self.batch_headers(context)
+ match = /(.*): (.*)/.match(current_line(context))
+
+ if context[:batch_headers] and not match
+ return context[:batch_headers]
+ elsif match
+ context[:batch_headers] ||= {}
+ context[:batch_headers][match[1].downcase] = match[2]
+ return nil
+ else
+ return nil
+ end
+ end
+
+ def self.batch_boundary(context)
+ match = /--batchresponse_(.*)/.match(current_line(context))
+ match ? match[1] : nil
+ end
+
+ def self.current_line(context)
+ context[:lines][context[:index]]
+ end
+ end
+ end
+end