[Rt-commit] r2020 - in DBIx-SearchBuilder/trunk: . SearchBuilder t

jesse at bestpractical.com jesse at bestpractical.com
Mon Dec 20 21:51:45 EST 2004


Author: jesse
Date: Mon Dec 20 21:51:44 2004
New Revision: 2020

Modified:
   DBIx-SearchBuilder/trunk/   (props changed)
   DBIx-SearchBuilder/trunk/Changes
   DBIx-SearchBuilder/trunk/SearchBuilder/Record.pm
   DBIx-SearchBuilder/trunk/t/01records.t
Log:
 r2496 at hualien:  jesse | 2004-12-21T02:47:37.387098Z
 _Accessible fixes from Ruslan
 
 


Modified: DBIx-SearchBuilder/trunk/Changes
==============================================================================
--- DBIx-SearchBuilder/trunk/Changes	(original)
+++ DBIx-SearchBuilder/trunk/Changes	Mon Dec 20 21:51:44 2004
@@ -1,5 +1,9 @@
 Revision history for Perl extension DBIx::SearchBuilder.
 
+1.17_02
+    - Better handling of empty values for SB::Record::_Accessible. ( --Ruslan)
+
+
 1.17_01
     - More record tests from Ruz
 

Modified: DBIx-SearchBuilder/trunk/SearchBuilder/Record.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/SearchBuilder/Record.pm	(original)
+++ DBIx-SearchBuilder/trunk/SearchBuilder/Record.pm	Mon Dec 20 21:51:44 2004
@@ -489,22 +489,24 @@
 
 # }}}
 
-# {{{ sub _Accessible 
+# {{{ sub _Accessible
 
-*_accessible = \&Accessible;
+=head2 _Accessible KEY MODE
+
+Private method.
+
+Returns undef unless C<KEY> is accessible in C<MODE> otherwise returns C<MODE> value
+
+=cut
+
+*_accessible = \&_Accessible;
 sub _Accessible {
     my $self = shift;
     my $attr = shift;
-    my $mode = lc(shift);
-
-    # @_ is the Accessible data from our subclass. Time to populate
-    # the accessible columns datastructure (but only if we're using
-    # something with the ancient API that predates ClassAccessible
+    my $mode = lc(shift || '');
 
-    #  return true if we can $mode $Attrib;
-    local ($^W) = 0;
     my $attribute = $self->_ClassAccessible(@_)->{$attr};
-    return 0 unless (defined $attribute && $attribute->{$mode});
+    return unless defined $attribute;
     return $attribute->{$mode};
 }
 

Modified: DBIx-SearchBuilder/trunk/t/01records.t
==============================================================================
--- DBIx-SearchBuilder/trunk/t/01records.t	(original)
+++ DBIx-SearchBuilder/trunk/t/01records.t	Mon Dec 20 21:51:44 2004
@@ -9,7 +9,7 @@
 if ($@) { 
 plan skip_all => "DBD::SQLite required for testing database interaction" 
 } else{
-plan tests => 31;
+plan tests => 34;
 }
     my $handle;
 use_ok('DBIx::SearchBuilder::Handle::SQLite');
@@ -30,6 +30,11 @@
 my $rec = TestApp::Address->new($handle);
 isa_ok($rec, 'DBIx::SearchBuilder::Record');
 
+# _Accessible testings
+is( $rec->_Accessible('id' => 'read'), 1, 'id is accessible for read' );
+is( $rec->_Accessible('id' => 'write'), undef, 'id is not accessible for write' );
+is( $rec->_Accessible('unexpected_field' => 'read'), undef, "field doesn't exist and can't be accessible for read" );
+
 can_ok($rec,'Create');
 
 my ($id) = $rec->Create( Name => 'Jesse', Phone => '617 124 567');


More information about the Rt-commit mailing list