Kouhei Sutou
null+****@clear*****
Mon Jan 20 16:35:54 JST 2014
Kouhei Sutou 2014-01-20 16:35:54 +0900 (Mon, 20 Jan 2014) New Revision: dd026580a2fd74b96fd4cf0e75b06afb91807862 https://github.com/droonga/droonga-client-ruby/commit/dd026580a2fd74b96fd4cf0e75b06afb91807862 Message: http: simplify request creation code Modified files: lib/droonga/client/connection/http.rb Modified: lib/droonga/client/connection/http.rb (+14 -27) =================================================================== --- lib/droonga/client/connection/http.rb 2014-01-20 16:32:16 +0900 (f7a1154) +++ lib/droonga/client/connection/http.rb 2014-01-20 16:35:54 +0900 (2e61483) @@ -140,46 +140,33 @@ module Droonga private def build_request(message) - request = nil - method = http_method(message) - case method + http_method = message["method"] || "GET" + http_headers = message["headers"] || {} + case http_method when "POST" - request = Net::HTTP::Post.new(build_path(message), build_headers(message)) + request = Net::HTTP::Post.new(build_path(message, {}), + http_headers) request.body = JSON.generate(message["body"]) + request when "GET" - request = Net::HTTP::Get.new(build_path(message), build_headers(message)) + parameters = message["body"] || {} + Net::HTTP::Get.new(build_path(message, parameters), + http_headers) else - raise ArgumentError.new("Unsupport HTTP Method: #{method}, " + + raise ArgumentError.new("Unsupport HTTP Method: #{http_method}, " + "in the message: #{JSON.generate(message)}") end end - def build_path(message) + def build_path(message, parameters) type = message["type"] - body = message["body"] || {} - method = http_method(message) base_path = message["path"] || "/#{type}" - if use_query_string?(method, body) - "#{base_path}?#{Rack::Utils.build_nested_query(body)}" - else + if parameters.empty? base_path + else + "#{base_path}?#{Rack::Utils.build_nested_query(parameters)}" end end - - def build_headers(message) - message["headers"] || {} - end - - def http_method(message) - message["method"] || "GET" - end - - USE_QUERY_STRING_HTTP_METHODS = ["GET", "HEAD"] - def use_query_string?(http_method, parameters) - return false if parameters.empty? - - USE_QUERY_STRING_HTTP_METHODS.include?(http_method) - end end end end -------------- next part -------------- HTML����������������������������...Download