class Flipper::Configuration

Public Class Methods

new(options = {}) click to toggle source
# File lib/flipper/configuration.rb, line 3
def initialize(options = {})
  @default = -> { Flipper.new(adapter) }
  @adapter = -> { Flipper::Adapters::Memory.new }
end

Public Instance Methods

adapter(&block) click to toggle source

The default adapter to use.

Pass a block to assign the adapter, and invoke without a block to return the configured adapter instance.

 Flipper.configure do |config|
   config.adapter # => instance of default Memory adapter

   # Configure it to use the ActiveRecord adapter
   config.adapter do
     require "flipper/adapters/active_record"
     Flipper::Adapters::ActiveRecord.new
   end

   config.adapter # => instance of ActiveRecord adapter
end
# File lib/flipper/configuration.rb, line 25
def adapter(&block)
  if block_given?
    @adapter = block
  else
    @adapter.call
  end
end
default(&block) click to toggle source

Controls the default instance for flipper. When used with a block it assigns a new default block to use to generate an instance. When used without a block, it performs a block invocation and returns the result.

configuration = Flipper::Configuration.new
configuration.default # => Flipper::DSL instance using Memory adapter

# sets the default block to generate a new instance using ActiveRecord adapter
configuration.default do
  require "flipper/adapters/active_record"
  Flipper.new(Flipper::Adapters::ActiveRecord.new)
end

configuration.default # => Flipper::DSL instance using ActiveRecord adapter

Returns result of default block invocation if called without block. If called with block, assigns the default block.

# File lib/flipper/configuration.rb, line 50
def default(&block)
  if block_given?
    @default = block
  else
    @default.call
  end
end