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
Moose::Role
namespace::autoclean
Syntax::Keyword::Try
YAML::XS
SOURCE CODE
GitHub <https://github.com/binary-com/perl-MooseX-Role-Registry>
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:
* RT: CPAN's request tracker (report bugs here)
http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-Role-Registry
* AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/MooseX-Role-Registry
* CPAN Ratings
http://cpanratings.perl.org/d/MooseX-Role-Registry
* Search CPAN
http://search.cpan.org/dist/MooseX-Role-Registry/