Sha256: 28b9fbcf78c182eef02090a5ff4a4c5cedbad89d8fda6306f42de5b809e306a7

Contents?: true

Size: 826 Bytes

Versions: 44

Compression:

Stored size: 826 Bytes

Contents

# typed: true
# frozen_string_literal: true

module Tapioca
  module Runtime
    module Trackers
      module Tracker
        extend T::Sig
        extend T::Helpers

        abstract!

        class << self
          extend T::Sig

          sig { params(base: T.all(Tracker, Module)).void }
          def extended(base)
            Trackers.register_tracker(base)
            base.instance_exec do
              @enabled = true
            end
          end
        end

        sig { void }
        def disable!
          @enabled = false
        end

        def enabled?
          @enabled
        end

        def with_disabled_tracker(&block)
          original_state = @enabled
          @enabled = false

          block.call
        ensure
          @enabled = original_state
        end
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 2 rubygems

Version Path
tapioca-0.10.5 lib/tapioca/runtime/trackers/tracker.rb
tapioca-0.10.4 lib/tapioca/runtime/trackers/tracker.rb
tapioca-0.10.3 lib/tapioca/runtime/trackers/tracker.rb
tapioca-0.10.2 lib/tapioca/runtime/trackers/tracker.rb