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
-