lib/oanda_api/client/client.rb in oanda_api-0.9.5 vs lib/oanda_api/client/client.rb in oanda_api-0.9.6
- old
+ new
@@ -114,13 +114,13 @@
Client.send method,
api_uri(resource_descriptor),
params_key => Utils.stringify_keys(conditions.merge(default_params)),
:headers => OandaAPI.configuration.headers.merge(headers),
:open_timeout => OandaAPI.configuration.open_timeout,
- :read_timeout => OandaAPI.configuration.read_timeout
+ :read_timeout => OandaAPI.configuration.read_timeout,
+ :timeout => OandaAPI.configuration.open_timeout
end
-
handle_response response, resource_descriptor
rescue Http::Exceptions::HttpException => e
raise OandaAPI::RequestError, e.message
end
@@ -157,14 +157,19 @@
# {OandaAPI::Configuration#max_requests_per_second}. Only enforced
# if {OandaAPI::Configuration#use_request_throttling?} is enabled.
#
# @return [void]
def self.throttle_request_rate
+ last_request_time = last_request_at
now = Time.now
- delta = now - (last_request_at || now)
- _throttle(delta, now) if delta < OandaAPI.configuration.min_request_interval &&
- OandaAPI.configuration.use_request_throttling?
+
+ if last_request_time
+ delta = now - last_request_time
+ _throttle(delta, now) if delta < OandaAPI.configuration.min_request_interval &&
+ OandaAPI.configuration.use_request_throttling?
+ end
+
self.last_request_at = Time.now
end
# @private
# The local time of the most recently throttled request.
@@ -203,12 +208,13 @@
# @param [OandaAPI::Client::ResourceDescriptor] resource_descriptor metadata
# describing the requested resource.
# @return [OandaAPI::ResourceBase, OandaAPI::ResourceCollection] see {#execute_request}
def handle_response(response, resource_descriptor)
if resource_descriptor.is_collection?
- ResourceCollection.new response, resource_descriptor
+ location = response.respond_to?(:location) ? response.location : nil
+ ResourceCollection.new response.parsed_response, resource_descriptor, location: location
else
- resource_descriptor.resource_klass.new response
+ resource_descriptor.resource_klass.new response.parsed_response
end
end
# @private
# Enables method-chaining.