X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader.pm;h=d100408d790d206bb4ba6009a554887599449e0b;hb=306bf770bf08b06f92863808b1938f2fc704acb0;hp=f1ba452f252c942aff50ee32b92db87dfe1dc2c1;hpb=0af7cacc7b7e906f0ef4b356fd9f4091d0bba01b;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader.pm b/lib/DBIx/Class/Schema/Loader.pm index f1ba452..d100408 100644 --- a/lib/DBIx/Class/Schema/Loader.pm +++ b/lib/DBIx/Class/Schema/Loader.pm @@ -7,7 +7,7 @@ use MRO::Compat; use mro 'c3'; use Carp::Clan qw/^DBIx::Class/; use Scalar::Util 'weaken'; -use Sub::Name 'subname'; +use Sub::Util 'set_subname'; use DBIx::Class::Schema::Loader::Utils 'array_eq'; use Try::Tiny; use Hash::Merge 'merge'; @@ -16,7 +16,7 @@ use namespace::clean; # Always remember to do all digits for the version even if they're 0 # i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports # brain damage and presumably various other packaging systems too -our $VERSION = '0.07030'; +our $VERSION = '0.07047'; __PACKAGE__->mk_group_accessors('inherited', qw/ _loader_args @@ -29,57 +29,59 @@ __PACKAGE__->mk_group_accessors('inherited', qw/ /); __PACKAGE__->_loader_args({}); +=encoding UTF-8 + =head1 NAME DBIx::Class::Schema::Loader - Create a DBIx::Class::Schema based on a database =head1 SYNOPSIS - ### use this module to generate a set of class files - - # in a script - use DBIx::Class::Schema::Loader qw/ make_schema_at /; - make_schema_at( - 'My::Schema', - { debug => 1, - dump_directory => './lib', - }, - [ 'dbi:Pg:dbname="foo"', 'myuser', 'mypassword', - { loader_class => 'MyLoader' } # optionally - ], - ); - - # from the command line or a shell script with dbicdump (distributed - # with this module). Do `perldoc dbicdump` for usage. - dbicdump -o dump_directory=./lib \ - -o components='["InflateColumn::DateTime"]' \ - -o debug=1 \ - My::Schema \ - 'dbi:Pg:dbname=foo' \ - myuser \ - mypassword + ### use this module to generate a set of class files - ### or generate and load classes at runtime - # note: this technique is not recommended - # for use in production code - - package My::Schema; - use base qw/DBIx::Class::Schema::Loader/; + # in a script + use DBIx::Class::Schema::Loader qw/ make_schema_at /; + make_schema_at( + 'My::Schema', + { debug => 1, + dump_directory => './lib', + }, + [ 'dbi:Pg:dbname="foo"', 'myuser', 'mypassword', + { loader_class => 'MyLoader' } # optionally + ], + ); - __PACKAGE__->loader_options( - constraint => '^foo.*', - # debug => 1, - ); + # from the command line or a shell script with dbicdump (distributed + # with this module). Do `perldoc dbicdump` for usage. + dbicdump -o dump_directory=./lib \ + -o components='["InflateColumn::DateTime"]' \ + -o debug=1 \ + My::Schema \ + 'dbi:Pg:dbname=foo' \ + myuser \ + mypassword + + ### or generate and load classes at runtime + # note: this technique is not recommended + # for use in production code + + package My::Schema; + use base qw/DBIx::Class::Schema::Loader/; + + __PACKAGE__->loader_options( + constraint => '^foo.*', + # debug => 1, + ); - #### in application code elsewhere: + #### in application code elsewhere: - use My::Schema; + use My::Schema; - my $schema1 = My::Schema->connect( $dsn, $user, $password, $attrs); - # -or- - my $schema1 = "My::Schema"; $schema1->connection(as above); + my $schema1 = My::Schema->connect( $dsn, $user, $password, $attrs); + # -or- + my $schema1 = "My::Schema"; $schema1->connection(as above); -=head1 DESCRIPTION +=head1 DESCRIPTION DBIx::Class::Schema::Loader automates the definition of a L by scanning database table definitions and setting up @@ -339,7 +341,7 @@ sub connection { # ->load_components and we are now in a different place in the mro. no warnings 'redefine'; - local *connection = subname __PACKAGE__.'::connection' => sub { + local *connection = set_subname __PACKAGE__.'::connection' => sub { my $self = shift; $self->next::method(@_); }; @@ -609,76 +611,85 @@ Based on L by Sebastian Riedel Based upon the work of IKEBE Tomohiro -=head1 AUTHOR +=head1 AUTHORS -blblack: Brandon Black +Caelum: Rafael Kitover -=head1 CONTRIBUTORS +Dag-Erling Smørgrav -ilmari: Dagfinn Ilmari MannsEker +Matias E. Fernandez + +SineSwiper: Brendan Byrd + +TSUNODA Kazuya + +acmoore: Andrew Moore + +alnewkirk: Al Newkirk + +andrewalker: André Walker + +angelixd: Paul C. Mantz + +arc: Aaron Crane arcanez: Justin Hunter ash: Ash Berlin -btilly: Ben Tilly - -Caelum: Rafael Kitover +blblack: Brandon Black -TSUNODA Kazuya +bphillips: Brian Phillips -rbo: Robert Bohne +btilly: Ben Tilly -ribasushi: Peter Rabbitson +domm: Thomas Klausner gugu: Andrey Kostenko +hobbs: Andrew Rodland + +ilmari: Dagfinn Ilmari MannsEker + jhannah: Jay Hannah jnap: John Napiorkowski -rbuels: Robert Buels +kane: Jos Boumans -timbunce: Tim Bunce +mattp: Matt Phillips + +mephinet: Philipp Gortan + +moritz: Moritz Lenz mst: Matt S. Trout mstratman: Mark A. Stratman -kane: Jos Boumans +oalders: Olaf Alders -waawaamilk: Nigel McNie +rbo: Robert Bohne -acmoore: Andrew Moore +rbuels: Robert Buels -bphillips: Brian Phillips +ribasushi: Peter Rabbitson schwern: Michael G. Schwern -SineSwiper: Brendan Byrd - -hobbs: Andrew Rodland - -domm: Thomas Klausner - spb: Stephen Bennett -Matias E. Fernandez - -alnewkirk: Al Newkirk - -angelixd: Paul C. Mantz +timbunce: Tim Bunce -andrewalker: André Walker +waawaamilk: Nigel McNie ... and lots of other folks. If we forgot you, please write the current maintainer or RT. =head1 COPYRIGHT & LICENSE -Copyright (c) 2006 - 2009 by the aforementioned -L and -L. +Copyright (c) 2006 - 2015 by the aforementioned +L. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.