do not require MooseX::MarkAsMethods with only_autoclean=1
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / Base.pm
index a2f89d8..4fdc9e7 100644 (file)
@@ -28,9 +28,10 @@ use DBIx::Class ();
 use Encode qw/encode decode/;
 use List::Util qw/all any none/;
 use File::Temp 'tempfile';
+use curry;
 use namespace::clean;
 
-our $VERSION = '0.07046';
+our $VERSION = '0.07049';
 
 __PACKAGE__->mk_group_ro_accessors('simple', qw/
                                 schema
@@ -742,9 +743,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.
@@ -989,12 +990,13 @@ are methods, which will cause namespace::autoclean to spare them from removal.
 
 This prevents the "Hey, where'd my overloads go?!" effect.
 
-If you don't care about operator overloads, enabling this option falls back to
-just using L<namespace::autoclean> itself.
+If you don't care about operator overloads (or if you know your Moose is at at
+least version 2.1400, where MooseX::MarkAsMethods is no longer necessary),
+enabling this option falls back to just using L<namespace::autoclean> itself.
 
 If none of the above made any sense, or you don't have some pressing need to
 only use L<namespace::autoclean>, leaving this set to the default is
-recommended.
+just fine.
 
 =head2 col_collision_map
 
@@ -1180,9 +1182,17 @@ sub new {
     $self->_validate_result_roles_map;
 
     if ($self->use_moose) {
-        if (not DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for('use_moose')) {
-            die sprintf "You must install the following CPAN modules to enable the use_moose option: %s.\n",
-                DBIx::Class::Schema::Loader::Optional::Dependencies->req_missing_for('use_moose');
+        if ($self->only_autoclean) {
+            if (not DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for('use_moose_only_autoclean')) {
+                die sprintf "You must install the following CPAN modules to enable the use_moose and only_autoclean options: %s.\n",
+                    DBIx::Class::Schema::Loader::Optional::Dependencies->req_missing_for('use_moose_only_autoclean');
+            }
+        }
+        else {
+            if (not DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for('use_moose')) {
+                die sprintf "You must install the following CPAN modules to enable the use_moose option: %s.\n",
+                    DBIx::Class::Schema::Loader::Optional::Dependencies->req_missing_for('use_moose');
+            }
         }
     }
 
@@ -2276,7 +2286,7 @@ sub _parse_generated_file {
             my $mark_md5 = $2;
 
             # Pull out the version and timestamp from the line above
-            ($ver, $ts) = $gen =~ m/^# Created by DBIx::Class::Schema::Loader( v[\d.]+)?( @ [\d-]+ [\d:]+)?\r?\Z/m;
+            ($ver, $ts) = $gen =~ m/^# Created by DBIx::Class::Schema::Loader( v[\d._]+)?( @ [\d-]+ [\d:]+)?\r?\Z/m;
             $ver =~ s/^ v// if $ver;
             $ts =~ s/^ @ // if $ts;
 
@@ -2594,7 +2604,7 @@ sub _make_column_accessor_name {
 
     my $accessor = $self->_run_user_map(
         $self->col_accessor_map,
-        sub { $self->_default_column_accessor_name( shift ) },
+        $self->curry::_default_column_accessor_name,
         $column_name,
         $column_context_info,
     );
@@ -2847,7 +2857,7 @@ sub _table2moniker {
 
     $self->_run_user_map(
         $self->moniker_map,
-        sub { $self->_default_table2moniker( shift ) },
+        $self->curry::_default_table2moniker,
         $table
     );
 }