API reference - Class Macro

Notation used in Ruby API documentation

Description: A macro class

This class is provided mainly to support generation of template macros in the DSL interpreter framework provided by MacroInterpreter. The implementation may be enhanced in future versions and provide access to macros stored inside KLayout's macro repository.

Public constructors

MacronewCreates a new object of this class

Public methods

[const]stringcategoryGets the category tags
voidcategory=(string string)Sets the category tags string
voidcreateEnsures the C++ object is created
[const]stringdescriptionGets the description text
voiddescription=(string description)Sets the description text
voiddestroyExplicitly destroy the object
[const]booldestroyed?Returns a value indicating whether the object was already destroyed
[const]stringepilogGets the epilog code
voidepilog=(string string)Sets the epilog
[const]stringgroup_nameGets the menu group name
voidgroup_name=(string string)Sets the menu group name
[const]boolis_const_object?Returns a value indicating whether the reference is a const reference
[const]stringmenu_pathGets the menu path
voidmenu_path=(string string)Sets the menu path
[const]stringpathGets the path of the macro
[const]stringprologGets the prolog code
voidprolog=(string string)Sets the prolog
voidshow_in_menu=(bool flag)Sets a value indicating whether the macro shall be shown in the menu
[const]boolshow_in_menu?Gets a value indicating whether the macro shall be shown in the menu
[const]stringtextGets the macro text
voidtext=(string string)Sets the macro text

Detailed description

[const] string category

Description: Gets the category tags

The category tags string indicates to which categories a macro will belong to. This string is only used for templates currently and is a comma-separated list of category names.

void category=(string string)

Description: Sets the category tags string

See category for details.

void create

Description: Ensures the C++ object is created

Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created.

[const] string description

Description: Gets the description text

The description text of a macro will appear in the macro list. If used as a macro template, the description text can have the format "Group;;Description". In that case, the macro will appear in a group with title "Group".

void description=(string description)

Description: Sets the description text

description:The description text.

See description for details.

void destroy

Description: Explicitly destroy the object

Explicitly destroy the object on C++ side if it was owned by the Ruby interpreter. Subsequent access to this object will throw an exception. If the object is not owned by Ruby, this method will do nothing.

[const] bool destroyed?

Description: Returns a value indicating whether the object was already destroyed

This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself.

[const] string epilog

Description: Gets the epilog code

The epilog is executed after the actual code is executed. Interpretation depends on the implementation of the DSL interpreter for DSL macros.

void epilog=(string string)

Description: Sets the epilog

See epilog for details.

[const] string group_name

Description: Gets the menu group name

If a group name is specified and show_in_menu? is true, the macro will appear in a separate group (separated by a separator) together with other macros sharing the same group.

void group_name=(string string)

Description: Sets the menu group name

See group_name for details.

[const] bool is_const_object?

Description: Returns a value indicating whether the reference is a const reference

This method returns true, if self is a const reference. In that case, only const methods may be called on self.

[const] string menu_path

Description: Gets the menu path

If a menu path is specified and show_in_menu? is true, the macro will appear in the menu at the specified position.

void menu_path=(string string)

Description: Sets the menu path

See menu_path for details.

[static] Macro new

Description: Creates a new object of this class

[const] string path

Description: Gets the path of the macro

The path is the path where the macro is stored, starting with an abstract group identifier. The path is used to identify the macro in the debugger for example.

[const] string prolog

Description: Gets the prolog code

The prolog is executed before the actual code is executed. Interpretation depends on the implementation of the DSL interpreter for DSL macros.

void prolog=(string string)

Description: Sets the prolog

See prolog for details.

void show_in_menu=(bool flag)

Description: Sets a value indicating whether the macro shall be shown in the menu

[const] bool show_in_menu?

Description: Gets a value indicating whether the macro shall be shown in the menu

[const] string text

Description: Gets the macro text

The text is the code executed by the macro interpreter. Depending on the DSL interpreter, the text can be any kind of code.

void text=(string string)

Description: Sets the macro text

See text for details.