Sha256: 0c8d7942014c283b840e82702af6edcff020e9028651d7a77e4808e053b58f87

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

#
# cim/method.rb - class CIM::Method
#
# A pure-Ruby implementation of the CIM meta model.
#
# Copyright (c) 2010 Klaus Kämpf <kkaempf@suse.de>
#
# Licensed under the Ruby license
#
module CIM
  #
  # A Method defines a function member of a Class.
  #
  # For data members, see Property.
  #
  class Method < CIM::ClassFeature
    #
    # Create a Method with return type (Type) and name (String), optional Qualifiers and parameters (Property)
    #
    # call-seq:
    #   Method.new(:boolean, "do_something")
    #   Method.new(:boolean, "do_something", qualifiers)
    #   Method.new(:boolean, "do_something", qualifiers, parameters)
    #
    def initialize type, name, qualifiers = nil, parameters = nil
      @parameters = parameters
      super type,name,qualifiers
    end
    #
    # parameters accessor
    #
    def parameters
      @parameters || []
    end
    #
    # Makes a Method recognizable in the set of Class features.
    #
    def method?
      true
    end
    #
    # returns a string representation in MOF syntax format
    #
    def to_s
      p = parameters.join(", ")
      "#{super}(#{p})"
    end
    #
    # Check for qualifiers
    #
    #  # check for existance
    #  method.qualifier? -> true or false
    #
    #  # check value
    #  method.description -> String or nil
    #
    def method_missing name, *args
      if name.to_s[-1,1] == "?"
        @qualifiers && @qualifiers.include?(name.to_s[0...-1])
      else
        (@qualifiers[name].value || @qualifiers[name].declaration.default) rescue nil
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cim-1.4.2 lib/cim/method.rb
cim-1.4.1 lib/cim/method.rb