Class: Chef::HTTP::JSONInput
Overview
Middleware that takes json input and turns it into raw text
Instance Method Summary collapse
- #handle_request(method, url, headers = {}, data = false) ⇒ Object
- #handle_response(http_response, rest_request, return_value) ⇒ Object
- #handle_stream_complete(http_response, rest_request, return_value) ⇒ Object
-
#initialize(opts = {}) ⇒ JSONInput
constructor
A new instance of JSONInput.
- #stream_response_handler(response) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ JSONInput
Returns a new instance of JSONInput.
28 29 |
# File 'lib/chef/http/json_input.rb', line 28 def initialize(opts={}) end |
Instance Method Details
#handle_request(method, url, headers = {}, data = false) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/chef/http/json_input.rb', line 31 def handle_request(method, url, headers={}, data=false) if data && should_encode_as_json?(headers) headers.delete_if { |key, _value| key.downcase == 'content-type' } headers["Content-Type"] = 'application/json' data = Chef::JSONCompat.to_json(data) # Force encoding to binary to fix SSL related EOFErrors # cf. http://tickets.opscode.com/browse/CHEF-2363 # http://redmine.ruby-lang.org/issues/5233 data.force_encoding(Encoding::BINARY) if data.respond_to?(:force_encoding) end [method, url, headers, data] end |
#handle_response(http_response, rest_request, return_value) ⇒ Object
44 45 46 |
# File 'lib/chef/http/json_input.rb', line 44 def handle_response(http_response, rest_request, return_value) [http_response, rest_request, return_value] end |
#handle_stream_complete(http_response, rest_request, return_value) ⇒ Object
52 53 54 |
# File 'lib/chef/http/json_input.rb', line 52 def handle_stream_complete(http_response, rest_request, return_value) [http_response, rest_request, return_value] end |
#stream_response_handler(response) ⇒ Object
48 49 50 |
# File 'lib/chef/http/json_input.rb', line 48 def stream_response_handler(response) nil end |