NAME

Fey::Meta::Class::Table - A metaclass for table classes

VERSION

version 0.47

SYNOPSIS

package MyApp::User;

use Fey::ORM::Table;

print __PACKAGE__->meta()->ClassForTable($table);

DESCRIPTION

This is the metaclass for table classes. When you use Fey::ORM::Table in your class, it uses this class to do all the heavy lifting.

METHODS

This class provides the following methods:

Fey::Meta::Class::Table->ClassForTable( $table1, $table2 )

Given one or more Fey::Table objects, this method returns the name of the class which "has" that table, if any.

Fey::Meta::Class::Table->TableForClass($class)

Given a class, this method returns the Fey::Table object associated with that class, if any.

$meta->table()

Returns the Fey::Table for the metaclass's class.

$meta->add_has_one(%options)

Creates a new Fey::Meta::HasOne::ViaFK or Fey::Meta::HasOne::ViaSelect object and adds it to the metaclass. Internally, this will call attach_to_class() on the HasOne meta-object.

$meta->has_ones()

Returns a list of the HasOne objects added to this metaclass.

$meta->remove_has_one($name)

Removes the named HasOne meta-object. Internally, this will call detach_from_class() on the HasOne meta-object.

$meta->add_has_many(%options)

Creates a new Fey::Meta::HasMany::ViaFK or Fey::Meta::HasMany::ViaSelect object and adds it to the metaclass. Internally, this will call attach_to_class() on the HasMany meta-object.

$meta->has_manies()

Returns a list of the HasMany objects added to this metaclass.

$meta->remove_has_many($name)

Removes the named HasMany meta-object. Internally, this will call detach_from_class() on the HasMany meta-object.

$meta->has_inflator($name)

Returns a boolean indicating whether or not there is an inflator defined for the named column.

$meta->has_deflator($name)

Returns a boolean indicating whether or not there is an inflator defined for the named column.

$meta->add_query_method(%options)

Adds a new Fey::Meta::Method::FromSelect method to the class. The %options passed to this method will be passed to the Fey::Meta::Method::FromSelect constructor.

$meta->make_immutable()

This class overrides Moose::Meta::Class->make_immutable() in order to do its own optimizations for immutability.

AUTHOR

Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 - 2015 by Dave Rolsky.

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