class Salus::BaseRenderer
Public Class Methods
descendants()
click to toggle source
# File lib/salus/renderer/base.rb, line 9 def self.descendants @@descendants || [] end
inherited(subclass)
click to toggle source
# File lib/salus/renderer/base.rb, line 4 def self.inherited(subclass) @@descendants ||= [] @@descendants << subclass end
new(opts={})
click to toggle source
# File lib/salus/renderer/base.rb, line 13 def initialize(opts={}) @separator = opts.fetch(:separator, '.') @allow_mute = opts.fetch(:allow_mute, false) end
Public Instance Methods
iterate(node, prefix="", &block)
click to toggle source
# File lib/salus/renderer/base.rb, line 23 def iterate(node, prefix="", &block) case node when Hash node.each do |name, item| iterate(item, join_name(prefix, name), &block) end when Salus::Group node.each(@allow_mute) do |name, metric| iterate(metric, join_name(prefix, name), &block) end if node.has_subgroups? node.groups.each do |name, group| iterate(group, join_name(prefix, name), &block) end end when Salus::Metric block.call(prefix, node) unless node.expired? else log WARN, "Unknown node type #{node.class}" end end
render(data)
click to toggle source
# File lib/salus/renderer/base.rb, line 18 def render(data) # Implement renderer raise "Unimplemented" end
Protected Instance Methods
join_name(prefix, name)
click to toggle source
# File lib/salus/renderer/base.rb, line 46 def join_name(prefix, name) prefix + (prefix.empty? ? '' : @separator) + name end