lib/l2meter/thread_safe.rb in l2meter-0.4.0 vs lib/l2meter/thread_safe.rb in l2meter-0.4.1

- old
+ new

@@ -9,11 +9,10 @@ extend Forwardable EMITTER_METHODS = %i[ batch configuration - context count log measure push_context sample @@ -30,16 +29,31 @@ @emitter = emitter.freeze end def_delegators :receiver, *EMITTER_METHODS + def context(*args, &block) + value = emitter.context(*args, &block) + block_given?? value : clone_with_emitter(value) + end + def disable! @disabled = true end + protected + + attr_writer :emitter + private attr_reader :emitter + + def clone_with_emitter(emitter) + clone.tap do |ts| + ts.emitter = emitter + end + end def receiver @disabled ? null_emitter : current_emitter end