Module: Traces

Defined in:
lib/traces/backend.rb,
lib/traces/context.rb,
lib/traces/version.rb,
lib/traces/provider.rb,
lib/traces/backend/test.rb,
lib/traces/backend/capture.rb,
lib/traces/backend/console.rb

Overview

Released under the MIT License. Copyright, 2021-2023, by Samuel Williams.

Defined Under Namespace

Modules: Backend, Provider Classes: Context

Constant Summary collapse

VERSION =
"0.11.1"

Class Method Summary collapse

Class Method Details

.enabled?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/traces/provider.rb', line 10

def self.enabled?
	self.const_defined?(:Backend)
end

.Provider(klass, &block) ⇒ Object

Extend the specified class in order to emit traces.



29
30
31
32
33
34
35
36
37
# File 'lib/traces/provider.rb', line 29

def self.Provider(klass, &block)
	klass.extend(Singleton)
	provider = klass.traces_provider
	klass.prepend(provider)
	
	provider.module_exec(&block) if block_given?
	
	return provider
end

.require_backend(env = ENV) ⇒ Object

Require a specific trace backend.



8
9
10
11
12
13
14
# File 'lib/traces/backend.rb', line 8

def self.require_backend(env = ENV)
	if backend = env['TRACES_BACKEND']
		require(backend)
		
		Traces.extend(Backend::Interface)
	end
end