Skip to content

Commit

Permalink
making all adapters poolable
Browse files Browse the repository at this point in the history
removing idea
  • Loading branch information
j-castellanos committed Feb 17, 2024
1 parent 3f70f76 commit d5d76ba
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 57 deletions.
3 changes: 3 additions & 0 deletions lib/flipper/adapter.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
require 'flipper/adapters/poolable'

module Flipper
# Adding a module include so we have some hooks for stuff down the road
module Adapter
def self.included(base)
base.extend(ClassMethods)
base.include(::Flipper::Adapters::Poolable)
end

module ClassMethods
Expand Down
31 changes: 31 additions & 0 deletions lib/flipper/adapters/poolable.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# frozen_string_literal: true

module Flipper
module Adapters
module Poolable
def initialize(client_or_pool = nil, key_prefix: nil)
@pool = nil
@client = nil
if client_or_pool.respond_to?(:with)
@pool = client_or_pool
else
@client = client_or_pool
end
@key_prefix = key_prefix
end

def self.included(klass)
klass.superclass.instance_methods(false).each do |method|
klass.define_method method do |*args|
return super(*args) unless @client.nil?

@pool.with do |client|
@client = client
super(*args).tap { @client = nil }
end
end
end
end
end
end
end
32 changes: 0 additions & 32 deletions lib/flipper/adapters/redis_pool.rb

This file was deleted.

10 changes: 0 additions & 10 deletions spec/flipper/adapters/redis_pool_spec.rb

This file was deleted.

15 changes: 0 additions & 15 deletions test/adapters/redis_pool_test.rb

This file was deleted.

0 comments on commit d5d76ba

Please sign in to comment.