class Nagios::Check::Range
Attributes
alert_on[R]
end_infinity[R]
end_value[R]
start_infinity[R]
start_value[R]
Public Class Methods
new(range)
click to toggle source
# File lib/nagios-check/range.rb, line 7 def initialize(range) @start_value = 0 @end_value = 0 @start_infinity = false @end_infinity = false @alert_on = :inside parse_range_string(range.to_s) end
Public Instance Methods
check_range(value)
click to toggle source
# File lib/nagios-check/range.rb, line 16 def check_range(value) value = value.to_f result = if !start_infinity && end_infinity start_value <= value elsif start_infinity && !end_infinity value <= end_value else start_value <= value && value <= end_value end alert_on == :outside ? result : !result end
Private Instance Methods
parse_range_string(range)
click to toggle source
# File lib/nagios-check/range.rb, line 30 def parse_range_string(range) @start_infinity = true if range.gsub!(/^~/, '') @alert_on = :outside if range.gsub!(/^@/, '') regexp = '([+\-]?[\d+\.]+)' case range when /^:?(#{regexp})$/ # :10 or 10 @end_value = Float($1) when /^#{regexp}:#{regexp}$/ # 10:20 @start_value = Float($1) @end_value = Float($2) when /^#{regexp}:$/ # 10: @start_value = Float($1) @end_infinity = true else raise TypeError, "Unknown threshold format. Please check the documentation http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT" end end