lib/azure/core/service.rb in azure-0.5.0 vs lib/azure/core/service.rb in azure-0.6.0
- old
+ new
@@ -1,49 +1,63 @@
-#-------------------------------------------------------------------------
-# Copyright (c) Microsoft. 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.
-#--------------------------------------------------------------------------
-require 'azure/core/http/http_request'
-
-module Azure
- module Core
- # A base class for Service implementations
- class Service
-
- # Create a new instance of the Service
- #
- # host - String. The hostname. (optional, Default empty)
- def initialize(host='')
- @host = host
- end
-
- attr_accessor :host
-
- def call(method, uri, body=nil, headers=nil)
- request = Core::Http::HttpRequest.new(method, uri, body)
- request.headers.merge!(headers) if headers
-
- request.headers['connection'] = 'keep-alive' if request.respond_to? :headers
-
- yield request if block_given?
-
- request.call
- end
-
- def generate_uri(path='', query={})
- uri = URI.parse(File.join(host, path))
- uri.query = URI.encode_www_form(query) unless query == nil or query.empty?
- uri
- 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.
+#--------------------------------------------------------------------------
+require 'azure/core/http/http_request'
+
+module Azure
+ module Core
+ # A base class for Service implementations
+ class Service
+
+ # Create a new instance of the Service
+ #
+ # host - String. The hostname. (optional, Default empty)
+ def initialize(host='')
+ @host = host
+ end
+
+ attr_accessor :host
+
+ def call(method, uri, body=nil, headers=nil)
+ if headers && !body.nil?
+ if headers['Content-Encoding'].nil?
+ headers['Content-Encoding'] = body.encoding.to_s
+ else
+ body.force_encoding(headers['Content-Encoding'])
+ end
+ end
+
+ request = Core::Http::HttpRequest.new(method, uri, body)
+ request.headers.merge!(headers) if headers
+
+ request.headers['connection'] = 'keep-alive' if request.respond_to? :headers
+
+ yield request if block_given?
+
+ response = request.call
+
+ if !response.nil? && !response.body.nil? && response.headers['content-encoding']
+ response.body.force_encoding(response.headers['content-encoding'])
+ end
+
+ response
+ end
+
+ def generate_uri(path='', query={})
+ uri = URI.parse(File.join(host, path))
+ uri.query = URI.encode_www_form(query) unless query == nil or query.empty?
+ uri
+ end
+ end
+ end
end
\ No newline at end of file