The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Boilerplater::Symbol - Abstract base class for Boilerplater symbols.

DESCRIPTION

Boilerplater::Symbol serves as an abstract parent class for entities which may live in the global namespace, such as classes, functions, methods, and variables.

CONSTRUCTOR

    my $symbol = MySymbol->new(
        parcel      => $parcel,                             # default: special 
        exposure    => $exposure,                           # required
        class_name  => "Crustacean::Lobster::LobsterClaw",  # default: undef
        class_cnick => "LobClaw",                           # default: special
        micro_sym   => "rubber_band"                        # required
    );
  • parcel - A Boilerplater::Parcel, or a string that can be used to create/retrieve one. If not supplied, will be assigned to the default Parcel.

  • exposure - The scope in which the symbol is exposed. Must be 'public', 'parcel', 'private', or 'local'.

  • class_name - A optional class name, consisting of one or more components separated by "::". Each component must start with a capital letter, contain at least one lower-case letter, and consist entirely of the characters [A-Za-z0-9].

  • class_cnick - The C nickname associated with the supplied class name. If not supplied, will be derived if possible from class_name by extracting the last class name component.

  • micro_sym - The local identifier for the symbol.

OBJECT METHODS

get_parcel get_class_name get_class_cnick micro_sym

Getters.

get_prefix get_Prefix get_PREFIX

Get a string prefix, delegating to parcel member var.

public parcel private local

    if    ( $sym->public ) { do_x() }
    elsif ( $sym->parcel ) { do_y() }

Indicate whether the symbol matches a given access level.

equals

    do_stuff() if $sym->equals($other_sym);

Returns true if the symbols are "equal", false otherwise.

short_sym

    # e.g. "LobClaw_rubber_band"
    print $symbol->short_sym;

Returns the C representation for the symbol minus the parcel's prefix.

full_sym

    # e.g. "crust_LobClaw_rubber_band"
    print $symbol->full_sym;

Returns the fully qualified C representation for the symbol.

COPYRIGHT AND LICENSE

Copyright 2008-2009 Marvin Humphrey

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.