included the default filter function definitions in the extension class files directl...
authorfabien <fabien@93ef8e89-cb99-4229-a87c-7fa0fa45744b>
Mon, 14 Dec 2009 06:46:16 +0000 (06:46 +0000)
committerfabien <fabien@93ef8e89-cb99-4229-a87c-7fa0fa45744b>
Mon, 14 Dec 2009 06:46:16 +0000 (06:46 +0000)
git-svn-id: http://svn.twig-project.org/trunk@176 93ef8e89-cb99-4229-a87c-7fa0fa45744b

CHANGELOG
lib/Twig/Extension/Core.php
lib/Twig/Extension/Escaper.php
lib/Twig/runtime.php [deleted file]
lib/Twig/runtime_escaper.php [deleted file]

index d146da9..afa74ac 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,6 @@
 * 0.9.5-DEV
 
+ * included the default filter function definitions in the extension class files directly (Core, Escaper)
  * added the .. operator (as a syntactic sugar for the range filter when the step is 1)
  * added the in operator (as a syntactic sugar for the in filter)
  * added the following filters in the Core extension: in, range
index 7116bf2..34672be 100644 (file)
@@ -17,7 +17,6 @@ class Twig_Extension_Core extends Twig_Extension
    */
   public function initRuntime()
   {
-    require_once dirname(__FILE__).'/../runtime.php';
   }
 
   /**
@@ -116,3 +115,216 @@ class Twig_Extension_Core extends Twig_Extension
     return 'core';
   }
 }
+
+function twig_date_format_filter($timestamp, $format = 'F j, Y H:i')
+{
+  return $timestamp instanceof DateTime ? $timestamp->format($format) : date($format, $timestamp);
+}
+
+function twig_urlencode_filter($url, $raw = false)
+{
+  if ($raw)
+  {
+    return rawurlencode($url);
+  }
+
+  return urlencode($url);
+}
+
+function twig_join_filter($value, $glue = '')
+{
+  return implode($glue, (array) $value);
+}
+
+function twig_default_filter($value, $default = '')
+{
+  return is_null($value) ? $default : $value;
+}
+
+function twig_get_array_keys_filter($array)
+{
+  if (is_object($array) && $array instanceof Traversable)
+  {
+    return array_keys(iterator_to_array($array));
+  }
+
+  if (!is_array($array))
+  {
+    return array();
+  }
+
+  return array_keys($array);
+}
+
+function twig_reverse_filter($array)
+{
+  if (is_object($array) && $array instanceof Traversable)
+  {
+    return array_reverse(iterator_to_array($array));
+  }
+
+  if (!is_array($array))
+  {
+    return array();
+  }
+
+  return array_reverse($array);
+}
+
+function twig_is_even_filter($value)
+{
+  return $value % 2 == 0;
+}
+
+function twig_is_odd_filter($value)
+{
+  return $value % 2 == 1;
+}
+
+function twig_length_filter($thing)
+{
+  return is_string($thing) ? strlen($thing) : count($thing);
+}
+
+function twig_sort_filter($array)
+{
+  asort($array);
+
+  return $array;
+}
+
+function twig_in_filter($value, $compare)
+{
+  if (is_array($compare))
+  {
+    return in_array($value, $compare);
+  }
+  elseif (is_string($compare))
+  {
+    return false !== strpos($compare, (string) $value);
+  }
+  elseif (is_object($compare) && $compare instanceof Traversable)
+  {
+    return in_array($value, iterator_to_array($compare));
+  }
+
+  return false;
+}
+
+function twig_range_filter($start, $end, $step = 1)
+{
+  return range($start, $end, $step);
+}
+
+/*
+ * Each type specifies a way for applying a transformation to a string
+ * The purpose is for the string to be "escaped" so it is suitable for
+ * the format it is being displayed in.
+ *
+ * For example, the string: "It's required that you enter a username & password.\n"
+ * If this were to be displayed as HTML it would be sensible to turn the
+ * ampersand into '&amp;' and the apostrophe into '&aps;'. However if it were
+ * going to be used as a string in JavaScript to be displayed in an alert box
+ * it would be right to leave the string as-is, but c-escape the apostrophe and
+ * the new line.
+ */
+function twig_escape_filter(Twig_Environment $env, $string, $type = 'html')
+{
+  if (!is_string($string))
+  {
+    return $string;
+  }
+
+  switch ($type)
+  {
+    case 'js':
+      // a function the c-escapes a string, making it suitable to be placed in a JavaScript string
+      return str_replace(array("\\"  , "\n"  , "\r" , "\""  , "'"),
+                         array("\\\\", "\\n" , "\\r", "\\\"", "\\'"),
+                         $string);
+    case 'html':
+    default:
+      return htmlspecialchars($string, ENT_QUOTES, $env->getCharset());
+  }
+}
+
+// add multibyte extensions if possible
+if (function_exists('mb_get_info'))
+{
+  function twig_upper_filter(Twig_Environment $env, $string)
+  {
+    if (!is_null($env->getCharset()))
+    {
+      return mb_strtoupper($string, $env->getCharset());
+    }
+
+    return strtoupper($string);
+  }
+
+  function twig_lower_filter(Twig_Environment $env, $string)
+  {
+    if (!is_null($env->getCharset()))
+    {
+      return mb_strtolower($string, $env->getCharset());
+    }
+
+    return strtolower($string);
+  }
+
+  function twig_title_string_filter(Twig_Environment $env, $string)
+  {
+    if (is_null($env->getCharset()))
+    {
+      return ucwords(strtolower($string));
+    }
+
+    return mb_convert_case($string, MB_CASE_TITLE, $env->getCharset());
+  }
+
+  function twig_capitalize_string_filter(Twig_Environment $env, $string)
+  {
+    if (is_null($env->getCharset()))
+    {
+      return ucfirst(strtolower($string));
+    }
+
+    return mb_strtoupper(mb_substr($string, 0, 1, $env->getCharset())).
+           mb_strtolower(mb_substr($string, 1, mb_strlen($string), $env->getCharset()));
+  }
+}
+// and byte fallback
+else
+{
+  function twig_title_string_filter(Twig_Environment $env, $string)
+  {
+    return ucwords(strtolower($string));
+  }
+
+  function twig_capitalize_string_filter(Twig_Environment $env, $string)
+  {
+    return ucfirst(strtolower($string));
+  }
+}
+
+function twig_iterator_to_array($seq)
+{
+  if (is_array($seq))
+  {
+    return $seq;
+  }
+  elseif (is_object($seq) && $seq instanceof Traversable)
+  {
+    return $seq instanceof Countable ? $seq : iterator_to_array($seq);
+  }
+  else
+  {
+    return array();
+  }
+}
+
+// only for backward compatibility
+function twig_get_array_items_filter($array)
+{
+  // noop
+  return $array;
+}
index c6ac240..cefe3ac 100644 (file)
@@ -24,7 +24,6 @@ class Twig_Extension_Escaper extends Twig_Extension
    */
   public function initRuntime()
   {
-    require_once dirname(__FILE__).'/../runtime_escaper.php';
   }
 
   /**
@@ -74,3 +73,9 @@ class Twig_Extension_Escaper extends Twig_Extension
     return 'escaper';
   }
 }
+
+// tells the escaper node transformer that the string is safe
+function twig_safe_filter($string)
+{
+  return $string;
+}
diff --git a/lib/Twig/runtime.php b/lib/Twig/runtime.php
deleted file mode 100644 (file)
index 14235e0..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-function twig_date_format_filter($timestamp, $format = 'F j, Y H:i')
-{
-  return $timestamp instanceof DateTime ? $timestamp->format($format) : date($format, $timestamp);
-}
-
-function twig_urlencode_filter($url, $raw = false)
-{
-  if ($raw)
-  {
-    return rawurlencode($url);
-  }
-
-  return urlencode($url);
-}
-
-function twig_join_filter($value, $glue = '')
-{
-  return implode($glue, (array) $value);
-}
-
-function twig_default_filter($value, $default = '')
-{
-  return is_null($value) ? $default : $value;
-}
-
-function twig_get_array_keys_filter($array)
-{
-  if (is_object($array) && $array instanceof Traversable)
-  {
-    return array_keys(iterator_to_array($array));
-  }
-
-  if (!is_array($array))
-  {
-    return array();
-  }
-
-  return array_keys($array);
-}
-
-function twig_reverse_filter($array)
-{
-  if (is_object($array) && $array instanceof Traversable)
-  {
-    return array_reverse(iterator_to_array($array));
-  }
-
-  if (!is_array($array))
-  {
-    return array();
-  }
-
-  return array_reverse($array);
-}
-
-function twig_is_even_filter($value)
-{
-  return $value % 2 == 0;
-}
-
-function twig_is_odd_filter($value)
-{
-  return $value % 2 == 1;
-}
-
-function twig_length_filter($thing)
-{
-  return is_string($thing) ? strlen($thing) : count($thing);
-}
-
-function twig_sort_filter($array)
-{
-  asort($array);
-
-  return $array;
-}
-
-function twig_in_filter($value, $compare)
-{
-  if (is_array($compare))
-  {
-    return in_array($value, $compare);
-  }
-  elseif (is_string($compare))
-  {
-    return false !== strpos($compare, (string) $value);
-  }
-  elseif (is_object($compare) && $compare instanceof Traversable)
-  {
-    return in_array($value, iterator_to_array($compare));
-  }
-
-  return false;
-}
-
-function twig_range_filter($start, $end, $step = 1)
-{
-  return range($start, $end, $step);
-}
-
-/*
- * Each type specifies a way for applying a transformation to a string
- * The purpose is for the string to be "escaped" so it is suitable for
- * the format it is being displayed in.
- *
- * For example, the string: "It's required that you enter a username & password.\n"
- * If this were to be displayed as HTML it would be sensible to turn the
- * ampersand into '&amp;' and the apostrophe into '&aps;'. However if it were
- * going to be used as a string in JavaScript to be displayed in an alert box
- * it would be right to leave the string as-is, but c-escape the apostrophe and
- * the new line.
- */
-function twig_escape_filter(Twig_Environment $env, $string, $type = 'html')
-{
-  if (!is_string($string))
-  {
-    return $string;
-  }
-
-  switch ($type)
-  {
-    case 'js':
-      // a function the c-escapes a string, making it suitable to be placed in a JavaScript string
-      return str_replace(array("\\"  , "\n"  , "\r" , "\""  , "'"),
-                         array("\\\\", "\\n" , "\\r", "\\\"", "\\'"),
-                         $string);
-    case 'html':
-    default:
-      return htmlspecialchars($string, ENT_QUOTES, $env->getCharset());
-  }
-}
-
-// add multibyte extensions if possible
-if (function_exists('mb_get_info'))
-{
-  function twig_upper_filter(Twig_Environment $env, $string)
-  {
-    if (!is_null($env->getCharset()))
-    {
-      return mb_strtoupper($string, $env->getCharset());
-    }
-
-    return strtoupper($string);
-  }
-
-  function twig_lower_filter(Twig_Environment $env, $string)
-  {
-    if (!is_null($env->getCharset()))
-    {
-      return mb_strtolower($string, $env->getCharset());
-    }
-
-    return strtolower($string);
-  }
-
-  function twig_title_string_filter(Twig_Environment $env, $string)
-  {
-    if (is_null($env->getCharset()))
-    {
-      return ucwords(strtolower($string));
-    }
-
-    return mb_convert_case($string, MB_CASE_TITLE, $env->getCharset());
-  }
-
-  function twig_capitalize_string_filter(Twig_Environment $env, $string)
-  {
-    if (is_null($env->getCharset()))
-    {
-      return ucfirst(strtolower($string));
-    }
-
-    return mb_strtoupper(mb_substr($string, 0, 1, $env->getCharset())).
-           mb_strtolower(mb_substr($string, 1, mb_strlen($string), $env->getCharset()));
-  }
-}
-// and byte fallback
-else
-{
-  function twig_title_string_filter(Twig_Environment $env, $string)
-  {
-    return ucwords(strtolower($string));
-  }
-
-  function twig_capitalize_string_filter(Twig_Environment $env, $string)
-  {
-    return ucfirst(strtolower($string));
-  }
-}
-
-function twig_iterator_to_array($seq)
-{
-  if (is_array($seq))
-  {
-    return $seq;
-  }
-  elseif (is_object($seq) && $seq instanceof Traversable)
-  {
-    return $seq instanceof Countable ? $seq : iterator_to_array($seq);
-  }
-  else
-  {
-    return array();
-  }
-}
-
-// only for backward compatibility
-function twig_get_array_items_filter($array)
-{
-  // noop
-  return $array;
-}
diff --git a/lib/Twig/runtime_escaper.php b/lib/Twig/runtime_escaper.php
deleted file mode 100644 (file)
index 1a40d48..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-// tells the escaper node transformer that the string is safe
-function twig_safe_filter($string)
-{
-  return $string;
-}