lib/twitter/client/base.rb in mbbx6spp-twitter4r-0.3.1 vs lib/twitter/client/base.rb in mbbx6spp-twitter4r-0.4.0

- old
+ new

@@ -1,18 +1,20 @@ class Twitter::Client alias :old_inspect :inspect + def inspect s = old_inspect s.gsub!(/@password=".*?"/, '@password="XXXX"') end + protected attr_accessor :login, :password # Returns the response of the HTTP connection. - def http_connect(body = nil, require_auth = true, &block) + def http_connect(body = nil, require_auth = true, service = :rest, &block) require_block(block_given?) - connection = create_http_connection + connection = create_http_connection(service) connection.start do |connection| request = yield connection if block_given? request.basic_auth(@login, @password) if require_auth response = connection.request(request, body) handle_rest_response(response) @@ -32,26 +34,34 @@ private @@http_header = nil def raise_rest_error(response, uri = nil) + map = JSON.parse(response.body) raise Twitter::RESTError.new(:code => response.code, :message => response.message, + :error => map["error"], :uri => uri) end def handle_rest_response(response, uri = nil) unless response.is_a?(Net::HTTPSuccess) raise_rest_error(response, uri) end end - def create_http_connection - conn = Net::HTTP.new(@@config.host, @@config.port, + def create_http_connection(service = :rest) + case service + when :rest + protocol, host, port = @@config.protocol, @@config.host, @@config.port + when :search + protocol, host, port = @@config.search_protocol, @@config.search_host, @@config.search_port + end + conn = Net::HTTP.new(host, port, @@config.proxy_host, @@config.proxy_port, @@config.proxy_user, @@config.proxy_pass) - if @@config.protocol == :ssl + if protocol == :ssl conn.use_ssl = true conn.verify_mode = OpenSSL::SSL::VERIFY_NONE end conn end @@ -82,6 +92,5 @@ def create_http_delete_request(uri, params = {}) path = (params.size > 0) ? "#{uri}?#{params.to_http_str}" : uri Net::HTTP::Delete.new(path, http_header) end end -