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

NAME

Mongoose::Class - sugary Mongoose-oriented replacement for Moose

VERSION

version 0.04

SYNOPSIS

        package MySchema::Person;
        use Mongoose::Class; # uses Moose for you
        with 'Mongoose::Document';

        has 'name' => ( is=>'rw', isa=>'Str' );
        has_many 'siblings' => ( is=>'rw', isa=>'Person' );
        belongs_to 'club' => ( is=>'rw', isa=>'Club' );
        has_one 'father' => ( is=>'rw', isa=>'Person' );

DESCRIPTION

This is very much a work-in-progress.

Basically, this module adds some sugar into your Mongoose Document class by defining some stand-in replacements for Moose's own has.

        has_many
        has_one
        belongs_to

The idea: fewer keystrokes and improved readability by self-documenting your class.

METHODS

has_one

Does nothing. It's the same as using has.

belongs_to

Does nothing. It's the same as using has.

has_many

Wraps the defined relationship with another class using Mongoose::Join.

This:

        has_many 'employees' => ( isa=>'Employee' );

        # or

        has_manu 'employees' => 'Employee';

Becomes this:

    has 'employees' => (
        is      => 'ro',
        isa     => 'Mongoose::Join[Employee]',
        default => sub { Mongoose::Join->new( with_class=>'Employee' ) }
    );