Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

validation::class::exporter(3pm) [debian man page]

Validation::Class::Exporter(3pm)			User Contributed Perl Documentation			  Validation::Class::Exporter(3pm)

NAME
Validation::Class::Exporter - Simple Exporter for Validation::Class Classes VERSION
version 7.70 SYNOPSIS
package MyApp::Class; use Validation::Class; use Validation::Class::Exporter; Validation::Class::Exporter->apply_spec( routines => ['thing'], # export routines as is settings => [ ... ] # passed to the "load" method, see Validation::Class ); has foo => 0; bld sub { shift->foo(1); }; sub thing { my $args = pop; my $class = shift || caller; # routine as a keyword $class->{config}->{THING} = [$args]; }; package MyApp::Example; use MyApp::Class; thing ['this' => 'that']; package main; my $eg = MyApp::Example->new; # we have lift-off!!! DESCRIPTION
This module (while experimental) encapsulates the exporting of keywords and routines. It applies the Validation::Class framework along with any keyword routines and/or sub-routines specified with the apply_spec() method. It does this by simply by copying the spec into the calling class. To simplify writing exporter modules, "Validation::Class::Exporter" also imports "strict" and "warnings" into your exporter module, as well as into modules that use it. METHODS
apply_spec When you call this method, "Validation::Class::Exporter" builds a custom "import" method on the calling class. The "import" method will export the functions you specify, and can also automatically export "Validation::Class" making the calling class a Validation::Class derived class. This method accepts the following parameters: o routines => [ ... ] This list of function names only will be exported into the calling class exactly as is, the functions can be used traditionally or as keywords so their parameter handling should be configured accordingly. o settings => [ ... ] This list of key/value pair will be passed to the load method imported from "Validation::Class::load" and will be applied on the calling class. This approach affords you some trickery in that you can utilize the load method to apply the current class' configuration to the calling class' configuration, etc. AUTHOR
Al Newkirk <anewkirk@ana.io> COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Al Newkirk. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-06-28 Validation::Class::Exporter(3pm)

Check Out this Related Man Page

Moose::Cookbook::Extending::Recipe4(3)			User Contributed Perl Documentation		    Moose::Cookbook::Extending::Recipe4(3)

NAME
Moose::Cookbook::Extending::Recipe4 - Acting like Moose.pm and providing sugar Moose-style VERSION
version 2.0205 SYNOPSIS
package MyApp::Mooseish; use Moose (); use Moose::Exporter; Moose::Exporter->setup_import_methods( with_meta => ['has_table'], also => 'Moose', ); sub init_meta { shift; return Moose->init_meta( @_, metaclass => 'MyApp::Meta::Class' ); } sub has_table { my $meta = shift; $meta->table(shift); } package MyApp::Meta::Class; use Moose; extends 'Moose::Meta::Class'; has 'table' => ( is => 'rw' ); DESCRIPTION
This recipe expands on the use of Moose::Exporter we saw in Moose::Cookbook::Extending::Recipe1. Instead of providing our own object base class, we provide our own metaclass class, and we also export a "has_table" sugar function. Given the above code, you can now replace all instances of "use Moose" with "use MyApp::Mooseish". Similarly, "no Moose" is now replaced with "no MyApp::Mooseish". The "with_meta" parameter specifies a list of functions that should be wrapped before exporting. The wrapper simply ensures that the importing package name is the first argument to the function, so we can do "my $caller = shift;". See the Moose::Exporter docs for more details on its API. USING MyApp::Mooseish The purpose of all this code is to provide a Moose-like interface. Here's what it would look like in actual use: package MyApp::User; use MyApp::Mooseish; has_table 'User'; has 'username' => ( is => 'ro' ); has 'password' => ( is => 'ro' ); sub login { ... } no MyApp::Mooseish; All of the normal Moose sugar ("has()", "with()", etc) is available when you "use MyApp::Mooseish". CONCLUSION
Providing sugar functions can make your extension look much more Moose-ish. See Fey::ORM for a more extensive example. AUTHOR
Stevan Little <stevan@iinteractive.com> COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Infinity Interactive, Inc.. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.12.5 2011-09-06 Moose::Cookbook::Extending::Recipe4(3)
Man Page