Sha256: ce284df86749a33f2e1bce15deebd8071c5462aa0567c24da9f065d4f46bce83

Contents?: true

Size: 987 Bytes

Versions: 16

Compression:

Stored size: 987 Bytes

Contents

require File.expand_path('../example_setup', __FILE__)

require 'securerandom'
require 'active_support/notifications'

class FlipperSubscriber
  def call(*args)
    event = ActiveSupport::Notifications::Event.new(*args)
    puts event.inspect
  end

  ActiveSupport::Notifications.subscribe(/flipper/, new)
end

require 'flipper'
require 'flipper/adapters/instrumented'

# pick an adapter
adapter = Flipper::Adapters::Memory.new

# instrument it if you want, if not you still get the feature instrumentation
instrumented = Flipper::Adapters::Instrumented.new(adapter, :instrumenter => ActiveSupport::Notifications)

# get a handy dsl instance
flipper = Flipper.new(instrumented, :instrumenter => ActiveSupport::Notifications)

# grab a feature
search = flipper[:search]

perform = lambda do
  # check if that feature is enabled
  if search.enabled?
    puts 'Search away!'
  else
    puts 'No search for you!'
  end
end

perform.call
puts 'Enabling Search...'
search.enable
perform.call

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
flipper-0.20.4 examples/instrumentation.rb
flipper-0.20.3 examples/instrumentation.rb
flipper-0.20.2 examples/instrumentation.rb
flipper-0.20.1 examples/instrumentation.rb
flipper-0.20.0 examples/instrumentation.rb
flipper-0.20.0.beta3 examples/instrumentation.rb
flipper-0.20.0.beta2 examples/instrumentation.rb
flipper-0.20.0.beta1 examples/instrumentation.rb
flipper-0.19.1 examples/instrumentation.rb
flipper-0.19.0 examples/instrumentation.rb
flipper-0.18.0 examples/instrumentation.rb
flipper-0.17.2 examples/instrumentation.rb
flipper-0.17.1 examples/instrumentation.rb
flipper-0.16.2 examples/instrumentation.rb
flipper-0.16.1 examples/instrumentation.rb
flipper-0.16.0 examples/instrumentation.rb