module Telemetry::Sink
Constants
- Error
- Record
Public Class Methods
included(cls)
click to toggle source
# File lib/telemetry/sink.rb, line 7 def self.included(cls) cls.extend RecordMacro cls.extend RecordAnyMacro end
Public Instance Methods
one_record(&blk)
click to toggle source
# File lib/telemetry/sink.rb, line 115 def one_record(&blk) records = self.records unless blk.nil? records = records.select(&blk) end case records.count when 0 return nil when 1 return records[0] else raise Error, "More than one matching record was recorded" end end
record(signal, time, data=nil, force: nil)
click to toggle source
# File lib/telemetry/sink.rb, line 88 def record(signal, time, data=nil, force: nil) force ||= false record = nil if force || record?(signal) record = Record.new signal, time, data records << record end record end
record?(signal)
click to toggle source
# File lib/telemetry/sink.rb, line 76 def record?(signal) record = false if record_any? record = true else if records? signal record = true end end record end
record_any?()
click to toggle source
# File lib/telemetry/sink.rb, line 3 def record_any? false end
recorded?(&blk)
click to toggle source
# File lib/telemetry/sink.rb, line 99 def recorded?(&blk) if blk.nil? return !records.empty? else return records.any?(&blk) end end
recorded_once?(&blk)
click to toggle source
# File lib/telemetry/sink.rb, line 107 def recorded_once?(&blk) if blk.nil? return records.count == 1 else return records.one?(&blk) end end
records()
click to toggle source
# File lib/telemetry/sink.rb, line 68 def records @records ||= [] end
records?(signal)
click to toggle source
# File lib/telemetry/sink.rb, line 72 def records?(signal) respond_to? "record_#{signal}" end