class Nagi::Plugin

Attributes

fallback[RW]
name[RW]
optionparser[RW]
prefix[RW]
version[RW]

Public Class Methods

new() click to toggle source
# File lib/nagi/plugin.rb, line 5
def initialize
  @optionparser = Nagi::OptionParser.new
end

Public Instance Methods

check(options) click to toggle source
# File lib/nagi/plugin.rb, line 9
def check(options)
  raise NotImplementedError.new('No check defined')
end
name=(value) click to toggle source
# File lib/nagi/plugin.rb, line 13
def name=(value)
  @name = value
  @optionparser.program_name = value
end
run(args) click to toggle source
# File lib/nagi/plugin.rb, line 18
def run(args)
  options = @optionparser.parse(args)
  begin
    status = self.check(options)
  rescue StandardError => e
    status = Nagi::Status::Unknown.new(e.message)
  end
  unless status.is_a?Nagi::Status::Status
  status = @fallback || Nagi::Status::Unknown.new('Check did not provide a status')
  end
  return status
end
run!() click to toggle source
# File lib/nagi/plugin.rb, line 31
def run!
  begin
    status = run(ARGV)
    puts "#{@prefix.upcase if @prefix} #{status}".strip
    exit status.code
  rescue ArgumentError => e
    STDERR.puts("Error: #{e.message}")
    puts ""
    puts @optionparser
    exit 4
  end
end
version=(value) click to toggle source
# File lib/nagi/plugin.rb, line 44
def version=(value)
  @version = value
  @optionparser.version = value
end