[limb-svn] r7085 - in 3.x/trunk/limb/validation: src tests/cases

svn at limb-project.com svn at limb-project.com
Mon Jun 30 09:12:28 MSD 2008


Author: conf
Date: 2008-06-30 09:12:28 +0400 (Mon, 30 Jun 2008)
New Revision: 7085
URL: http://fisheye.limb-project.com/changelog/limb/?cs=7085

Modified:
   3.x/trunk/limb/validation/src/lmbErrorList.class.php
   3.x/trunk/limb/validation/src/lmbErrorMessage.class.php
   3.x/trunk/limb/validation/tests/cases/lmbErrorListTest.class.php
Log:
-- added function renameFields to lmbErrorList and lmbErrorMessage for dynamic renaming fields

Modified: 3.x/trunk/limb/validation/src/lmbErrorList.class.php
===================================================================
--- 3.x/trunk/limb/validation/src/lmbErrorList.class.php	2008-06-27 07:17:32 UTC (rev 7084)
+++ 3.x/trunk/limb/validation/src/lmbErrorList.class.php	2008-06-30 05:12:28 UTC (rev 7085)
@@ -61,5 +61,14 @@
       $result[] = $error->getReadable();
 
     return $result;
-  }  
-}
\ No newline at end of file
+  }
+
+  function renameFields($new_field_names) 
+  {
+    foreach($this as $key => $message) 
+    {
+      $message->renameFields($new_field_names);
+      $this[$key] = $message;
+    }
+  }
+}

Modified: 3.x/trunk/limb/validation/src/lmbErrorMessage.class.php
===================================================================
--- 3.x/trunk/limb/validation/src/lmbErrorMessage.class.php	2008-06-27 07:17:32 UTC (rev 7084)
+++ 3.x/trunk/limb/validation/src/lmbErrorMessage.class.php	2008-06-30 05:12:28 UTC (rev 7085)
@@ -35,6 +35,18 @@
     return $text;
   }  
 
+  function renameFields($new_field_names) 
+  {
+    
+    if(!is_array($new_field_names)) 
+    {
+      return;
+    }
+      
+    $new_fields = str_replace(array_keys($new_field_names), $new_field_names, $this->getFields());
+    $this->setFields($new_fields);   
+  }
+  
   function __toString()
   {
       return $this->getReadable();

Modified: 3.x/trunk/limb/validation/tests/cases/lmbErrorListTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/lmbErrorListTest.class.php	2008-06-27 07:17:32 UTC (rev 7084)
+++ 3.x/trunk/limb/validation/tests/cases/lmbErrorListTest.class.php	2008-06-30 05:12:28 UTC (rev 7085)
@@ -26,5 +26,30 @@
     $this->assertEqual($errors[0]['fields'], array('foo'));
     $this->assertEqual($errors[0]['values'], array('FOO'));
   }
+  
+  function testRenameFields()
+  {
+    $list = new lmbErrorList();
+    
+    $list->addError($message = '{Field_1} is field and {Field_2} also is a field', 
+      array('Field_1' => 'login', 'Field_2' => 'password'));
+    $list->addError($message = "The greatest {Field_1}'s story is '{Field_2} and {Field_3}'", 
+      array('Field_1' => 'that man', 'Field_2' => 'that guy', 'Field_3' => 'that girl'));
+
+    $new_field_names = array(
+      'login' => 'custom_login',
+      'password' => 'custom_password',
+      'that man' => 'Shakespeare',
+      'that guy' => 'Romeo',
+      'that girl' => 'Juliet'
+    );
+  
+    $list->renameFields($new_field_names);
+   
+    $errors = $list->export();
+   
+    $this->assertEqual($errors[0]['fields'], array('Field_1' => 'custom_login', 'Field_2' => 'custom_password'));
+    $this->assertEqual($errors[1]['fields'], array('Field_1' => 'Shakespeare', 'Field_2' => 'Romeo', 'Field_3' => 'Juliet'));   
+  }
+  
 }
-



More information about the limb-svn mailing list