The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Toolforge::MixNMatch::Object::Catalog - Mix'n'match catalog datatype.

SYNOPSIS

 use Toolforge::MixNMatch::Object::Catalog;

 my $obj = Toolforge::MixNMatch::Object::Catalog->new(%params);
 my $count = $obj->count;
 my $type = $obj->type;
 my $year_months = $obj->year_months;
 my $users = $obj->users;

DESCRIPTION

This datatype is base class for Mix'n'match catalog.

METHODS

new

 my $obj = Toolforge::MixNMatch::Object::Catalog->new(%params);

Constructor.

Returns instance of object.

  • count

    Count number of records in catalog. Parameter is required.

  • type

    Catalog type in sense of Wikidata instance. Example is 'Q5' for human. Parameter is required.

  • year_months

    Year/months statistics. Reference to array with Toolforge::MixNMatch::Object::YearMonth instances. Default value is [].

  • users

    Users statistics. Reference to array with Toolforge::MixNMatch::Object::User instances. Default value is [].

count

 my $count = $obj->count;

Get count.

Returns number.

type

 my $type = $obj->type;

Get type.

Returns string.

year_months

 my $year_months = $obj->year_months;

Get year/months statistics.

Returns reference to array with Toolforge::MixNMatch::Object::YearMonth instances.

users

 my $users = $obj->users;

Get users statistics.

Returns reference to array with Toolforge::MixNMatch::Object::User instances.

ERRORS

 new():
         From Mo::utils::check_required():
                 Parameter 'count' is required.
                 Parameter 'type' is required.
         From Mo::utils::check_array_object():
                 Parameter 'users' must be a array.
                 Parameter 'year_months' must be a array.
                 User isn't 'Toolforge::MixNMatch::Object::Catalog::User' object.
                 Year/month isn't 'Toolforge::MixNMatch::Object::Catalog::YearMonth' object.

EXAMPLE

 use strict;
 use warnings;

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

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

 # Get count.
 my $count = $obj->count;

 # Get type.
 my $type = $obj->type;

 # Get year months stats.
 my $year_months_ar = $obj->year_months;

 # Get users.
 my $users_ar = $obj->users;

 # Print out.
 print "Count: $count\n";
 print "Type: $type\n";
 print "Number of month/year statistics: ".(scalar @{$year_months_ar})."\n";
 print "Number of users: ".(scalar @{$users_ar})."\n";

 # Output:
 # Count: 10
 # Type: Q5
 # Number of month/year statistics: 2
 # Number of users: 2

DEPENDENCIES

Mo, Mo::utils.

SEE ALSO

Toolforge::MixNMatch::Object

Toolforge Mix'n'match tool objects.

REPOSITORY

https://github.com/michal-josef-spacek/Toolforge-MixNMatch-Object

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.01