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