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