X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FSchema%2FObject.pm;h=c2aa3332106504704995bdd66e4019a1a785906e;hb=1ced2a25380c28174c07743b19820ec6d1d4f74f;hp=1f04b588d7c1269bccc58260240c4091d423cee1;hpb=d4f84dd192edc7a64a0b1a9923f1bafc0bc5ef9d;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Schema/Object.pm b/lib/SQL/Translator/Schema/Object.pm index 1f04b58..c2aa333 100644 --- a/lib/SQL/Translator/Schema/Object.pm +++ b/lib/SQL/Translator/Schema/Object.pm @@ -1,8 +1,6 @@ package SQL::Translator::Schema::Object; # ---------------------------------------------------------------------- -# $Id: Object.pm 1440 2009-01-17 16:31:57Z jawnsy $ -# ---------------------------------------------------------------------- # Copyright (C) 2002-2009 SQLFairy Authors # # This program is free software; you can redistribute it and/or @@ -41,6 +39,11 @@ use base 'Class::Data::Inheritable'; use base 'Class::Base'; use Class::MakeMethods::Utility::Ref qw( ref_compare ); +use vars qw[ $VERSION ]; + +$VERSION = '1.59'; + + =head1 Construction Derived classes should declare their attributes using the C<_attributes> @@ -148,6 +151,32 @@ Returns a hash or a hashref. return wantarray ? %$extra : $extra; } +# ---------------------------------------------------------------------- +sub remove_extra { + +=head2 remove_extra + +L can only be used to get or set "extra" attributes but not to +remove some. Call with no args to remove all extra attributes that +have been set before. Call with a list of key names to remove +certain extra attributes only. + + # remove all extra attributes + $field->remove_extra(); + + # remove timezone and locale attributes only + $field->remove_extra(qw/timezone locale/); + +=cut + + my ( $self, @keys ) = @_; + unless (@keys) { + $self->{'extra'} = {}; + } + else { + delete $self->{'extra'}{$_} for @keys; + } +} # ---------------------------------------------------------------------- sub equals { @@ -202,6 +231,7 @@ sub _compare_objects { =head1 AUTHOR -Ken Y. Clark Ekclark@cpan.orgE, Mark Addison Emark.addison@itn.co.ukE +Ken Youens-Clark Ekclark@cpan.orgE, +Mark Addison Emark.addison@itn.co.ukE. =cut