faraday-throttler-rx 0.0.6 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b4d9bed4de87645679ba476eced15a525516375df5bd3b71431e9342b56997e
4
- data.tar.gz: 7e0a2f1a0a01621b56737e40f08a5da6642eb53a2ef2dd2b70a86c834e076834
3
+ metadata.gz: e8d9b78ffc27c6b8d6d6f47b678be32539d571e272087898b89624821bca1ed7
4
+ data.tar.gz: c31a2b9aa214f9d4319d6b2458a5d7dcac4ff4ef94093deba0ae4ad81151e4f6
5
5
  SHA512:
6
- metadata.gz: fcefae47311b805e92d57b767d5e7e1bcb867da116dc1209fa83293ba384e44acba1eb455d478f7a0b2e38499cb59f540973692f25ad0bbb38485d80d74ea1ae
7
- data.tar.gz: 5a3a84912f922df0d58bb1fcf51ffd3bd832106274afe899560c9cf9db7c4734527212cee41954e56c3c8bb3321d5689140d1a036b9b30d28ef50cc4e8042c9b
6
+ metadata.gz: 888c02795d3f47399f721dc70f9ef5b12036c61eeaca61a35579f4ea4d9d359187747696322e8886dc47e1de88d9d3c499e30da6e629829d7040e8733da1de6a
7
+ data.tar.gz: e534db868dd5abc3f081189a7218528e14c3deb652de7dd17545ff54e39637a7d01499c8c163b2e891dad36ed196a8b4b5e63348ce3f742ffc3520952a8fd09a
data/examples/client.rb CHANGED
@@ -6,7 +6,7 @@ require 'faraday_throttler/redis_cache'
6
6
 
7
7
 
8
8
  redis = Redis.new
9
- cache = FaradayThrottler::RedisCache.new(redis: redis, ttl: 60)
9
+ cache = FaradayThrottler::RedisCache.new(redis: redis, default_ttl: 60)
10
10
 
11
11
  conn = Faraday.new(:url => 'http://localhost:9800') do |faraday|
12
12
  # faraday.response :logger # log requests to STDOUT
@@ -11,6 +11,9 @@ module FaradayThrottler
11
11
  # The base Faraday adapter.
12
12
  app,
13
13
 
14
+ # enable the throller
15
+ enabled: true,
16
+
14
17
  # Sticks cache.
15
18
  cache: Cache.new,
16
19
 
@@ -63,7 +66,7 @@ module FaradayThrottler
63
66
  end
64
67
 
65
68
  def call(request_env)
66
- return app.call(request_env) if request_env[:method] != :get
69
+ return app.call(request_env) if skip?(request_env)
67
70
 
68
71
  start = Time.now
69
72
 
@@ -81,7 +84,7 @@ module FaradayThrottler
81
84
 
82
85
  private
83
86
  attr_reader :app, :cache, :cache_key_resolver, :rate, :wait, :timeout,
84
- :rate_limit_response_checker, :logger
87
+ :rate_limit_response_checker, :logger, enabled
85
88
 
86
89
  def handle_request(request_env, cache_key, start)
87
90
  logger.debug logline(cache_key, "B.1.1. handle sync. Timeout: #{timeout}")
@@ -105,10 +108,11 @@ module FaradayThrottler
105
108
  release_request_stick(cache_key)
106
109
  end
107
110
  end
108
- rescue Faraday::ClientError => e
109
- if rate_limit_response_checker.call(e.response)
111
+ rescue Faraday::Error => e
112
+ if e.is_a?(Faraday::ClientError) && rate_limit_response_checker.call(e.response)
110
113
  wait_and_replay_call(request_env, cache_key, start)
111
114
  else
115
+ release_request_stick(cache_key)
112
116
  raise e
113
117
  end
114
118
  end
@@ -159,6 +163,10 @@ module FaradayThrottler
159
163
  def logline(cache_key, line)
160
164
  "[Throttler:#{cache_key}] #{line}"
161
165
  end
166
+
167
+ def skip?(request_env)
168
+ !enabled || request_env[:method] != :get
169
+ end
162
170
  end
163
171
 
164
172
  Faraday::Middleware.register_middleware throttler: ->{ Middleware }
@@ -1,3 +1,3 @@
1
1
  module FaradayThrottler
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday-throttler-rx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Koumondji
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-02 00:00:00.000000000 Z
11
+ date: 2022-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday