class ThisFeature::Adapters::Flipper

Attributes

client[R]

Public Class Methods

new(client: nil) click to toggle source
# File lib/this_feature/adapters/flipper.rb, line 9
def initialize(client: nil)
  @client = client || default_flipper_adapter
end

Public Instance Methods

control?(flag_name, **kwargs) click to toggle source
# File lib/this_feature/adapters/flipper.rb, line 17
def control?(flag_name, **kwargs)
  !present?(flag_name)
end
off?(flag_name, context: nil, data: {}) click to toggle source
# File lib/this_feature/adapters/flipper.rb, line 25
def off?(flag_name, context: nil, data: {})
  !on?(flag_name, context: context)
end
on?(flag_name, context: nil, data: {}) click to toggle source
# File lib/this_feature/adapters/flipper.rb, line 21
def on?(flag_name, context: nil, data: {})
  client[flag_name].enabled?(*[context].compact)
end
present?(flag_name) click to toggle source
# File lib/this_feature/adapters/flipper.rb, line 13
def present?(flag_name)
  client[flag_name].exist?
end

Private Instance Methods

default_flipper_adapter() click to toggle source
# File lib/this_feature/adapters/flipper.rb, line 31
def default_flipper_adapter
  ::Flipper.configure do |config|
    config.default do
      adapter = ::Flipper::Adapters::ActiveRecord.new
      ::Flipper.new(adapter)
    end
  end
  ::Flipper
end