Provided by: libsvn-notify-perl_2.84-2_all bug

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@justatheory.com>

Copyright and License

       Copyright (c) 2005 Jukka Zitting and 2005-2011 David E. Wheeler. Some Rights Reserved.

       This module is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.