summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/application.rb1
-rw-r--r--lib/stoplight/redis_data_store_extensions.rb17
2 files changed, 18 insertions, 0 deletions
diff --git a/config/application.rb b/config/application.rb
index 65407da05c9..5aca74fd1c6 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -49,6 +49,7 @@ require_relative '../lib/webpacker/manifest_extensions'
require_relative '../lib/webpacker/helper_extensions'
require_relative '../lib/rails/engine_extensions'
require_relative '../lib/action_dispatch/remote_ip_extensions'
+require_relative '../lib/stoplight/redis_data_store_extensions'
require_relative '../lib/active_record/database_tasks_extensions'
require_relative '../lib/active_record/batches'
require_relative '../lib/active_record/with_recursive'
diff --git a/lib/stoplight/redis_data_store_extensions.rb b/lib/stoplight/redis_data_store_extensions.rb
new file mode 100644
index 00000000000..90074878401
--- /dev/null
+++ b/lib/stoplight/redis_data_store_extensions.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+# Restore compatibility with Redis < 6.2
+
+module Stoplight
+ module DataStore
+ module RedisExtensions
+ def query_failures(light, transaction: @redis)
+ window_start = Time.now.to_i - light.window_size
+
+ transaction.zrevrangebyscore(failures_key(light), Float::INFINITY, window_start)
+ end
+ end
+ end
+end
+
+Stoplight::DataStore::Redis.prepend(Stoplight::DataStore::RedisExtensions)