Skip to content

deriv-com/perl-MooseX-Role-Registry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

MooseX::Role::Registry

SYNOPSYS

package Foo::Registry;
use Moose;
with 'MooseX::Role::Registry';

sub config_file {
    return '/foo_objects.yml';
}

sub build_registry_object {
    my $self   = shift;
    my $name   = shift;
    my $values = shift || {};

    return Foo->new({
        name                   => $name,
        %$values
    });
}

package main;
my $registry = Foo::Registry->instance;
my $foo = $registry->get('bar');

DESCRIPTION

This role watches a file which describes a hashref of objects in yml format. This hashref is called a "registry" because the objects in the hashref can be requested by name using get.

Implementations should be singletons! In other words, when using a class that is derived from MooseX::Role::Registry, you shouldn't call new. Instead, just get the singelton object using the instance method and call get on the result.

REQUIRED SUBCLASS METHODS

config_filename

Returns the filesystem path of the default location of the configuration file that is watched by a given consumer of MooseX::Role::Registry

build_registry_object

A function to create an object of the registy entry

METHODS

get($name)

Returns the registered entity called $name, or undef if none exists.

all

Returns all of the objects stored in the registry. Useful for generic grep() calls.

keys

Returns a list of all of the (lookup) keys of objects currently registered in $self.

registry_fixup

A callback which allows subclasses to modify the hashref of loaded objects before they are stored in memory as part of $self.

DEPENDENCIES

SOURCE CODE

GitHub

AUTHOR

binary.com, <perl at binary.com>

BUGS

Please report any bugs or feature requests to bug-moosex-role-registry at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-Role-Registry. We will be notified, and then you'll automatically be notified of progress on your bug as we make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc MooseX::Role::Registry

You can also look for information at:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •