Sha256: a7bb6f22db669a9ea45460bb47d8db0a9e48db7e2d8514ebc4018e23979c11fa
Contents?: true
Size: 943 Bytes
Versions: 23
Compression:
Stored size: 943 Bytes
Contents
module Flipper module Instrumenters # Instrumentor that is useful for tests as it stores each of the events that # are instrumented. class Memory Event = Struct.new(:name, :payload, :result) attr_reader :events def initialize @events = [] end def instrument(name, payload = {}) # Copy the payload to guard against later modifications to it, and to # ensure that all instrumentation code uses the payload passed to the # block rather than the one passed to #instrument. payload = payload.dup result = (yield payload if block_given?) @events << Event.new(name, payload, result) result end def events_by_name(name) @events.select { |event| event.name == name } end def event_by_name(name) events_by_name(name).first end def reset @events = [] end end end end
Version data entries
23 entries across 23 versions & 1 rubygems