Context::Set::Manager - A manager for your Context::Sets
my $cm = Context::Set::Manager->new(); my $users = $cm->restrict('users'); $users->set_property('page.color' , 'blue'); my $user1 = $cm->restrict('users' , 1 ); ## OR $user1 = $users->restrict(1); $user1->set_property('page.color' , 'pink'); $user1->get_property('page.color'); # pink. $cm->restrict('users' , 2)->get_property('page.color'); # blue ## OR $users->restrict(2)->get_property('page.color'); # blue
Give your manager a Context::Set::Storage subclass at build time. So all managed context persist using this storage.
For example:
my $cm = Context::Set::Manager->new({ storage => an instance of Context::Set::Storage::DBIC }); ...
If your manager lives in a process and a stored value is changed by another process, you can set this to autoreload the managed contexts on access. Use the option autoreload for that (Note that it only makes sense with a Persistent storage (see PERSISTENCE):
my $cm = Context::Set::Manager->new({ storage => an instance of Context::Set::Storage::DBIC, autoreload => 1 });
Note: Performance might be impacted. This will be solved in the future by implementing cachable storages.
Adds the given Context::Set to this manager (in case it was built outside).
Note that if a context with an identical fullname is already there, it will return it. This is to ensure the unicity of contexts within the manager.
Usage:
$context = $cm->manage($context);
Builds a restriction of the universe or of the given context.
Usage: my $users = $cm->restrict('users'); ## This restricts the UNIVERSE my $user1 = $cm->restrict($users, 1); ## This restricts the users. my $user1 = $cm->restrict('users' , 1); ## Same thing my $user1 = $cm->restruct('UNIVERSE/users' , 1); ## Same thing.
Returns the union of the given Context::Sets. You need to give at least two contexts.
Context::Sets can be given by name or by references.
my $ctx = $this->unite('context1' , $context2); my $ctx = $this->unite($context1, 'context2', $context3);
Finds one context by the given name (local or full). Returns undef if nothing is found.
If the name only match a local name and there's more that one Context::Set with this name, the latest one will be returned.
if( my $context = $this->find('a_name') ){ $this->find('UNIVERSE/name1/name2'); if( $this->find($a_context) ){ ## Is this context in this manager
To install Context::Set, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Context::Set
CPAN shell
perl -MCPAN -e shell install Context::Set
For more information on module installation, please visit the detailed CPAN module installation guide.