[Dbix-class] RFC: refresh / discard_changes
Marc Mims
marc at questright.com
Sat May 12 03:46:01 GMT 2007
It seems like the question, "How do I refresh a row?" comes up fairly
often on irc and here on the list. The answer is always
$row->discard_changes. Refreshing is the same function from a different
perspective. Rather than throwing my changes away (I haven't made any,
after all), I want to "refresh" my row from storage.
I discussed it briefly with mst on irc. He dislikes the name "refresh"
and suggests, perhaps, refresh_from_storage.
A doc patch would be sufficient for users to discover discard_changes
when they're looking for refresh, but a alias that expresses the
alternate motivation might make application code more readable.
Thoughts?
-Marc
Here's the rough draft patch:
Index: lib/DBIx/Class/PK.pm
===================================================================
--- lib/DBIx/Class/PK.pm (revision 3310)
+++ lib/DBIx/Class/PK.pm (working copy)
@@ -25,10 +25,11 @@
return (map { $self->{_column_data}{$_} } $self->primary_columns);
}
-=head2 discard_changes
+=head2 discard_changes, refresh_from_storage
Re-selects the row from the database, losing any changes that had
-been made.
+been made. C<refresh_from_storage> is an alias for C<discard_changes>;
+they do the same thing, but with different motivations.
=cut
@@ -47,6 +48,10 @@
return $self;
}
+sub refresh_from_storage {
+ shift->discard_changes(@_);
+}
+
=head2 id
Returns the primary key(s) for a row. Can't be called as
More information about the Dbix-class
mailing list