class Dogscaler::Check

Constants

NoPointsSetError
NoResultsSetError

Public Instance Methods

reduce!() click to toggle source
# File lib/dogscaler/query.rb, line 29
def reduce!
  raise NoPointsSetError, 'No points are set on this object' if points.empty?
  logger.debug "Apply transform #{transform}"
  case transform
  when 'avg'
    result = points.inject(0.0) { |sum,el| sum + el } / points.size
  when 'max'
    result = points.max
  when 'min'
    result = points.min
  when 'last'
    result = points[-1]
  when 'sum'
    result = points.reduce(0, :+)
  when 'count'
    result = points.count
  else
    logger.error 'Invalid transform: #{transform}'
    exit 1
  end
  logger.debug "Transformed value #{result}"
  self.result = result
end
status() click to toggle source
# File lib/dogscaler/query.rb, line 14
def status
  raise NoResultSetError, 'No results set on this object' if not result
  if self.result > scale_up_threshhold
    logger.debug "Value: #{result} Threshold: #{scale_up_threshhold}."
    1
  elsif self.result < scale_down_threshhold
    logger.debug "Value: #{result} Threshold: #{scale_down_threshhold}."
    -1
  else
    logger.debug "Value: #{result} Max Threshold: #{scale_up_threshhold}."
    logger.debug "Value: #{result} Min Threshold: #{scale_down_threshhold}."
    0
  end
end