Sha256: 6ec1006e77e27af5459083d6943f4f8fa766f07afb67e7f0762e7262f350a199

Contents?: true

Size: 799 Bytes

Versions: 7

Compression:

Stored size: 799 Bytes

Contents

# frozen_string_literal: true

module StaticTracing
  class Tracers
    class InvalidTracerError < StandardError
      def initialize
        msg = <<~MSG
          You need to add a valid tracer.

          To create a valid tracer please inherit from StaticTracing::Tracer::Base
          and follow the guide on how to create tracers
        MSG
        super(msg)
      end
    end

    class << self
      def add(tracer)
        raise InvalidTracerError unless tracer < StaticTracing::Tracer::Base
        tracers << tracer
      end

      def enable!
        tracers.each(&:enable!)
      end

      def disable!
        tracers.each(&:disable!)
      end

      def clean
        @tracers = []
      end

      private

      def tracers
        @tracers ||= []
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ruby-static-tracing-0.0.13 lib/ruby-static-tracing/tracers.rb
ruby-static-tracing-0.0.12 lib/ruby-static-tracing/tracers.rb
ruby-static-tracing-0.0.11 lib/ruby-static-tracing/tracers.rb
ruby-static-tracing-0.0.10 lib/ruby-static-tracing/tracers.rb
ruby-static-tracing-0.0.9 lib/ruby-static-tracing/tracers.rb
ruby-static-tracing-0.0.8 lib/ruby-static-tracing/tracers.rb
ruby-static-tracing-0.0.7 lib/ruby-static-tracing/tracers.rb