X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=install%2F5.005%2FDBD-Pg-1.22-fixvercmp%2Ft%2Flib%2FApp%2FInfo%2FRequest.pm;fp=install%2F5.005%2FDBD-Pg-1.22-fixvercmp%2Ft%2Flib%2FApp%2FInfo%2FRequest.pm;h=0000000000000000000000000000000000000000;hp=c02c97ba24b6a45554c874dd77f12184e4841d69;hb=3a9c534d55e1736545ef8037e1391101c7a11f2b;hpb=7a67b0df697c1aa35e148bd5b2f1f765bf1969f6 diff --git a/install/5.005/DBD-Pg-1.22-fixvercmp/t/lib/App/Info/Request.pm b/install/5.005/DBD-Pg-1.22-fixvercmp/t/lib/App/Info/Request.pm deleted file mode 100644 index c02c97ba2..000000000 --- a/install/5.005/DBD-Pg-1.22-fixvercmp/t/lib/App/Info/Request.pm +++ /dev/null @@ -1,287 +0,0 @@ -package App::Info::Request; - -# $Id: Request.pm,v 1.1 2004-04-29 09:21:28 ivan Exp $ - -=head1 NAME - -App::Info::Request - App::Info event handler request object - -=head1 SYNOPSIS - - # In an App::Info::Handler subclass: - sub handler { - my ($self, $req) = @_; - print "Event Type: ", $req->type; - print "Message: ", $req->message; - print "Error: ", $req->error; - print "Value: ", $req->value; - } - -=head1 DESCRIPTION - -Objects of this class are passed to the C method of App::Info event -handlers. Generally, this class will be of most interest to App::Info::Handler -subclass implementers. - -The L in App::Info each construct -a new App::Info::Request object and initialize it with their arguments. The -App::Info::Request object is then the sole argument passed to the C -method of any and all App::Info::Handler objects in the event handling chain. -Thus, if you'd like to create your own App::Info event handler, this is the -object you need to be familiar with. Consult the -L documentation for details on creating -custom event handlers. - -Each of the App::Info event triggering methods constructs an -App::Info::Request object with different attribute values. Be sure to consult -the documentation for the L in -App::Info, where the values assigned to the App::Info::Request object are -documented. Then, in your event handler subclass, check the value returned by -the C method to determine what type of event request you're handling -to handle the request appropriately. - -=cut - -use strict; -use vars qw($VERSION); -$VERSION = '0.23'; - -############################################################################## - -=head1 INTERFACE - -The following sections document the App::Info::Request interface. - -=head2 Constructor - -=head3 new - - my $req = App::Info::Request->new(%params); - -This method is used internally by App::Info to construct new -App::Info::Request objects to pass to event handler objects. Generally, you -won't need to use it, other than perhaps for testing custom App::Info::Handler -classes. - -The parameters to C are passed as a hash of named parameters that -correspond to their like-named methods. The supported parameters are: - -=over 4 - -=item type - -=item message - -=item error - -=item value - -=item callback - -=back - -See the object methods documentation below for details on these object -attributes. - -=cut - -sub new { - my $pkg = shift; - - # Make sure we've got a hash of arguments. - Carp::croak("Odd number of parameters in call to " . __PACKAGE__ . - "->new() when named parameters expected" ) if @_ % 2; - my %params = @_; - - # Validate the callback. - if ($params{callback}) { - Carp::croak("Callback parameter '$params{callback}' is not a code ", - "reference") - unless UNIVERSAL::isa($params{callback}, 'CODE'); - } else { - # Otherwise just assign a default approve callback. - $params{callback} = sub { 1 }; - } - - # Validate type parameter. - if (my $t = $params{type}) { - Carp::croak("Invalid handler type '$t'") - unless $t eq 'error' or $t eq 'info' or $t eq 'unknown' - or $t eq 'confirm'; - } else { - $params{type} = 'info'; - } - - # Return the request object. - bless \%params, ref $pkg || $pkg; -} - -############################################################################## - -=head2 Object Methods - -=head3 message - - my $message = $req->message; - -Returns the message stored in the App::Info::Request object. The message is -typically informational, or an error message, or a prompt message. - -=cut - -sub message { $_[0]->{message} } - -############################################################################## - -=head3 error - - my $error = $req->error; - -Returns any error message associated with the App::Info::Request object. The -error message is typically there to display for users when C -returns false. - -=cut - -sub error { $_[0]->{error} } - -############################################################################## - -=head3 type - - my $type = $req->type; - -Returns a string representing the type of event that triggered this request. -The types are the same as the event triggering methods defined in App::Info. -As of this writing, the supported types are: - -=over - -=item info - -=item error - -=item unknown - -=item confirm - -=back - -Be sure to consult the App::Info documentation for more details on the event -types. - -=cut - -sub type { $_[0]->{type} } - -############################################################################## - -=head3 callback - - if ($req->callback($value)) { - print "Value '$value' is valid.\n"; - } else { - print "Value '$value' is not valid.\n"; - } - -Executes the callback anonymous subroutine supplied by the App::Info concrete -base class that triggered the event. If the callback returns false, then -C<$value> is invalid. If the callback returns true, then C<$value> is valid -and can be assigned via the C method. - -Note that the C method itself calls C if it was passed a -value to assign. See its documentation below for more information. - -=cut - -sub callback { - my $self = shift; - my $code = $self->{callback}; - local $_ = $_[0]; - $code->(@_); -} - -############################################################################## - -=head3 value - - my $value = $req->value; - if ($req->value($value)) { - print "Value '$value' successfully assigned.\n"; - } else { - print "Value '$value' not successfully assigned.\n"; - } - -When called without an argument, C simply returns the value currently -stored by the App::Info::Request object. Typically, the value is the default -value for a confirm event, or a value assigned to an unknown event. - -When passed an argument, C attempts to store the the argument as a -new value. However, C calls C on the new value, and if -C returns false, then C returns false and does not store -the new value. If C returns true, on the other hand, then -C goes ahead and stores the new value and returns true. - -=cut - -sub value { - my $self = shift; - if ($#_ >= 0) { - # grab the value. - my $value = shift; - # Validate the value. - if ($self->callback($value)) { - # The value is good. Assign it and return true. - $self->{value} = $value; - return 1; - } else { - # Invalid value. Return false. - return; - } - } - # Just return the value. - return $self->{value}; -} - -1; -__END__ - -=head1 BUGS - -Report all bugs via the CPAN Request Tracker at -L. - -=head1 AUTHOR - -David Wheeler > - -=head1 SEE ALSO - -L documents the event triggering methods and how they -construct App::Info::Request objects to pass to event handlers. - -L documents how to create custom event -handlers, which must make use of the App::Info::Request object passed to their -C object methods. - -The following classes subclass App::Info::Handler, and thus offer good -exemplars for using App::Info::Request objects when handling events. - -=over 4 - -=item L - -=item L - -=item L - -=back - -=head1 COPYRIGHT AND LICENSE - -Copyright (c) 2002, David Wheeler. All Rights Reserved. - -This module is free software; you can redistribute it and/or modify it under the -same terms as Perl itself. - -=cut