Merge 'DBIx-Class-C3' into 'trunk'
Matt S Trout [Sat, 26 Nov 2005 23:13:19 +0000 (23:13 +0000)]
18 files changed:
Build.PL
MANIFEST
META.yml
README
lib/DBIx/Class.pm
lib/DBIx/Class/AccessorGroup.pm
lib/DBIx/Class/CDBICompat.pm
lib/DBIx/Class/CDBICompat/AccessorMapping.pm
lib/DBIx/Class/CDBICompat/ColumnCase.pm
lib/DBIx/Class/CDBICompat/ColumnGroups.pm
lib/DBIx/Class/CDBICompat/ImaDBI.pm
lib/DBIx/Class/CDBICompat/TempColumns.pm
lib/DBIx/Class/Componentised.pm
lib/DBIx/Class/InflateColumn.pm
lib/DBIx/Class/PK/Auto.pm
lib/DBIx/Class/Test/SQLite.pm
script/nextalyzer.pl [deleted file]
t/cdbi-t/18-has_a.t

index 995fb9e..8ecb489 100644 (file)
--- a/Build.PL
+++ b/Build.PL
@@ -13,12 +13,13 @@ my %arguments = (
         'SQL::Abstract'             => 1.20,
         'SQL::Abstract::Limit'      => 0.101,
         'DBD::SQLite'               => 1.08,
+        'Class::C3'                 => 0.07,
+       'Tie::IxHash'               => 0,
+        'Module::Find'              => 0,
+        'Storable'                  => 0,
         # Following for CDBICompat only
         'Class::Trigger'            => 0,
         'DBIx::ContextualFetch'     => 0,
-       'Tie::IxHash'               => 0,
-        'Storable'                  => 0,
-        'Module::Find'              => 0,
         'Class::C3'                 => 0.05,
     },
     recommends          => {
index f9561a3..2ff9869 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -65,7 +65,6 @@ Makefile.PL
 MANIFEST                       This list of files
 META.yml
 README
-script/nextalyzer.pl
 t/02pod.t
 t/03podcoverage.t
 t/19quotes.t
index 97e20a0..878a16c 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -1,12 +1,12 @@
 ---
 name: DBIx-Class
-version: 0.03999_01
+version: 0.03999_02
 author:
   - Matt S. Trout <mst@shadowcatsystems.co.uk>
 abstract: Extensible and flexible object <-> relational mapper.
 license: perl
 requires:
-  Class::C3: 0.05
+  Class::C3: 0.07
   Class::Trigger: 0
   DBD::SQLite: 1.08
   DBI: 0
@@ -26,7 +26,7 @@ provides:
     file: lib/DBIx/Class/Storage/DBI.pm
   DBIx::Class:
     file: lib/DBIx/Class.pm
-    version: 0.03999_01
+    version: 0.03999_02
   DBIx::Class::AccessorGroup:
     file: lib/DBIx/Class/AccessorGroup.pm
   DBIx::Class::CDBICompat:
diff --git a/README b/README
index ea0c835..4dcaf62 100644 (file)
--- a/README
+++ b/README
@@ -8,10 +8,12 @@ DESCRIPTION
     and making it possible to support some new features like self-joins,
     distinct, group bys and more.
 
-    It's currently considered EXPERIMENTAL - bring this near a production
-    database at your own risk! The API is *not* fixed yet, although most of
-    the primitives should be good for the future and any API changes will be
-    posted to the mailing list before they're committed.
+    This project is still at an early stage so the maintainers don't make
+    any absolute promise that full backwards-compatibility will be
+    supported; however if we can without compromising the improvements we're
+    trying to make, we will, and any non-compatible changes will merit a
+    full justification on the mailing list and a CPAN developer release for
+    people to test against.
 
     The community can be found via -
 
index 5720cb3..8ad1a6d 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 use vars qw($VERSION);
 use base qw/DBIx::Class::Componentised Class::Data::Inheritable/;
 
-$VERSION = '0.03999_01';
+$VERSION = '0.03999_03';
 
 
 1;
@@ -24,10 +24,11 @@ and meant to support compability with it, while restructuring the
 insides, and making it possible to support some new features like 
 self-joins, distinct, group bys and more.
 
-It's currently considered EXPERIMENTAL - bring this near a production
-database at your own risk! The API is *not* fixed yet, although most of
-the primitives should be good for the future and any API changes will be
-posted to the mailing list before they're committed.
+This project is still at an early stage so the maintainers don't make
+any absolute promise that full backwards-compatibility will be supported;
+however if we can without compromising the improvements we're trying to
+make, we will, and any non-compatible changes will merit a full justification
+on the mailing list and a CPAN developer release for people to test against.
 
 The community can be found via -
 
index 0625f01..03ec899 100644 (file)
@@ -3,8 +3,6 @@ package DBIx::Class::AccessorGroup;
 use strict;
 use warnings;
 
-use NEXT;
-
 =head1 NAME 
 
 DBIx::Class::AccessorGroup -  Lets you build groups of accessors
index 88c0818..5fb1af4 100644 (file)
@@ -2,7 +2,7 @@ package DBIx::Class::CDBICompat;
 
 use strict;
 use warnings;
-use base qw/DBIx::Class/;
+use base qw/DBIx::Class::Core DBIx::Class::DB/;
 
 __PACKAGE__->load_own_components(qw/
   Constraints
@@ -16,8 +16,8 @@ __PACKAGE__->load_own_components(qw/
   Constructor
   AccessorMapping
   ColumnCase
-  HasMany
   HasA
+  HasMany
   MightHave
   LazyLoading
   AutoUpdate
index e1300a3..aec1653 100644 (file)
@@ -3,8 +3,6 @@ package DBIx::Class::CDBICompat::AccessorMapping;
 use strict;
 use warnings;
 
-use NEXT;
-
 sub mk_group_accessors {
   my ($class, $group, @cols) = @_;
   unless ($class->can('accessor_name') || $class->can('mutator_name')) {
@@ -27,23 +25,20 @@ sub mk_group_accessors {
   }
 }
 
-sub create {
+sub new {
   my ($class, $attrs, @rest) = @_;
   $class->throw( "create needs a hashref" ) unless ref $attrs eq 'HASH';
-  $attrs = { %$attrs };
-  my %att;
   foreach my $col ($class->columns) {
     if ($class->can('accessor_name')) {
       my $acc = $class->accessor_name($col);
-#warn "$col $acc";
-      $att{$col} = delete $attrs->{$acc} if exists $attrs->{$acc};
+      $attrs->{$col} = delete $attrs->{$acc} if exists $attrs->{$acc};
     }
     if ($class->can('mutator_name')) {
       my $mut = $class->mutator_name($col);
-      $att{$col} = delete $attrs->{$mut} if exists $attrs->{$mut};
+      $attrs->{$col} = delete $attrs->{$mut} if exists $attrs->{$mut};
     }
   }
-  return $class->next::method({ %$attrs, %att }, @rest);
+  return $class->next::method($attrs, @rest);
 }
 
 1;
index edea63a..8ef8080 100644 (file)
@@ -2,7 +2,8 @@ package DBIx::Class::CDBICompat::ColumnCase;
 
 use strict;
 use warnings;
-use NEXT;
+
+use base qw/DBIx::Class/;
 
 sub _register_column_group {
   my ($class, $group, @cols) = @_;
index fc9ece3..d87e6a4 100644 (file)
@@ -2,9 +2,8 @@ package DBIx::Class::CDBICompat::ColumnGroups;
 
 use strict;
 use warnings;
-use NEXT;
 
-use base qw/Class::Data::Inheritable/;
+use base qw/DBIx::Class::Row/;
 
 __PACKAGE__->mk_classdata('_column_groups' => { });
 
index 3a17281..4d6e3d5 100644 (file)
@@ -4,8 +4,7 @@ use strict;
 use warnings;
 use DBIx::ContextualFetch;
 
-use NEXT;
-use base qw/Class::Data::Inheritable/;
+use base qw/DBIx::Class/;
 
 __PACKAGE__->mk_classdata('_transform_sql_handler_order'
                             => [ qw/TABLE ESSENTIAL JOIN/ ] );
index 6de7fd3..1bd5c93 100644 (file)
@@ -2,7 +2,7 @@ package DBIx::Class::CDBICompat::TempColumns;
 
 use strict;
 use warnings;
-use base qw/Class::Data::Inheritable/;
+use base qw/DBIx::Class/;
 
 __PACKAGE__->mk_classdata('_temp_columns' => { });
 
index 8ea297c..a89f0e8 100644 (file)
@@ -9,7 +9,7 @@ sub inject_base {
     unshift(@{"${target}::ISA"}, grep { $target ne $_ } @to_inject);
   }
   my $table = { Class::C3::_dump_MRO_table };
-  eval "package $target; use Class::C3;" unless exists $table->{$target};
+  eval "package $target; import Class::C3;" unless exists $table->{$target};
   Class::C3::reinitialize() if defined $table->{$target};
 }
 
index 7619e5a..c612832 100644 (file)
@@ -2,6 +2,7 @@ package DBIx::Class::InflateColumn;
 
 use strict;
 use warnings;
+use base qw/DBIx::Class::Row/;
 
 sub inflate_column {
   my ($self, $col, $attrs) = @_;
index 73abb33..6928ba7 100644 (file)
@@ -1,6 +1,7 @@
 package DBIx::Class::PK::Auto;
 
-use base qw/DBIx::Class::PK/;
+#use base qw/DBIx::Class::PK/;
+use base qw/DBIx::Class/;
 use strict;
 use warnings;
 
index 7494f41..a324737 100644 (file)
@@ -34,7 +34,7 @@ use strict;
 
 use base qw/DBIx::Class/;
 
-__PACKAGE__->load_components(qw/CDBICompat PK::Auto::SQLite Core DB/);
+__PACKAGE__->load_components(qw/PK::Auto::SQLite CDBICompat Core DB/);
 
 use File::Temp qw/tempfile/;
 my (undef, $DB) = tempfile();
diff --git a/script/nextalyzer.pl b/script/nextalyzer.pl
deleted file mode 100755 (executable)
index 4a32db1..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-use Class::ISA;
-
-my $class = $ARGV[0];
-
-die "usage: nextalyzer Some::Class" unless $class;
-
-eval "use $class;";
-
-die "Error using $class: $@" if $@;
-
-my @path = reverse Class::ISA::super_path($class);
-
-my %provided;
-my %overloaded;
-
-my @warnings;
-
-foreach my $super (@path) {
-  my $file = $super;
-  $file =~ s/\:\:/\//g;
-  $file .= '.pm';
-  my $file_path = $INC{$file};
-  die "Couldn't get INC for $file, super $super" unless $file_path;
-  #warn "$super $file $file_path";
-  open IN, '<', $file_path;
-  my $in_sub;
-  my $ws;
-  my $uses_next;
-  my @provides;
-  my @overloads;
-  while (my $line = <IN>) {
-    unless ($in_sub) {
-      ($ws, $in_sub) = ($line =~ /^(\s*)sub (\S+)/);
-      next unless $in_sub;
-    }
-    if ($line =~ /^$ws\}/) {
-      if ($uses_next) {
-        push(@overloads, $in_sub);
-      } else {
-        push(@provides, $in_sub);
-      }
-      undef $in_sub;
-      undef $uses_next;
-      undef $ws;
-      next;
-    }
-    $uses_next++ if ($line =~ /\-\>NEXT/);
-  }
-  close IN;
-  foreach (@overloads) {
-    push(@warnings, "Method $_ overloaded in $class but not yet provided")
-      unless $provided{$_};
-    push(@{$overloaded{$_}}, $super);
-  }
-  $provided{$_} = $super for @provides;
-  print "Class $super:\n";
-  print "Provides: @provides\n";
-  print "Overloads: @overloads\n";
-}
-
-print "\n\n";
-
-print join("\n", @warnings);
-
-foreach my $o (keys %overloaded) {
-  my $pr = $provided{$o} || "**NEVER**";
-  print "Method $o: ".join(' ', reverse @{$overloaded{$o}})." ${pr}\n";
-}
index 84ee292..b0f0299 100644 (file)
@@ -140,7 +140,7 @@ SKIP: {
                YA::Film->add_relationship_type(has_a => "YA::HasA");
 
                package YA::HasA;
-               use base 'Class::DBI::Relationship::HasA';
+               #use base 'Class::DBI::Relationship::HasA';
 
                sub _inflator {
                        my $self  = shift;