X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FBase.pm;h=e9e6a58ab111758627eddd3f6a70305591265ad2;hb=dbe5c90463dd1b323513739b1d27607186caddac;hp=a0b252d019b075b82c62f4b925eb76474c212f6e;hpb=70b801a45466230a822b99551411211a65b59386;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/Base.pm b/lib/DBIx/Class/Schema/Loader/Base.pm index a0b252d..e9e6a58 100644 --- a/lib/DBIx/Class/Schema/Loader/Base.pm +++ b/lib/DBIx/Class/Schema/Loader/Base.pm @@ -16,9 +16,8 @@ use Lingua::EN::Inflect::Number (); use Lingua::EN::Inflect::Phrase (); use String::ToIdentifier::EN (); use String::ToIdentifier::EN::Unicode (); -use File::Temp (); use Class::Unload; -use Class::Inspector (); +use Class::Inspector; use Scalar::Util 'looks_like_number'; use DBIx::Class::Schema::Loader::Column; use DBIx::Class::Schema::Loader::Utils qw/split_name dumper_squashed eval_package_without_redefine_warnings class_path slurp_file sigwarn_silencer firstidx uniq/; @@ -27,10 +26,11 @@ use Try::Tiny; use DBIx::Class (); use Encode qw/encode decode/; use List::Util qw/all any none/; -use File::Temp 'tempfile'; +use File::Temp qw/tempfile tempdir/; + use namespace::clean; -our $VERSION = '0.07046'; +our $VERSION = '0.07047'; __PACKAGE__->mk_group_ro_accessors('simple', qw/ schema @@ -418,9 +418,9 @@ this hash of parameters (as a list): rel_type # the type of the relationship: 'belongs_to', 'has_many' or 'might_have' local_source # the DBIx::Class::ResultSource object for the source the rel is *from* remote_source # the DBIx::Class::ResultSource object for the source the rel is *to* - local_table # a DBIx::Class::Schema::Loader::Table object for the table of the source the rel is from + local_table # the DBIx::Class::Schema::Loader::Table object for the table of the source the rel is from local_cols # an arrayref of column names of columns used in the rel in the source it is from - remote_table # a DBIx::Class::Schema::Loader::Table object for the table of the source the rel is to + remote_table # the DBIx::Class::Schema::Loader::Table object for the table of the source the rel is to remote_cols # an arrayref of column names of columns used in the rel in the source it is to attrs # the attributes that would be set @@ -677,23 +677,36 @@ L takes precedence over this. Same as moniker_map, but for column accessor names. The nested hashref form is traversed according to L, with an extra level at the bottom for the column name. If a coderef is -passed, the code is called with arguments of +passed, the code is called with the following arguments: + +=over + +=item * + +the L object for the column + +=item * + +the default accessor name that DBICSL would ordinarily give this column + +=item * + +a hashref of this form: - the DBIx::Class::Schema::Loader::Column object for the column, - default accessor name that DBICSL would ordinarily give this column, { table_class => name of the DBIC class we are building, table_moniker => calculated moniker for this table (after moniker_map if present), - table => table object of interface DBIx::Class::Schema::Loader::Table, + table => the DBIx::Class::Schema::Loader::Table object for the table, full_table_name => schema-qualified name of the database table (RDBMS specific), schema_class => name of the schema class we are building, column_info => hashref of column info (data_type, is_nullable, etc), } - coderef ref that can be called with a hashref map -The L and -L objects stringify to their -unqualified names. +=item * + +a coderef that can be called with a hashref map + +=back =head2 rel_name_map @@ -729,9 +742,9 @@ If it is a coderef, it will be passed a hashref of this form: remote_moniker => moniker of the DBIC class we are related to, remote_columns => columns in the other table in the relationship, # for type => "many_to_many" only: - link_class => name of the DBIC class for the link table - link_moniker => moniker of the DBIC class for the link table - link_rel_name => name of the relationship to the link table + link_class => name of the DBIC class for the link table, + link_moniker => moniker of the DBIC class for the link table, + link_rel_name => name of the relationship to the link table, } In addition it is passed a coderef that can be called with a hashref map. @@ -898,8 +911,8 @@ L for a column. Must be a coderef that returns a hashref with the extra attributes. -Receives the L (which -stringifies to the unqualified table name), column name and column_info. +Receives the L object, column name +and column_info. For example: @@ -1195,10 +1208,10 @@ sub new { croak "dry_run can only be used with static schema generation" if $self->dynamic and $self->dry_run; - $self->{temp_directory} ||= File::Temp::tempdir( 'dbicXXXX', - TMPDIR => 1, - CLEANUP => 1, - ); + $self->{temp_directory} ||= tempdir( 'dbicXXXX', + TMPDIR => 1, + CLEANUP => 1, + ); $self->{dump_directory} ||= $self->{temp_directory};