Sha256: d6236ecf82c89fb6b2423d63649448d453b2a87f87804e77bbec119354b4b9cd

Contents?: true

Size: 1.23 KB

Versions: 4

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module GlobalRegistry # :nodoc:
  module Bindings # :nodoc:
    class Testing
      class << self
        attr_accessor :__test_mode

        def __set_test_mode(mode)
          if block_given?
            current_mode = __test_mode
            begin
              self.__test_mode = mode
              yield
            ensure
              self.__test_mode = current_mode
            end
          else
            self.__test_mode = mode
          end
        end

        def skip_workers!(&block)
          __set_test_mode(:skip, &block)
        end

        def disable_test_helper!(&block)
          __set_test_mode(:disable, &block)
        end

        def enabled?
          __test_mode != :disable
        end

        def disabled?
          __test_mode == :disable
        end

        def skip?
          __test_mode == :skip
        end
      end
    end

    class Worker
      class << self
        alias_method :perform_async_real, :perform_async

        def perform_async(*args)
          return if GlobalRegistry::Bindings::Testing.skip?
          perform_async_real(*args)
        end
      end
    end
  end
end

# Default to disabling testing helpers
GlobalRegistry::Bindings::Testing.disable_test_helper!

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
global-registry-bindings-0.7.2 lib/global_registry_bindings/testing.rb
global-registry-bindings-0.7.1 lib/global_registry_bindings/testing.rb
global-registry-bindings-0.7 lib/global_registry_bindings/testing.rb
global-registry-bindings-0.6.3 lib/global_registry_bindings/testing.rb