lib/chef-api/connection.rb in chef-infra-api-0.10.0 vs lib/chef-api/connection.rb in chef-infra-api-0.10.2

- old
+ new

@@ -1,9 +1,9 @@ -require 'net/http' -require 'net/https' -require 'openssl' -require 'uri' +require "net/http" +require "net/https" +require "openssl" +require "uri" module ChefAPI # # Connection object for the ChefAPI API. # @@ -35,23 +35,23 @@ end include Logify include ChefAPI::Configurable - proxy :clients, 'Resource::Client' - proxy :cookbooks, 'Resource::Cookbook' - proxy :data_bags, 'Resource::DataBag' - proxy :data_bag_item, 'Resource::DataBagItem' - proxy :environments, 'Resource::Environment' - proxy :groups, 'Resource::Group' - proxy :nodes, 'Resource::Node' - proxy :partial_search, 'Resource::PartialSearch' - proxy :principals, 'Resource::Principal' - proxy :roles, 'Resource::Role' - proxy :search, 'Resource::Search' - proxy :users, 'Resource::User' - proxy :organizations, 'Resource::Organization' + proxy :clients, "Resource::Client" + proxy :cookbooks, "Resource::Cookbook" + proxy :data_bags, "Resource::DataBag" + proxy :data_bag_item, "Resource::DataBagItem" + proxy :environments, "Resource::Environment" + proxy :groups, "Resource::Group" + proxy :nodes, "Resource::Node" + proxy :partial_search, "Resource::PartialSearch" + proxy :principals, "Resource::Principal" + proxy :roles, "Resource::Role" + proxy :search, "Resource::Search" + proxy :users, "Resource::User" + proxy :organizations, "Resource::Organization" # # Create a new ChefAPI Connection with the given options. Any options # given take precedence over the default options. # @@ -73,13 +73,13 @@ # def initialize(options = {}) # Use any options given, but fall back to the defaults set on the module ChefAPI::Configurable.keys.each do |key| value = if options[key].nil? - ChefAPI.instance_variable_get(:"@#{key}") - else - options[key] + ChefAPI.instance_variable_get(:"@#{key}") + else + options[key] end instance_variable_set(:"@#{key}", value) end @@ -200,22 +200,22 @@ def request(verb, path, data = {}, params = {}, request_options = {}) log.info "#{verb.to_s.upcase} #{path}..." log.debug "Chef flavor: #{flavor.inspect}" # Build the URI and request object from the given information - if [:delete, :get].include?(verb) + if %i{delete get}.include?(verb) uri = build_uri(verb, path, data) else uri = build_uri(verb, path, params) end request = class_for_request(verb).new(uri.request_uri) # Add request headers add_request_headers(request) # Setup PATCH/POST/PUT - if [:patch, :post, :put].include?(verb) + if %i{patch post put}.include?(verb) if data.respond_to?(:read) log.info "Detected file/io presence" request.body_stream = data elsif data.is_a?(Hash) # If any of the values in the hash are File-like, assume this is a @@ -259,11 +259,11 @@ # setting a longer read_timeout for our client if we want to make an # expensive request. connection.read_timeout = read_timeout if read_timeout # Apply SSL, if applicable - if uri.scheme == 'https' + if uri.scheme == "https" # Turn on SSL connection.use_ssl = true # Custom pem files, no problem! if ssl_pem_file @@ -293,11 +293,11 @@ log.debug "Raw response:" log.debug response.body case response when Net::HTTPRedirection - redirect = URI.parse(response['location']).to_s + redirect = URI.parse(response["location"]).to_s log.debug "Performing HTTP redirect to #{redirect}" request(verb, redirect, data) when Net::HTTPSuccess success(response) else @@ -326,18 +326,18 @@ # the list of params to build the URI with (for GET and DELETE requests) # # @return [URI] # def build_uri(verb, path, params = {}) - log.info "Building URI..." + log.info "Building URI..." # Add any query string parameters if querystring = to_query_string(params) log.debug "Detected verb deserves a querystring" log.debug "Building querystring using #{params.inspect}" log.debug "Compiled querystring is #{querystring.inspect}" - path = [path, querystring].compact.join('?') + path = [path, querystring].compact.join("?") end # Parse the URI uri = URI.parse(path) @@ -376,11 +376,11 @@ # the query string as a string, or +nil+ if there are no params # def to_query_string(hash) hash.map do |key, value| "#{URI.escape(key.to_s)}=#{URI.escape(value.to_s)}" - end.join('&')[/.+/] + end.join("&")[/.+/] end private # @@ -395,11 +395,11 @@ # the parsed response, as an object # def success(response) log.info "Parsing response as success..." - case response['Content-Type'] + case response["Content-Type"] when /json/ log.debug "Detected response as JSON" log.debug "Parsing response body as JSON" JSON.parse(response.body) else @@ -416,11 +416,11 @@ # the response object from the request # def error(response) log.info "Parsing response as error..." - case response['Content-Type'] + case response["Content-Type"] when /json/ log.debug "Detected error response as JSON" log.debug "Parsing error response as JSON" message = JSON.parse(response.body) else @@ -457,16 +457,16 @@ # def add_request_headers(request) log.info "Adding request headers..." headers = { - 'Accept' => 'application/json', - 'Content-Type' => 'application/json', - 'Connection' => 'keep-alive', - 'Keep-Alive' => '30', - 'User-Agent' => user_agent, - 'X-Chef-Version' => '11.4.0', + "Accept" => "application/json", + "Content-Type" => "application/json", + "Connection" => "keep-alive", + "Keep-Alive" => "30", + "User-Agent" => user_agent, + "X-Chef-Version" => "11.4.0", } headers.each do |key, value| log.debug "#{key}: #{value}" request[key] = value @@ -489,10 +489,10 @@ authentication = Authentication.from_options( user: client, key: key, verb: verb, path: path, - body: request.body || request.body_stream, + body: request.body || request.body_stream ) authentication.headers.each do |key, value| log.debug "#{key}: #{value}" request[key] = value