NAME

YaPI - common functions for modules implementing YaST API

base functions

These are to be used by modules that use YaPI as their base class.

  use YaPI;
  our @ISA = ("YaPI");

Interface

Returns a reference to a list of hashes describing the functions in the current package. The information is taken from TYPEINFO.

  [
   {
      functionName => "contains",
      return => "boolean",
      argument => [ "string", ["list", "string"]],
   },
   ...
  ]

Version

Returns the version of the current package.

Supports

Greps @CAPABILITIES of the current package.

  if (YaPI::Foo->Supports ("frobnicate")) {...}

SetError

Logs an error and remembers it for "Error".

Error map:

  {
    code                # mandatory, an uppercase short string
    summary
    description
  # if all of the following are missing, caller () is used
    package
    file
    line
  }

Error

Returns the error set by "SetError"

i18n

use YaPI;

textdomain "mydomain";

Just use a double underscore to mark text to be translated: __("my text"). Both textdomain and __ are exported to the calling package.

These must not be used any longer because they collide with symbols exported by this module:

 #  use Locale::gettext;    # textdomain
 #  sub _ { ... }

These don't hurt but aren't necessary:

 #  use POSIX ();
 #  POSIX::setlocale(LC_MESSAGES, "");    # YaPI calls it itself now

textdomain

Calls Locale::gettext::textdomain and also remembers an association between the calling package and the domain. Later calls of __ use this domain as an argument to dgettext.

__ (double underscore)

Calls Locale::gettext::dgettext, supplying the textdomain of the calling package (set by calling textdomain).

Note: the single underscore function (_) will be removed because it is automaticaly exported to main:: which causes namespace conflicts.