Sha256: b80a4e0707ebb84cce597e14b113f2a78bfe34d99f38c592a90c3b6520520c03

Contents?: true

Size: 955 Bytes

Versions: 11

Compression:

Stored size: 955 Bytes

Contents

require 'bundler/setup'
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

11 entries across 11 versions & 1 rubygems

Version Path
flipper-0.25.0 examples/instrumentation.rb
flipper-0.24.1 examples/instrumentation.rb
flipper-0.24.0 examples/instrumentation.rb
flipper-0.23.1 examples/instrumentation.rb
flipper-0.23.0 examples/instrumentation.rb
flipper-0.22.2 examples/instrumentation.rb
flipper-0.22.1 examples/instrumentation.rb
flipper-0.22.0 examples/instrumentation.rb
flipper-0.21.0 examples/instrumentation.rb
flipper-0.21.0.rc2 examples/instrumentation.rb
flipper-0.21.0.rc1 examples/instrumentation.rb