Name¶
SVN::Notify::Alternative - MIME multipart/alternative notification
Synopsis¶
Use
svnnotify in
post-commit:
svnnotify --repos-path "$1" --revision "$2" \
--to developers@example.com --handler Alternative [options]
For example:
svnnotify --repos-path "$1" --revision "$2" \
--to developers@example.com --handler Alternative \
--alternative HTML::ColorDiff
Use the class in a custom script:
use SVN::Notify::Alternative;
my $notifier = SVN::Notify::Alternative->new(%params);
$notifier->prepare;
$notifier->execute;
Description¶
This subclass of SVN::Notify sends MIME multipart/alternative email messages for
Subversion activity. The messages contain both the standard SVN::Notify plain
text change notification and one or more alternative formats of the message.
The default alternative format is HTML.
Note that this means that many or all of the processing of a subversion commit
will be executed multiple times, once for the plain text version and then
again for each alternative version. This will therefore increase resource
usage on your Subversion server (mainly processor time, but also possibly
memory).
It also means that the size of the outgoing message will increase for each
alternative. If you're using "--with-diff", then those messages
could be very large indeed for large commits. If, however, you use
"--attach-diff", the diff will only be attached to the last
alternative.
Usage¶
To use SVN::Notify::Alternative, simply follow the instructions in SVN::Notify,
but when using
svnnotify, use the "--alternative" option to
add one or more alternative formats.
Class Interface¶
Constructor¶
new
my $notifier = SVN::Notify::Alternative->new(%params);
Constructs and returns a new SVN::Notify object. All parameters supported by
SVN::Notity are supported here, as are the options of all specified
alternative formats, but SVN::Notify::Alternative supports an additional
parameter:
- alternatives
-
svnnotify --alternative HTML
svnnotify --alt HTML --alt HTML::ColorDiff
An array reference that specifies the SVN::Notify handlers (subclasses) to
be used for formatting the alternative parts of the notification message.
The command-line option may be called as either "--alternative"
or "--alt", and the value is the same as that of the SVN::Notify
"--handler" parameter, i.e. the module name without the
"SVN::Notify::" prefix. Specify the option multiple times to
specify multiple alternative handlers. Defaults to "['HTML']" if
not specified.
Instance Interface¶
Instance Methods¶
output
$notifier->output($file_handle);
Overrides the "output()" method of SVN::Notify to replace the standard
message output with a MIME "multipart/alternative" skeleton. It then
creates new instances of the standard SVN::Notify plain text formatter and
each of the configured alternative formatters, and uses those instances to
fill in the alternative parts of the message. If "attach_diff" is
true, it will be used only in the last alternative to be output, which should
also be the richest format.
Accessors¶
In addition to those supported by SVN::Notify, SVN::Notify::Alternative supports
the following accessors:
alternatives
my $alts = $notify->alternatives;
$notify->alternatives($alts);
Gets or sets the value of the "alternatives" attribute, which must
always be set to an array reference.
See Also¶
- SVN::Notify
Authors¶
Jukka Zitting <jz@yukatan.fi>
David E. Wheeler <david@kineticode.com>
Copyright and License¶
Copyright (c) 2005-2009 Jukka Zitting and Kineticode, Inc. Some Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.