Я уже широко использую RestClient.get и RestClient.post, поэтому мне было проще использовать Monkey Patch RestClient. Я бы порекомендовал использовать RestClient::Resource.new
или RestClient::Request.Execute
, если это возможно.
Однако, так как я ленивый и не хочу менять местами все случаи, когда RestClient.get
/ RestClient.post
в моем коде, я решил использовать ярлык.
$timeout = 30
$open_timeout = 30
module RestClient2
include RestClient
def self.get(url, headers={}, &block)
Request.execute(:method => :get, :url => url, :headers => headers,
:timeout => $timeout, :open_timeout => $open_timeout, &block)
end
def self.post(url, payload, headers={}, &block)
Request.execute(:method => :post, :url => url, :payload => payload, :headers => headers,
:timeout => $timeout, :open_timeout => $open_timeout, &block)
end
end
А потом я просто быстро заменил RestClient.get / post на RestClient2.get
/ post.
Было бы неплохо, если бы у RestClient::Request
был задан тайм-аут по умолчанию, например:
@timeout = args[:timeout] || 30
@open_timeout = args[:open_timeout] || 30