Commit graph

184 commits

Author SHA1 Message Date
Gonzalo Rodriguez
0e8dff4c88
refactor: make Throttle.new consistent with Blocklist/Safelist.new 2019-03-01 22:12:32 -03:00
Gonzalo Rodriguez
3639afc196
refactor: remove unnecessary block local variable 2019-03-01 22:01:17 -03:00
Gonzalo Rodriguez
5a42fd3ac7
style: enable Style/OptionalArguments rubocop 2019-03-01 21:51:15 -03:00
Gonzalo Rodriguez
2240e8f2c6
style: enable Style/RaiseArgs rubocop 2019-03-01 21:19:06 -03:00
Gonzalo Rodriguez
92bc56b7b7
style: enable Style/RedundantSelf rubocop 2019-03-01 21:15:50 -03:00
Gonzalo Rodriguez
a0259fb14a
style: enable Style/SingleLineMethods rubocop 2019-03-01 21:14:47 -03:00
Gonzalo Rodriguez
04eeeb9a33
refactor: avoid rescuing pattern repetition 2019-02-28 22:51:57 -03:00
Gonzalo Rodriguez
20d668211e
style: fix Lint/HandleExceptions rubocop 2019-02-28 21:17:36 -03:00
Gonzalo Rodriguez
bf4e902407
Merge pull request #408 from grzuy/style
style: prefer ruby 1.9+ hash syntax
2019-02-28 21:07:20 -03:00
Gonzalo Rodriguez
f772d0b3cd
Merge pull request #406 from grzuy/optional_name
Make blocklist/safelist name argument optional
2019-02-28 21:01:55 -03:00
Gonzalo Rodriguez
c67e71defe
style: prefer ruby 1.9+ hash syntax 2019-02-27 23:29:32 -03:00
Gonzalo Rodriguez
9a726bd29b
refactor: remove repeated initialization of anonymous_blocklists/safelists 2019-02-25 20:29:07 -03:00
Gonzalo Rodriguez
6addaa11d0
feat: make blocklist/safelist name argument optional 2019-02-24 21:04:51 -03:00
Gonzalo Rodriguez
6c6dfb06e3
feat: match ActiveSupport Instrumentation event name format spec 2019-02-24 20:19:38 -03:00
Gonzalo Rodriguez
8cbd3dc0fc
feat: improve MisconfiguredStoreError exception message to aid debugging 2018-10-11 11:44:10 -03:00
Gonzalo Rodriguez
014f74b95d
Merge pull request #387 from grzuy/fix_redis_3_and_memory_store
[Fixes #355] Fix unexpected error when using redis 3 and any store which is not proxied
2018-10-08 11:33:34 -03:00
Gonzalo Rodriguez
935f99a638
[Fixes #355] Avoid unexpected 'Gem::LoadError' for redis when not intented to be used
It seems that the original implementation accidentally autoloaded ActiveSupport::Cache::RedisCacheStore
which once evaluated asks for redis v4 generating Gem::LoadError.

In order to bypass any unnecessary constant autoloading we can just check class name string.
2018-09-30 22:13:30 -03:00
Gonzalo Rodriguez
91dbb52235
Remove unwrapping 2018-09-30 13:32:08 -03:00
Gonzalo Rodriguez
fc235c90c2
Merge pull request #382 from grzuy/cleanup_redis_cache_store_proxy
Remove unnecessary wrapping of ActiveSupport::Cache::RedisCacheStore#read
2018-09-03 23:15:39 -03:00
Gonzalo Rodriguez
55411e5e82
Remove MemCacheProxy which existed only for now obsolete memcache-client 2018-09-03 18:24:21 -03:00
Gonzalo Rodriguez
7001178b6d
Remove unnecessary wrapping of ActiveSupport::Cache::RedisCacheStore#read
`raw: true` isn't doing anything special for `read`, only for `write`
2018-09-03 17:55:29 -03:00
Jonathan del Strother
5cdc15b35a Add a proxy to deal with ActiveSupport::Cache::MemCacheStore
If connection pooling is used with AS::Cache::MemCacheStore,
unwrap_active_support_stores wouldn't return the underlying dalli instance(s),
and so Rack::Attack.store would be the bare unproxied MemCacheStore instance.

Calling write then increment would silently fail because :raw wasn't used.

With this commit, we no longer try to unwrap AS::Cache::MemCacheStore instances.
2018-09-03 12:00:02 +01:00
Gonzalo Rodriguez
e295ede874
Use RedisStoreProxy (not RedisProxy) for Redis::Store 2018-06-29 16:48:40 -03:00
Gonzalo Rodriguez
673cf98157
Avoid as much repetition as possible between RedisProxy and RedisStoreProxy 2018-06-29 15:44:41 -03:00
Gonzalo Rodriguez
b40b5718dc
rubocop --auto-correct 2018-06-29 15:41:36 -03:00
Gonzalo Rodriguez
6fbb6c8b1c
Merge branch 'master' into support-redis-gem 2018-06-29 15:40:45 -03:00
Gonzalo Rodriguez
eb07d9789f
Prefer Gem::Version for version comparisons 2018-06-29 15:27:36 -03:00
Gonzalo Rodriguez
85c4c085c9
Remove duplicated #initialize 2018-06-29 15:27:20 -03:00
Gonzalo Rodriguez
d1682b19b4
Merge remote-tracking branch 'rfwatson/master' 2018-06-29 15:24:13 -03:00
Gonzalo Rodriguez
73bc739d5a
Merge remote-tracking branch 'doliveirakn/master' 2018-06-29 11:17:19 -03:00
Gonzalo Rodriguez
19e17562c1
Merge pull request #372 from grzuy/drop_deprecated_methods
Remove previously deprecated public methods
2018-06-28 19:12:41 -03:00
Gonzalo Rodriguez
1c1ee918e1
Remove previously deprecated public methods 2018-06-28 17:16:33 -03:00
Gonzalo Rodriguez
8315a1e7e1
Remove support for unmaintained ruby 2.2 2018-06-28 17:08:15 -03:00
Gonzalo Rodriguez
8802ebfbaf
Merge branch '255-correct-object-for-instrumentation' 2018-06-28 16:40:08 -03:00
Gonzalo Rodriguez
21561bb2f5
Bump version to v5.3.2 2018-06-25 19:27:35 -03:00
Gonzalo Rodriguez
ee84079768
Fix 'redis is not part of the bundle' exception when using :memory_store
When RedisCacheStore constant is referenced, activesupport autoloads and
rails tries to require redis, throwing exception if not present
2018-06-25 17:42:45 -03:00
Gonzalo Rodriguez
08861f8d17
Attempt to improve code legibility/clarity/semantics (#357)
* attempt to improve semantics for legibility

* Attempt to improve legibility by simplifying

* Make it more clear that we're calling procs/blocks here

* Enable rubocop Style/BlockDelimiters cop

* Prefer 'request' over 'req' abbreviation for legibility/clarity

* Instances of Track named 'track' not 'tracker'
2018-06-21 14:33:24 -03:00
Gonzalo Rodriguez
d8b88cfb84
Honor amount argument instead of hard coding counter (part 2)
See commit ca2e752937
2018-06-21 11:25:47 -03:00
Gonzalo Rodriguez
196868130a
Bump version to v5.3.1 2018-06-20 19:49:15 -03:00
Gonzalo Rodriguez
2c1cbc323e
Default increment amount to 1 as RedisCacheStore 2018-06-20 19:14:37 -03:00
Gonzalo Rodriguez
ca2e752937
Honor amount argument instead of hard coding counter 2018-06-20 19:14:02 -03:00
Gonzalo Rodriguez
3af7394b6a
Refactor RedisCacheStoreProxy to unlearn everything about redis client details to make it less prone to bugs in the future
Let RedisCacheStoreProxy only know and assume things about
RedisCacheStore API. Don't let it know anything about the specific redis
client behind the scenes, that's the job of RedisCacheStore only, not
ours.
2018-06-20 18:33:00 -03:00
Alexey Vasiliev
3caee5c3ca
Fix usage of RedisCacheStore for rails 5.2.0 2018-06-20 18:06:45 -03:00
Gonzalo Rodriguez
86eb9f9e0a
Enable Style/BracesAroundHashParameters rubocop cop 2018-06-19 17:57:30 -03:00
Gonzalo Rodriguez
e6854bcb02
Enable rubocop Naming cops 2018-06-19 17:57:26 -03:00
Gonzalo Rodriguez
dac926cf68
Bump version to v5.3.0 2018-06-19 15:49:20 -03:00
Brian Kephart
4cc8d7d854
Support ActiveSupport::RedisCacheStore 2018-06-19 13:39:43 -03:00
Gonzalo Rodriguez
a99722bf4b
Avoid user confusion by renaming .clear! to .clear_configuration 2018-05-18 18:23:59 -03:00
Brian Kephart
b5b4164967 replace const_defined? with defined? 2018-05-13 17:45:12 -05:00
Gonzalo Rodriguez
52ec80692d
Enable Lint rubocop cops 2018-04-17 16:27:56 -04:00