NAME
    Toolforge::MixNMatch::Diff - Mix'n'match catalogs diff.

SYNOPSIS
     use Toolforge::MixNMatch::Diff;

     my $diff_cat = Toolforge::MixNMatch::Diff::diff($cat1, $cat2, $warn);

SUBRUTINES
  "diff"
     my $diff_cat = Toolforge::MixNMatch::Diff::diff($cat1, $cat2, $warn);

    Creates diff between two catalogs. $warn is boolean variable which turn
    on/off warnings (default is off).

    Returns instance of Toolforge::MixNMatch::Object::Catalog.

ERRORS
     diff():
             Something wrong with uids in catalogs.

EXAMPLE
     use strict;
     use warnings;

     use Toolforge::MixNMatch::Diff;
     use Toolforge::MixNMatch::Object::Catalog;
     use Toolforge::MixNMatch::Object::User;
     use Toolforge::MixNMatch::Object::YearMonth;
     use Toolforge::MixNMatch::Print::Catalog;

     # Catalogs.
     my $cat1 = Toolforge::MixNMatch::Object::Catalog->new(
             'count' => 10,
             'type' => 'Q5',
             'users' => [
                     Toolforge::MixNMatch::Object::User->new(
                             'count' => 2,
                             'uid' => 1,
                             'username' => 'Skim',
                     ),
                     Toolforge::MixNMatch::Object::User->new(
                             'count' => 1,
                             'uid' => 2,
                             'username' => 'Foo',
                     ),
             ],
             'year_months' => [
                     Toolforge::MixNMatch::Object::YearMonth->new(
                             'count' => 3,
                             'month' => 9,
                             'year' => 2020,
                     ),
             ],
     );
     my $cat2 = Toolforge::MixNMatch::Object::Catalog->new(
             'count' => 10,
             'type' => 'Q5',
             'users' => [
                     Toolforge::MixNMatch::Object::User->new(
                             'count' => 3,
                             'uid' => 1,
                             'username' => 'Skim',
                     ),
                     Toolforge::MixNMatch::Object::User->new(
                             'count' => 2,
                             'uid' => 2,
                             'username' => 'Foo',
                     ),
             ],
             'year_months' => [
                     Toolforge::MixNMatch::Object::YearMonth->new(
                             'count' => 3,
                             'month' => 9,
                             'year' => 2020,
                     ),
                     Toolforge::MixNMatch::Object::YearMonth->new(
                             'count' => 2,
                             'month' => 10,
                             'year' => 2020,
                     ),
             ],
     );

     my $diff_cat = Toolforge::MixNMatch::Diff::diff($cat1, $cat2);

     # Print out.
     print "Catalog #1:\n";
     print Toolforge::MixNMatch::Print::Catalog::print($cat1)."\n\n";
     print "Catalog #2:\n";
     print Toolforge::MixNMatch::Print::Catalog::print($cat2)."\n\n";
     print "Diff catalog:\n";
     print Toolforge::MixNMatch::Print::Catalog::print($diff_cat)."\n";

     # Output:
     # Catalog #1:
     # Type: Q5
     # Count: 10
     # Year/months:
     #         2020/9: 3
     # Users:
     #         Skim (1): 2
     #         Foo (2): 1
     # 
     # Catalog #2:
     # Type: Q5
     # Count: 10
     # Year/months:
     #         2020/9: 3
     #         2020/10: 2
     # Users:
     #         Skim (1): 3
     #         Foo (2): 2
     # 
     # Diff catalog:
     # Type: Q5
     # Count: 10
     # Year/months:
     #         2020/10: 2
     # Users:
     #         Foo (2): 1
     #         Skim (1): 1

DEPENDENCIES
    Error::Pure, Toolforge::MixNMatch::Object::Catalog,
    Toolforge::MixNMatch::Object::User,
    Toolforge::MixNMatch::Object::YearMonth.

REPOSITORY
    <https://github.com/michal-josef-spacek/Toolforge-MixNMatch-Diff>

AUTHOR
    Michal Josef Špaček <mailto:skim@cpan.org>

    <http://skim.cz>

LICENSE AND COPYRIGHT
    © Michal Josef Špaček 2020

    BSD 2-Clause License

VERSION
    0.04

