Jon Portnoy > Bot-Cobalt-0.016002 > Bot::Cobalt::Core::Role::Singleton

Download:
Bot-Cobalt-0.016002.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.016002   Source  

NAME ^

Bot::Cobalt::Core::Role::Singleton

SYNOPSIS ^

  package MySingleton;
  use Moo;  
  with 'Bot::Cobalt::Core::Role::Singleton';

DESCRIPTION ^

A basic Moo::Role implementing singletons for Bot::Cobalt.

A singleton is a class that can only be instanced once.

Classes can consume this Role in order to gain the following methods:

instance

The instance method returns the existing singleton if there is one, or calls new to create one if not. Consumers should be instanced by calling instance rather than new:

  ## Bot::Cobalt::Core is a singleton:
  my $core = Bot::Cobalt::Core->instance(
    cfg => Bot::Cobalt::Conf->new(etc => $etc),
    var => $var,
  );

Arguments are passed to new() unmodified (if we are creating a new singleton).

has_instance

Returns boolean false if there is currently no instance.

clear_instance

Clear the singleton instance.

AUTHOR ^

Jon Portnoy <avenj@cobaltirc.org>

(Essentially the same as other singleton implementations such as Class::Singleton, MooseX::Singleton, MooX::Singleton etc)

syntax highlighting: