DBIx::Class::InflateColumn::IP - Auto-create NetAddr::IP objects from columns.


DBIx-Class-InflateColumn-IP documentation  | view source Contained in the DBIx-Class-InflateColumn-IP distribution.

Index


NAME

Top

DBIx::Class::InflateColumn::IP - Auto-create NetAddr::IP objects from columns.

SYNOPSIS

Top

Load this component and declare columns as IP addresses with the appropriate format.

    package Host;
    __PACKAGE__->load_components(qw/InflateColumn::IP Core/);
    __PACKAGE__->add_columns(
        ip_address => {
            data_type => 'integer',
            is_nullable => 0,
            is_ip => 1,
            ip_format => 'numeric',
        }
    );

    package Network;
    __PACKAGE__->load_components(qw/InflateColumn::IP Core/);
    __PACKAGE__->add_columns(
        address => {
            data_type => 'varchar',
            size        => 18
            is_nullable => 0,
            is_ip => 1,
            ip_format => 'cidr',
        }
    );

Then you can treat the specified column as a NetAddr::IP object.

    print 'IP address: ', $host->ip_address->addr;
    print 'Address type: ', $host->ip_address->iptype;

DBIx::Class::InflateColumn::IP supports a limited amount of auto-detection of the format based on the column type. If the type begins with int, it's assumed to be numeric, while inet and cidr (as used by e.g. PostgreSQL) are assumed to be cidr format.

METHODS

Top

ip_class

Arguments: $class

Gets/sets the address class that the columns should be inflated into. The default class is NetAddr::IP.

ip_format

Arguments: $format

Gets/sets the name of the method used to deflate the address for the database. This must return a value suitable for $ip_class-new(); The default format is addr, which returns the address in dotted-quad notation. See Methods in NetAddr::IP for suitable values.

register_column

Chains with register_column in DBIx::Class::Row, and sets up IP address columns appropriately. This would not normally be called directly by end users.

AUTHOR

Top

Dagfinn Ilmari Mannsåker, <ilmari at ilmari.org>

BUGS

Top

Please report any bugs or feature requests to bug-dbix-class-inflatecolumn-ip at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=DBIx-Class-InflateColumn-IP. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc DBIx::Class::InflateColumn::IP

You can also look for information at:

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/DBIx-Class-InflateColumn-IP

* CPAN Ratings

http://cpanratings.perl.org/d/DBIx-Class-InflateColumn-IP

* RT: CPAN's request tracker

http://rt.cpan.org/NoAuth/Bugs.html?Dist=DBIx-Class-InflateColumn-IP

* Search CPAN

http://search.cpan.org/dist/DBIx-Class-InflateColumn-IP

SEE ALSO

Top

DBIx::Class, NetAddr::IP

COPYRIGHT & LICENSE

Top


DBIx-Class-InflateColumn-IP documentation  | view source Contained in the DBIx-Class-InflateColumn-IP distribution.