Parent

Files

Class/Module Index [+]

Quicksearch

God::Metric

Metrics are responsible for holding watch conditions. An instance of Metric is yielded to blocks in the start_if, restart_if, stop_if, and transition methods.

Attributes

conditions[RW]

The Array of Condition instances.

destination[RW]

The destination Hash in canonical hash form. Example: { true => :up, false => :restart}

watch[RW]

The Watch.

Public Class Methods

new(watch, destination = nil) click to toggle source

Initialize a new Metric.

watch - The Watch. destination - The optional destination Hash in canonical hash form.

# File lib/god/metric.rb, line 20
def initialize(watch, destination = nil)
  self.watch = watch
  self.destination = destination
  self.conditions = []
end

Public Instance Methods

condition(kind) click to toggle source

Public: Instantiate the given Condition and pass it into the optional block. Attributes of the condition must be set in the config file.

kind - The Symbol name of the condition.

Returns nothing.

# File lib/god/metric.rb, line 32
def condition(kind)
  # Create the condition.
  begin
    c = Condition.generate(kind, self.watch)
  rescue NoSuchConditionError => e
    abort e.message
  end

  # Send to block so config can set attributes.
  yield(c) if block_given?

  # Prepare the condition.
  c.prepare

  # Test generic and specific validity.
  unless Condition.valid?(c) && c.valid?
    abort "Exiting on invalid condition"
  end

  # Inherit interval from watch if no poll condition specific interval was
  # set.
  if c.kind_of?(PollCondition) && !c.interval
    if self.watch.interval
      c.interval = self.watch.interval
    else
      abort "No interval set for Condition '#{c.class.name}' in Watch " +
            "'#{self.watch.name}', and no default Watch interval from " +
            "which to inherit."
    end
  end

  # Add the condition to the list.
  self.conditions << c
end
disable() click to toggle source

Disable all of this Metric's conditions. Poll conditions will be halted and event/trigger conditions will be deregistered.

Returns nothing.

# File lib/god/metric.rb, line 81
def disable
  self.conditions.each do |c|
    self.watch.detach(c)
  end
end
enable() click to toggle source

Enable all of this Metric's conditions. Poll conditions will be scheduled and event/trigger conditions will be registered.

Returns nothing.

# File lib/god/metric.rb, line 71
def enable
  self.conditions.each do |c|
    self.watch.attach(c)
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.