magick-feature-flags 1.0.0 → 1.0.1

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: b702af543d2f50e7f5b7ba6917ed318cff4e0b1fd82ef355a8aac757a18be75d
4
- data.tar.gz: 8d68c5bb592755731f46a681a76d4b9fa092ddd5b46300042c8225fa6fffb90b
3
+ metadata.gz: eb5d73f00f0b006cbb05593e370ec86ea36ddeec5a2b232759aa4f8d60dcd604
4
+ data.tar.gz: a716bea2183599e543fae103e116e40c0b572aa25720244fd8549c071ee52fe7
5
5
  SHA512:
6
- metadata.gz: 21f49a8f8058dadddce614fa1e2766b385b6764ae7021e2a93ad6532edda4189d2a74bc6faeafb38f8dc1d4a980d9bc09c813836ee1e94f2381f2904f8b78bd6
7
- data.tar.gz: 452eb3dbb5def24b61c89e5e1b08257a50b531df8834c2877fc1e926093a97c14c426a61be5cb3b61a41ab14d2a85bc061df9bd92229d8820f4452535dd1afe1
6
+ metadata.gz: b217071396caf2b23525de384bcfc1db28bfc98b29b6e652c78eb9c7bd8c35e4345cb61f666fc034dca3790846783dd873b277aa856b14c0bdea0d994ec63df4
7
+ data.tar.gz: e08c7b195aa2aff80d89509285de40b349a278efffa45010ff25d2561fd515b3f9966936d206a94f0ba85693732f2d4e1db326bb7579b3a0c97618e080e633bc
@@ -180,11 +180,31 @@ module Magick
180
180
  def start_cache_invalidation_subscriber
181
181
  return unless redis_adapter && defined?(Thread)
182
182
 
183
+ # Skip subscriber in test environments to avoid RSpec mock conflicts
184
+ # In tests, cache invalidation across processes isn't needed anyway
185
+ return if defined?(Rails) && Rails.env.test?
186
+
183
187
  @subscriber_thread = Thread.new do
184
188
  redis_client = redis_adapter.instance_variable_get(:@redis)
185
189
  return unless redis_client
186
190
 
187
- @subscriber = redis_client.dup
191
+ begin
192
+ # Wrap dup in error handling to catch RSpec mock errors
193
+ @subscriber = redis_client.dup
194
+ rescue StandardError => e
195
+ # In test environments, RSpec mocks might interfere with Redis initialization
196
+ # Silently skip subscriber if dup fails (likely due to test mocks)
197
+ # Check for RSpec mock errors by looking at the error message or class
198
+ is_rspec_error = e.class.name&.include?('RSpec') ||
199
+ e.message&.include?('stub') ||
200
+ e.message&.include?('mock') ||
201
+ (defined?(Rails) && Rails.env.test?)
202
+ return if is_rspec_error
203
+
204
+ # Re-raise in non-test environments for unexpected errors
205
+ raise
206
+ end
207
+
188
208
  @subscriber.subscribe(CACHE_INVALIDATION_CHANNEL) do |on|
189
209
  on.message do |_channel, feature_name|
190
210
  feature_name_str = feature_name.to_s
@@ -221,6 +241,16 @@ module Magick
221
241
  end
222
242
  rescue StandardError => e
223
243
  # Log error but don't crash the subscriber thread
244
+ # Skip logging RSpec mock errors in test environments
245
+ is_rspec_error = e.class.name&.include?('RSpec') ||
246
+ e.message&.include?('stub') ||
247
+ e.message&.include?('mock') ||
248
+ (defined?(Rails) && Rails.env.test?)
249
+ if is_rspec_error
250
+ # Silently ignore errors in test environments
251
+ next
252
+ end
253
+
224
254
  if defined?(Rails) && Rails.env.development?
225
255
  warn "Magick: Error processing cache invalidation for '#{feature_name}': #{e.message}"
226
256
  end
@@ -228,6 +258,13 @@ module Magick
228
258
  end
229
259
  rescue StandardError => e
230
260
  # If subscription fails, log and retry after a delay
261
+ # Skip retrying in test environments or if it's an RSpec mock error
262
+ is_rspec_error = e.class.name&.include?('RSpec') ||
263
+ e.message&.include?('stub') ||
264
+ e.message&.include?('mock') ||
265
+ (defined?(Rails) && Rails.env.test?)
266
+ return if is_rspec_error
267
+
231
268
  warn "Cache invalidation subscriber error: #{e.message}" if defined?(Rails) && Rails.env.development?
232
269
  sleep 5
233
270
  retry
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Magick
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magick-feature-flags
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Lobanov