[limb-svn] r6508 - in 3.x/trunk/limb/macro: src src/filters tests/cases tests/cases/filters
svn at limb-project.com
svn at limb-project.com
Thu Nov 8 18:00:31 MSK 2007
Author: serega
Date: 2007-11-08 18:00:31 +0300 (Thu, 08 Nov 2007)
New Revision: 6508
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6508
Modified:
3.x/trunk/limb/macro/src/filters/htmlspecialchars.filter.php
3.x/trunk/limb/macro/src/filters/number_format.filter.php
3.x/trunk/limb/macro/src/filters/strtolower.filter.php
3.x/trunk/limb/macro/src/filters/strtoupper.filter.php
3.x/trunk/limb/macro/src/filters/ucfirst.filter.php
3.x/trunk/limb/macro/src/lmbMacroFilterDictionary.class.php
3.x/trunk/limb/macro/src/lmbMacroFilterInfo.class.php
3.x/trunk/limb/macro/tests/cases/filters/lmbMacroNumberFormatFilterTest.class.php
3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToLowerFilterTest.class.php
3.x/trunk/limb/macro/tests/cases/lmbMacroFilterDictionaryTest.class.php
Log:
-- now filters supports aliases. @aliases notation can be used in filter declaration to give filters more names.
Modified: 3.x/trunk/limb/macro/src/filters/htmlspecialchars.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/htmlspecialchars.filter.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/src/filters/htmlspecialchars.filter.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -12,6 +12,7 @@
* class lmbMacroHtmlSpecialCharsFilter.
*
* @filter htmlspecialchars
+ * @aliases html
* @package macro
* @version $Id$
*/
Modified: 3.x/trunk/limb/macro/src/filters/number_format.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/number_format.filter.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/src/filters/number_format.filter.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -12,6 +12,7 @@
* class lmbMacroNumberFormatFilter.
*
* @filter number_format
+ * @aliases number
* @package macro
* @version $Id$
*/
Modified: 3.x/trunk/limb/macro/src/filters/strtolower.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/strtolower.filter.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/src/filters/strtolower.filter.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -12,6 +12,7 @@
* class lmbMacroStrToLowerFilter.
*
* @filter strtolower
+ * @aliases lowercase
* @package macro
* @version $Id$
*/
Modified: 3.x/trunk/limb/macro/src/filters/strtoupper.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/strtoupper.filter.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/src/filters/strtoupper.filter.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -12,6 +12,7 @@
* class lmbMacroStrToUpperFilter.
*
* @filter strtoupper
+ * @aliases uppercase
* @package macro
* @version $Id$
*/
Modified: 3.x/trunk/limb/macro/src/filters/ucfirst.filter.php
===================================================================
--- 3.x/trunk/limb/macro/src/filters/ucfirst.filter.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/src/filters/ucfirst.filter.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -12,6 +12,7 @@
* class lmbMacroUcFirstFilter.
*
* @filter ucfirst
+ * @aliases capitalize
* @package macro
* @version $Id$
*/
Modified: 3.x/trunk/limb/macro/src/lmbMacroFilterDictionary.class.php
===================================================================
--- 3.x/trunk/limb/macro/src/lmbMacroFilterDictionary.class.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/src/lmbMacroFilterDictionary.class.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -47,12 +47,23 @@
function register($filter_info)
{
- $name_to_lower = strtolower($filter_info->getName());
-
- if(isset($this->info[$name_to_lower]))
- return;
-
- $this->info[$name_to_lower] = $filter_info;
+ $names = array(strtolower($filter_info->getName()));
+
+ $aliases = $filter_info->getAliases();
+ if(count($aliases))
+ {
+ $aliases = array_map('strtolower', $aliases);
+
+ $names = array_merge($names, $aliases);
+ }
+
+ foreach($names as $filter_name)
+ {
+ if(isset($this->info[$filter_name]))
+ return;
+
+ $this->info[$filter_name] = $filter_info;
+ }
}
function registerFromFile($file)
Modified: 3.x/trunk/limb/macro/src/lmbMacroFilterInfo.class.php
===================================================================
--- 3.x/trunk/limb/macro/src/lmbMacroFilterInfo.class.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/src/lmbMacroFilterInfo.class.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -18,6 +18,7 @@
protected $name = '';
protected $class = '';
protected $file;
+ protected $aliases = array();
function __construct($name, $class)
{
@@ -33,6 +34,13 @@
$filter = $annotations['filter'];
$info = new lmbMacroFilterInfo($filter, $class);
+ if(isset($annotations['aliases']))
+ {
+ $filter_aliases = explode(',' , $annotations['aliases']);
+ $filter_aliases = array_map('trim', $filter_aliases);
+ $info->setAliases($filter_aliases);
+ }
+
$info->setFile($file);
return $info;
@@ -63,5 +71,15 @@
{
return $this->file;
}
+
+ function setAliases($aliases)
+ {
+ $this->aliases = $aliases;
+ }
+
+ function getAliases()
+ {
+ return $this->aliases;
+ }
}
Modified: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroNumberFormatFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroNumberFormatFilterTest.class.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroNumberFormatFilterTest.class.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -26,5 +26,14 @@
$out = $tpl->render();
$this->assertEqual($out, '1 234,56');
}
+
+ function testAlias()
+ {
+ $code = '{$#var|number:2,","," "}';
+ $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+ $tpl->set('var', 1234.56);
+ $out = $tpl->render();
+ $this->assertEqual($out, '1 234,56');
+ }
}
Modified: 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToLowerFilterTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToLowerFilterTest.class.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/tests/cases/filters/lmbMacroStrToLowerFilterTest.class.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -17,5 +17,14 @@
$out = $tpl->render();
$this->assertEqual($out, 'hello');
}
+
+ function testAlias()
+ {
+ $code = '{$#var|lowercase}';
+ $tpl = $this->_createMacroTemplate($code, 'tpl.html');
+ $tpl->set('var', 'HELLO');
+ $out = $tpl->render();
+ $this->assertEqual($out, 'hello');
+ }
}
Modified: 3.x/trunk/limb/macro/tests/cases/lmbMacroFilterDictionaryTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/lmbMacroFilterDictionaryTest.class.php 2007-11-08 14:44:04 UTC (rev 6507)
+++ 3.x/trunk/limb/macro/tests/cases/lmbMacroFilterDictionaryTest.class.php 2007-11-08 15:00:31 UTC (rev 6508)
@@ -29,6 +29,19 @@
$this->assertIsA($dictionary->findFilterInfo('testtag'), 'lmbMacroFilterInfo');
}
+ function testFindFilterInfoByAlias()
+ {
+ $filter_info = new lmbMacroFilterInfo('testtag', 'SomeFilterClass');
+ $filter_info->setAliases(array('testtag_alias', 'testtag_alias2'));
+ $dictionary = new lmbMacroFilterDictionary();
+ $dictionary->register($filter_info, $file = 'whatever');
+
+ $this->assertIsA($dictionary->findFilterInfo('testtag'), 'lmbMacroFilterInfo');
+ $this->assertIsA($dictionary->findFilterInfo('testtag_alias'), 'lmbMacroFilterInfo');
+ $this->assertIsA($dictionary->findFilterInfo('testtag_alias2'), 'lmbMacroFilterInfo');
+ }
+
+
function testRegisterFilterInfoOnceOnly()
{
$dictionary = new lmbMacroFilterDictionary();
@@ -56,6 +69,7 @@
<?php
/**
* @filter foo_{$rnd}
+ * @aliases foo1_{$rnd}, foo2_{$rnd}
*/
class Foo{$rnd}Filter extends lmbMacroFilter{}
@@ -67,6 +81,7 @@
file_put_contents($file = LIMB_VAR_DIR . '/filters/' . $rnd . '.filter.php', $contents);
$filter_info1 = new lmbMacroFilterInfo("foo_$rnd", "Foo{$rnd}Filter");
+ $filter_info1->setAliases(array("foo1_$rnd", "foo2_$rnd"));
$filter_info1->setFile($file);
$filter_info2 = new lmbMacroFilterInfo("bar_$rnd", "Bar{$rnd}Filter");
$filter_info2->setFile($file);
@@ -75,6 +90,7 @@
$dictionary->registerFromFile($file);
$this->assertEqual($dictionary->findFilterInfo("foo_$rnd"), $filter_info1);
+ $this->assertEqual($dictionary->findFilterInfo("foo1_$rnd"), $filter_info1);
$this->assertEqual($dictionary->findFilterInfo("bar_$rnd"), $filter_info2);
}
}
More information about the limb-svn
mailing list