class ThisFeature::Adapters::Memory
Attributes
context_key_method[R]
Public Class Methods
new(context_key_method: nil)
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 5 def initialize(context_key_method: nil) @context_key_method = context_key_method end
Public Instance Methods
clear()
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 9 def clear storage.clear end
off!(flag_name, context: nil, data: {})
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 43 def off!(flag_name, context: nil, data: {}) storage[flag_name] ||= {} return storage[flag_name][:global] = false if context.nil? storage[flag_name][:contexts] ||= {} storage[flag_name][:contexts][context_key(context)] = false end
off?(flag_name, context: nil, data: {})
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 30 def off?(flag_name, context: nil, data: {}) !on?(flag_name, context: context, data: data) end
on!(flag_name, context: nil, data: {})
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 34 def on!(flag_name, context: nil, data: {}) storage[flag_name] ||= {} return storage[flag_name][:global] = true if context.nil? storage[flag_name][:contexts] ||= {} storage[flag_name][:contexts][context_key(context)] = true end
on?(flag_name, context: nil, data: {})
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 17 def on?(flag_name, context: nil, data: {}) return false unless present?(flag_name) flag_data = storage[flag_name] return true if flag_data[:global] return false if context.nil? flag_data[:contexts] ||= {} !!flag_data[:contexts][context_key(context)] end
present?(flag_name)
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 13 def present?(flag_name) !storage[flag_name].nil? end
storage()
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 52 def storage @storage ||= {} end
Private Instance Methods
context_key(context)
click to toggle source
# File lib/this_feature/adapters/memory.rb, line 60 def context_key(context) return context if context_key_method.nil? context.send(context_key_method) end