class ZabbixAPI_Base

Public Class Methods

action(sym, &block) click to toggle source
# File api_classes/api_dsl.rb, line 408
def self.action(sym, &block)
  add(sym,&block)
end
actions(*sym) click to toggle source
# File api_classes/api_dsl.rb, line 412
def self.actions(*sym)
  sym.each {|s| add(s)}
end
add(sym,&block) click to toggle source
# File api_classes/api_dsl.rb, line 439
def self.add(sym,&block)
  @api_methods={} if @api_methods.nil?
  @api_methods[sym]=ZabbixAPI_Method.new(self.to_s,sym.to_s)
  @api_methods[sym].instance_eval(&block) if !block.nil?

  #Create a method definition for the parameter in question.
  #params is not treated as an array, the splat operator
  #is there to allow for no parameters to be passed
  define_method(sym) do |*params|
    #The splat operator ensures we get an array, but we need
    #to test to ensure we receive one hash parameter
    if (params.length>1)
      raise ArgumentError.new("Hash or one argument expected for #{self.class}.#{sym.to_s}, received: #{params.inspect}")
    end
    self.class.api_methods[sym].do(@server,params.first||{})
  end
end
api_alias(from,to) click to toggle source

Define an alias for an existing method. From: the new method name To: the existing method which the alias “from” will point to

# File api_classes/api_dsl.rb, line 428
def self.api_alias(from,to)
  @api_aliases={} if @api_aliases.nil?
  @api_aliases[from]=to

  @api_methods[from]=@api_methods[to]

  define_method(from) do |params|
    self.class.api_methods[from].do(@server,params)
  end
end
api_aliases() click to toggle source
# File api_classes/api_dsl.rb, line 420
def self.api_aliases
  @api_aliases={} if @api_aliases.nil?
  @api_aliases
end
api_methods() click to toggle source
# File api_classes/api_dsl.rb, line 416
def self.api_methods
  @api_methods
end
method_missing(sym,&block) click to toggle source
# File api_classes/api_dsl.rb, line 404
def self.method_missing(sym,&block)
  add(sym,&block)
end
new(server) click to toggle source
# File api_classes/api_dsl.rb, line 380
def initialize(server)
  @server=server
end

Public Instance Methods

api_aliases() click to toggle source
# File api_classes/api_dsl.rb, line 388
def api_aliases
  self.class.api_aliases
end
api_methods() click to toggle source
# File api_classes/api_dsl.rb, line 384
def api_methods
  self.class.api_methods.keys
end
required_params(sym,ver=nil) click to toggle source
# File api_classes/api_dsl.rb, line 398
def required_params(sym,ver=nil)
  api_method=self.class.api_methods[sym]
  return nil if api_method.nil?
  api_method.get_required_params(ver)
end
valid_params(sym,ver=nil) click to toggle source
# File api_classes/api_dsl.rb, line 392
def valid_params(sym,ver=nil)
  api_method=self.class.api_methods[sym]
  return nil if api_method.nil?
  api_method.get_valid_params(ver)
end