class Itamae::Resource::HttpRequest
Constants
- HTTPClientError
- HTTPServerError
- HTTPUnknownError
- RedirectLimitExceeded
Public Instance Methods
action_delete(options)
click to toggle source
# File lib/itamae/resource/http_request.rb, line 77 def action_delete(options) _action_create(options) end
action_get(options)
click to toggle source
# File lib/itamae/resource/http_request.rb, line 81 def action_get(options) _action_create(options) end
action_options(options)
click to toggle source
# File lib/itamae/resource/http_request.rb, line 85 def action_options(options) _action_create(options) end
action_post(options)
click to toggle source
# File lib/itamae/resource/http_request.rb, line 89 def action_post(options) _action_create(options) end
action_put(options)
click to toggle source
# File lib/itamae/resource/http_request.rb, line 93 def action_put(options) _action_create(options) end
fetch_content()
click to toggle source
# File lib/itamae/resource/http_request.rb, line 38 def fetch_content uri = URI.parse(attributes.url) response = nil redirects_followed = 0 loop do http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if uri.scheme == "https" case attributes.action when :delete, :get, :options response = http.method(attributes.action).call(uri.request_uri, attributes.headers) when :post, :put response = http.method(attributes.action).call(uri.request_uri, attributes.message, attributes.headers) end case response when Net::HTTPSuccess break when Net::HTTPRedirection if redirects_followed < attributes.redirect_limit uri = URI.parse(response["location"]) redirects_followed += 1 Itamae.logger.debug "Following redirect #{redirects_followed}/#{attributes.redirect_limit}" else raise RedirectLimitExceeded end when Net::HTTPClientError raise HTTPClientError when Net::HTTPServerError raise HTTPServerError else raise HTTPUnknownError end end response.body end
pre_action()
click to toggle source
# File lib/itamae/resource/http_request.rb, line 21 def pre_action attributes.exist = true attributes.content = fetch_content send_tempfile compare_file end
show_differences()
click to toggle source
Calls superclass method
Itamae::Resource::File#show_differences
# File lib/itamae/resource/http_request.rb, line 29 def show_differences current.mode = current.mode.rjust(4, '0') if current.mode attributes.mode = attributes.mode.rjust(4, '0') if attributes.mode super show_content_diff end