module Telemetry::Sink::RecordMacro
Public Instance Methods
record_macro(signal)
click to toggle source
# File lib/telemetry/sink.rb, line 13 def record_macro(signal) record_method_name = "record_#{signal}" send(:define_method, record_method_name) do |time, data| record signal, time, data end subset_method_name = "#{signal}_records" send(:define_method, subset_method_name) do |&blk| subset = records.select { |r| r.signal == signal } unless blk.nil? subset = subset.select(&blk) end subset end detect_method_name = "recorded_#{signal}?" send(:define_method, detect_method_name) do |&blk| subset = send(subset_method_name) if blk.nil? return !subset.empty? else return subset.any?(&blk) end end detect_once_method_name = "recorded_#{signal}_once?" send(:define_method, detect_once_method_name) do |&blk| subset = send(subset_method_name) if blk.nil? return subset.count == 1 else return subset.one?(&blk) end end end
Also aliased as: record