From 7f5b9059f89ebf04e9b96b5c65f0865f7b4bc9e6 Mon Sep 17 00:00:00 2001 From: John Nunemaker Date: Mon, 27 Apr 2015 16:14:52 -0400 Subject: [PATCH] Move memoizable cache to injected hash --- lib/flipper/adapters/memoizable.rb | 11 +++++------ spec/flipper/adapters/memoizable_spec.rb | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/flipper/adapters/memoizable.rb b/lib/flipper/adapters/memoizable.rb index 7b5eec00f..05f466540 100644 --- a/lib/flipper/adapters/memoizable.rb +++ b/lib/flipper/adapters/memoizable.rb @@ -5,9 +5,13 @@ module Adapters class Memoizable < Decorator FeaturesKey = :flipper_features + # Internal + attr_reader :cache + # Public - def initialize(adapter) + def initialize(adapter, cache = nil) super(adapter) + @cache = cache || {} end # Public @@ -68,11 +72,6 @@ def disable(feature, gate, thing) result end - # Internal - def cache - Thread.current[:flipper_memoize_cache] ||= {} - end - # Internal: Turns local caching on/off. # # value - The Boolean that decides if local caching is on. diff --git a/spec/flipper/adapters/memoizable_spec.rb b/spec/flipper/adapters/memoizable_spec.rb index 9c2ba902a..75f934a87 100644 --- a/spec/flipper/adapters/memoizable_spec.rb +++ b/spec/flipper/adapters/memoizable_spec.rb @@ -7,9 +7,9 @@ let(:features_key) { described_class::FeaturesKey } let(:adapter) { Flipper::Adapters::Memory.new } let(:flipper) { Flipper.new(adapter) } - let(:cache) { subject.cache } + let(:cache) { {} } - subject { described_class.new(adapter) } + subject { described_class.new(adapter, cache) } it_should_behave_like 'a flipper adapter'