class Flipper::Adapters::Instrumented
Internal: Adapter that wraps another adapter and instruments all adapter operations.
Constants
- InstrumentationName
Private: The name of instrumentation events.
Attributes
instrumenter[R]
Private: What is used to instrument all the things.
name[R]
Public: The name of the adapter.
Public Class Methods
new(adapter, options = {})
click to toggle source
Internal: Initializes a new adapter instance.
adapter - Vanilla adapter instance to wrap.
options - The Hash of options.
:instrumenter - What to use to instrument all the things.
Calls superclass method
# File lib/flipper/adapters/instrumented.rb, line 27 def initialize(adapter, options = {}) super(adapter) @adapter = adapter @name = :instrumented @instrumenter = options.fetch(:instrumenter, Instrumenters::Noop) end
Public Instance Methods
add(feature)
click to toggle source
Public
# File lib/flipper/adapters/instrumented.rb, line 47 def add(feature) payload = { operation: :add, adapter_name: @adapter.name, feature_name: feature.name, } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.add(feature) end end
clear(feature)
click to toggle source
Public
# File lib/flipper/adapters/instrumented.rb, line 73 def clear(feature) payload = { operation: :clear, adapter_name: @adapter.name, feature_name: feature.name, } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.clear(feature) end end
disable(feature, gate, thing)
click to toggle source
Public
# File lib/flipper/adapters/instrumented.rb, line 136 def disable(feature, gate, thing) payload = { operation: :disable, adapter_name: @adapter.name, feature_name: feature.name, gate_name: gate.name, } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.disable(feature, gate, thing) end end
enable(feature, gate, thing)
click to toggle source
Public
# File lib/flipper/adapters/instrumented.rb, line 122 def enable(feature, gate, thing) payload = { operation: :enable, adapter_name: @adapter.name, feature_name: feature.name, gate_name: gate.name, } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.enable(feature, gate, thing) end end
features()
click to toggle source
Public
# File lib/flipper/adapters/instrumented.rb, line 35 def features payload = { operation: :features, adapter_name: @adapter.name, } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.features end end
get(feature)
click to toggle source
Public
# File lib/flipper/adapters/instrumented.rb, line 86 def get(feature) payload = { operation: :get, adapter_name: @adapter.name, feature_name: feature.name, } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.get(feature) end end
get_all()
click to toggle source
# File lib/flipper/adapters/instrumented.rb, line 110 def get_all payload = { operation: :get_all, adapter_name: @adapter.name, } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.get_all end end
get_multi(features)
click to toggle source
# File lib/flipper/adapters/instrumented.rb, line 98 def get_multi(features) payload = { operation: :get_multi, adapter_name: @adapter.name, feature_names: features.map(&:name), } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.get_multi(features) end end
remove(feature)
click to toggle source
Public
# File lib/flipper/adapters/instrumented.rb, line 60 def remove(feature) payload = { operation: :remove, adapter_name: @adapter.name, feature_name: feature.name, } @instrumenter.instrument(InstrumentationName, payload) do |payload| payload[:result] = @adapter.remove(feature) end end