Module: Skylight::Core::Fanout

Defined in:
lib/skylight/core/fanout.rb

Class Method Summary collapse

Class Method Details

.broken!Object



42
43
44
# File 'lib/skylight/core/fanout.rb', line 42

def self.broken!
  registered.each(&:broken!)
end

.done(spans, meta = nil) ⇒ Object



36
37
38
39
40
# File 'lib/skylight/core/fanout.rb', line 36

def self.done(spans, meta=nil)
  spans.reverse.each do |(target, span)|
    target.done(span, meta)
  end
end

.instrument(*args) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/skylight/core/fanout.rb', line 21

def self.instrument(*args)
  if block_given?
    spans = instrument(*args)
    begin
      yield spans
    ensure
      done(spans)
    end
  else
    registered.map do |r|
      [r, r.instrument(*args)]
    end
  end
end

.register(obj) ⇒ Object



9
10
11
# File 'lib/skylight/core/fanout.rb', line 9

def self.register(obj)
  registered.push(obj)
end

.registeredObject



5
6
7
# File 'lib/skylight/core/fanout.rb', line 5

def self.registered
  @registered ||= []
end

.trace(*args) ⇒ Object



17
18
19
# File 'lib/skylight/core/fanout.rb', line 17

def self.trace(*args)
  registered.map{|r| r.trace(*args) }
end

.unregister(obj) ⇒ Object



13
14
15
# File 'lib/skylight/core/fanout.rb', line 13

def self.unregister(obj)
  registered.delete(obj)
end