Renamed DBIx::Class::PK's retrieve() as find()
Dan Kubb [Sat, 6 Aug 2005 22:04:34 +0000 (22:04 +0000)]
Renamed DBIx::Class::Table's retrieve_from_sql() as search_literal()
Renamed DBIx::Class::Table's count_from_sql() as count_literal()
Removed DBIx::Class::Table->retrieve_all()
Added DBIx::Class::CDBICompat::Retrieve to account for method renaming
Updated affected test cases

15 files changed:
lib/DBIx/Class/CDBICompat.pm
lib/DBIx/Class/CDBICompat/Constructor.pm
lib/DBIx/Class/CDBICompat/Retrieve.pm [new file with mode: 0644]
lib/DBIx/Class/PK.pm
lib/DBIx/Class/Relationship.pm
lib/DBIx/Class/Schema.pm
lib/DBIx/Class/Table.pm
t/01core.t
t/04db.t
t/05multipk.t
t/06relationship.t
t/08inflate.t
t/08inflate_has_a.t
t/09update.t
t/cdbi-t/01-columns.t

index 60857f6..c7f4c46 100644 (file)
@@ -22,6 +22,7 @@ __PACKAGE__->load_components(qw/
   CDBICompat::LazyLoading
   CDBICompat::AutoUpdate
   CDBICompat::TempColumns
+  CDBICompat::Retrieve
   CDBICompat::ColumnGroups
   CDBICompat::ImaDBI/);
 
index 2b4b1e9..6983733 100644 (file)
@@ -10,7 +10,7 @@ sub add_constructor {
   *{"${class}::${meth}"} =
     sub {
       my ($class, @args) = @_;
-      return $class->retrieve_from_sql($sql, @args);
+      return $class->search_literal($sql, @args);
     };
 }
 
diff --git a/lib/DBIx/Class/CDBICompat/Retrieve.pm b/lib/DBIx/Class/CDBICompat/Retrieve.pm
new file mode 100644 (file)
index 0000000..b7fca68
--- /dev/null
@@ -0,0 +1,10 @@
+package DBIx::Class::CDBICompat::Retrieve;
+
+use strict;
+use warnings FATAL => 'all';
+
+sub retrieve          { shift->find(@_)            }
+sub retrieve_all      { shift->search_literal('1') }
+sub retrieve_from_sql { shift->search_literal(@_)  }
+
+1;
index bcd545d..e420ac6 100644 (file)
@@ -44,23 +44,23 @@ sub set_primary_key {
   $class->_primaries(\%pri);
 }
 
-sub retrieve {
+sub find {
   my ($class, @vals) = @_;
   my $attrs = (@vals > 1 && ref $vals[$#vals] eq 'HASH' ? pop(@vals) : {});
   my @pk = keys %{$class->_primaries};
-  $class->throw( "Can't retrieve unless primary columns are defined" ) 
+  $class->throw( "Can't find unless primary columns are defined" ) 
     unless @pk;
   my $query;
   if (ref $vals[0] eq 'HASH') {
     $query = $vals[0];
   } elsif (@pk == @vals) {
-    my $ret = ($class->retrieve_from_sql($class->_ident_cond, @vals, $attrs))[0];
+    my $ret = ($class->search_literal($class->_ident_cond, @vals, $attrs))[0];
     #warn "$class: ".join(', ', %{$ret->{_column_data}});
     return $ret;
   } else {
     $query = {@vals};
   }
-  $class->throw( "Can't retrieve unless all primary keys are specified" )
+  $class->throw( "Can't find unless all primary keys are specified" )
     unless (keys %$query >= @pk); # If we check 'em we run afoul of uc/lc
                                   # column names etc. Not sure what to do yet
   my $ret = ($class->search($query))[0];
@@ -72,7 +72,7 @@ sub discard_changes {
   my ($self) = @_;
   delete $self->{_dirty_columns};
   return unless $self->in_database; # Don't reload if we aren't real!
-  my ($reload) = $self->retrieve($self->id);
+  my ($reload) = $self->find($self->id);
   unless ($reload) { # If we got deleted in the mean-time
     $self->in_database(0);
     return $self;
index 109edf2..14741b0 100644 (file)
@@ -104,18 +104,18 @@ sub _cond_value {
 
 sub search_related {
   my $self = shift;
-  return $self->_from_sql_related('retrieve', @_);
+  return $self->_literal_related('search', @_);
 }
 
 sub count_related {
   my $self = shift;
-  return $self->_from_sql_related('count', @_);
+  return $self->_literal_related('count', @_);
 }
 
-sub _from_sql_related {
+sub _literal_related {
   my $self = shift;
   my $op = shift;
-  my $meth = "${op}_from_sql";
+  my $meth = "${op}_literal";
   my $rel = shift;
   my $attrs = { };
   if (@_ > 1 && ref $_[$#_] eq 'HASH') {
index 72928fc..3a08e5c 100644 (file)
@@ -39,7 +39,7 @@ DBIx::Class::Schema - composable schemas
 
   then in app code
 
-  my @obj = My::DB::Foo->retrieve_all; # My::DB::Foo isa My::Schema::Foo My::DB
+  my @obj = My::DB::Foo->search({}); # My::DB::Foo isa My::Schema::Foo My::DB
 
 =head1 DESCRIPTION
 
index d3c737f..144826f 100644 (file)
@@ -248,14 +248,14 @@ sub add_columns {
   $class->_mk_column_accessors(@cols);
 }
 
-=item retrieve_from_sql
+=item search_literal
 
-  my @obj    = $class->retrieve_from_sql($sql_where_cond, @bind);
-  my $cursor = $class->retrieve_from_sql($sql_where_cond, @bind);
+  my @obj    = $class->search_literal($literal_where_cond, @bind);
+  my $cursor = $class->search_literal($literal_where_cond, @bind);
 
 =cut
 
-sub retrieve_from_sql {
+sub search_literal {
   my ($class, $cond, @vals) = @_;
   $cond =~ s/^\s*WHERE//i;
   my $attrs = (ref $vals[$#vals] eq 'HASH' ? { %{ pop(@vals) } } : {});
@@ -263,13 +263,13 @@ sub retrieve_from_sql {
   return $class->search(\$cond, $attrs);
 }
 
-=item count_from_sql
+=item count_literal
 
-  my $count = $class->count($sql_where_cond);
+  my $count = $class->count_literal($literal_where_cond);
 
 =cut
 
-sub count_from_sql {
+sub count_literal {
   my ($class, $cond, @vals) = @_;
   $cond =~ s/^\s*WHERE//i;
   my $attrs = (ref $vals[$#vals] eq 'HASH' ? pop(@vals) : {});
@@ -417,17 +417,6 @@ sub insert_or_update {
   return ($self->in_database ? $self->update : $self->insert);
 }
 
-=item retrieve_all
-
-  my @all = $class->retrieve_all;
-
-=cut
-
-sub retrieve_all {
-  my ($class) = @_;
-  return $class->retrieve_from_sql( '1' );
-}
-
 =item is_changed
 
   my @changed_col_names = $obj->is_changed
index 20090c0..3e95f08 100644 (file)
@@ -70,7 +70,7 @@ $new->name('Man With A Spoon');
 
 $new->update;
 
-$new_again = DBICTest::Artist->retrieve(4);
+$new_again = DBICTest::Artist->find(4);
 
 is($new_again->name, 'Man With A Spoon', 'Retrieved correctly');
 
@@ -89,4 +89,4 @@ ok($new->in_database, 'insert_or_update insert ok');
 # test in update mode
 $new->position(5);
 $new->insert_or_update;
-is( DBICTest::Track->retrieve(100)->position, 5, 'insert_or_update update ok');
+is( DBICTest::Track->find(100)->position, 5, 'insert_or_update update ok');
index 98a2a89..3ab26b7 100644 (file)
--- a/t/04db.t
+++ b/t/04db.t
@@ -16,7 +16,7 @@ for (10..15) {
     } );
 }
 DBICTest::Artist->dbi_commit;
-my ($artist) = DBICTest::Artist->retrieve(15);
+my ($artist) = DBICTest::Artist->find(15);
 is($artist->name, 'artist number 15', "Commit ok");
 
 # repeat the test using AutoCommit = 1 to force the commit
@@ -28,7 +28,7 @@ for (16..20) {
     } );
 }
 DBICTest::Artist->storage->dbh->{AutoCommit} = 1;
-($artist) = DBICTest::Artist->retrieve(20);
+($artist) = DBICTest::Artist->find(20);
 is($artist->name, 'artist number 20', "Commit using AutoCommit ok");
 
 # add some rows inside a transaction and roll it back
index 6aff06f..e4d364a 100644 (file)
@@ -6,5 +6,5 @@ use lib qw(t/lib);
 
 use_ok('DBICTest');
 
-ok(DBICTest::FourKeys->retrieve(1,2,3,4), "retrieve multiple pks without hash");
-ok(DBICTest::FourKeys->retrieve(5,4,3,6), "retrieve multiple pks without hash");
\ No newline at end of file
+ok(DBICTest::FourKeys->find(1,2,3,4), "find multiple pks without hash");
+ok(DBICTest::FourKeys->find(5,4,3,6), "find multiple pks without hash");
index ea74a3a..7c4984e 100644 (file)
@@ -7,12 +7,12 @@ use lib qw(t/lib);
 use_ok('DBICTest');
 
 # has_a test
-my $cd = DBICTest::CD->retrieve(4);
+my $cd = DBICTest::CD->find(4);
 my ($artist) = $cd->search_related('artist');
 is($artist->name, 'Random Boy Band', 'has_a search_related ok');
 
 # has_many test with an order_by clause defined
-$artist = DBICTest::Artist->retrieve(1);
+$artist = DBICTest::Artist->find(1);
 is( ($artist->search_related('cds'))[1]->title, 'Spoonful of bees', 'has_many search_related with order_by ok' );
 
 # search_related with additional abstract query
index 4a98949..3ecba70 100644 (file)
@@ -15,7 +15,7 @@ DBICTest::CD->inflate_column( 'year',
 );
 
 # inflation test
-my $cd = DBICTest::CD->retrieve(3);
+my $cd = DBICTest::CD->find(3);
 
 is( ref($cd->year), 'DateTime', 'year is a DateTime, ok' );
 
index 6f59161..c621eed 100644 (file)
@@ -19,7 +19,7 @@ DBICTest::CD->has_a( 'year', 'DateTime',
 );
 
 # inflation test
-my $cd = DBICTest::CD->retrieve(3);
+my $cd = DBICTest::CD->find(3);
 
 is( ref($cd->year), 'DateTime', 'year is a DateTime, ok' );
 
@@ -40,7 +40,7 @@ DBICTest::CD->has_a( 'year', 'DateTime',
 );
 
 # inflation test
-$cd = DBICTest::CD->retrieve(3);
+$cd = DBICTest::CD->find(3);
 
 is( ref($cd->year), 'DateTime', 'year is a DateTime, ok' );
 
index ec90358..3b4dbe4 100644 (file)
@@ -10,7 +10,7 @@ use lib qw(t/lib);
 
 use_ok('DBICTest');
 
-my $art = DBICTest::Artist->retrieve(1);
+my $art = DBICTest::Artist->find(1);
 
 isa_ok $art => 'DBICTest::Artist';
 
index 3380f52..2bc8573 100644 (file)
@@ -106,11 +106,11 @@ ok(!State->find_column('HGLAGAGlAG'), '!find_column HGLAGAGlAG');
 {
         package DieTest;
         @DieTest::ISA = qw(DBIx::Class);
-        DieTest->load_components(qw/Core/);
+        DieTest->load_components(qw/CDBICompat::Retrieve Core/);
         package main;
        local $SIG{__WARN__} = sub { };
        eval { DieTest->retrieve(1) };
-       like $@, qr/Can't retrieve unless primary columns are defined/, "Need primary key for retrieve";
+       like $@, qr/unless primary columns are defined/, "Need primary key for retrieve";
 }
 
 #-----------------------------------------------------------------------