Class: Instana::Activator

Inherits:
Object
  • Object
show all
Defined in:
lib/instana/activator.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.activatorsObject (readonly)

Returns the value of attribute activators.



7
8
9
# File 'lib/instana/activator.rb', line 7

def activators
  @activators
end

.trace_pointObject (readonly)

Returns the value of attribute trace_point.



7
8
9
# File 'lib/instana/activator.rb', line 7

def trace_point
  @trace_point
end

Class Method Details

.callObject



20
21
22
23
24
# File 'lib/instana/activator.rb', line 20

def call
  @activators ||= []
  activated, @activators = @activators.partition(&:call)
  activated
end

.inherited(subclass) ⇒ Object



26
27
28
29
30
31
# File 'lib/instana/activator.rb', line 26

def inherited(subclass)
  super(subclass)

  @activators ||= []
  @activators << subclass.new
end

.startObject



9
10
11
12
13
14
15
16
17
18
# File 'lib/instana/activator.rb', line 9

def start
  # :nocov:
  @trace_point = TracePoint.new(:end) do
    activated = ::Instana::Activator.call
    ::Instana.logger.debug { "Activated #{activated.join(', ')}" } unless activated.empty?
  end

  @trace_point.enable if enabled?
  # :nocov:
end

Instance Method Details

#callObject



40
41
42
# File 'lib/instana/activator.rb', line 40

def call
  instrument if can_instrument?
end