Commit Graph
199 Commits
Author SHA1 Message Date
Justin Hileman 2bb13b37a4 Minor CS changes. 2014-03-25 09:21:16 -07:00
Justin Hileman 151de6f13e Extract spec loading code into base test case 2014-03-25 09:20:04 -07:00
Justin Hileman 3d9288dc8e Extract duplicated tmpdir code into base test case 2014-03-25 08:23:04 -07:00
Justin Hileman 84a4ff5b16 Use Composer autoload for unit tests. 2014-03-25 08:19:46 -07:00
Justin Hileman b3e3e0a27a Gah. Fix broken lambda tests.
This is what I get for blindly following code sniff recommendations.
2014-03-25 07:49:02 -07:00
Justin Hileman 8debbd58bb Remove some dead code. 2014-03-25 07:31:22 -07:00
Justin Hileman f696e7afa6 Fix incorrect or missing type annotations. 2014-03-25 07:31:04 -07:00
Justin Hileman 22a47452da How embarrassing.
I keep writing 2013 on my copyright notices.
2014-03-13 22:34:44 -07:00
Justin Hileman f1d3955492 Add a failing test for #183
Tokenization error for sections with only “0” in them.
2014-01-08 16:28:55 -08:00
Justin Hileman a467124a46 Improve test coverage. 2013-12-14 12:50:51 -08:00
Justin Hileman 2b5d9e5f39 Add 'cache_lambda_templates' config option.
Stop caching lambda templates by default, as they are generally too dynamic. Make lambda template caching an explicit opt-in. This will prevent filling cache directories with unusable files, and will actually speed things up the first time any given lambda template is used.

Fixes #180
2013-12-14 11:50:57 -08:00
Justin Hileman 6b7f33c78d Add passthrough optimization for lambda sections.
Higher order sections which return mustache-free strings don’t need to be re-parsed, compiled and rendered. Just use the string, silly!

Fixes #141
2013-12-14 10:45:17 -08:00
Justin Hileman e739e216a6 Implement section (and inverted section) filters.
This is a super powerful construct. It's also prolly a violation of the "logic-less-ness" of Mustache templates :(
2013-12-06 20:05:20 -08:00
Justin Hileman 38b6b245b1 Fix ArrayAccess priority:
* Methods brump properties and ArrayAccess
 * Properties beat ArrayAccess
 * ArrayAccess beats nothing at all
 * ArrayAccess also beats private properties

Add a test case to verify.

See #178
2013-12-06 19:45:28 -08:00
Justin Hileman 04b016016e Clean up code style, ArrayAccess test.
See #178
2013-12-06 19:45:20 -08:00
Christian Würker 0c85d19509 Allow use of ArrayAccess objects in context. 2013-12-06 19:08:53 -08:00
Justin Hileman 44b60e1bb8 Add a failing test for #167
Multiple levels of nested partials are only indented to the level of the first partial.
2013-09-26 09:48:29 -07:00
Justin Hileman cb2a6b5a03 Clean up comments, standardize whitespace. 2013-09-18 23:49:44 -07:00
Justin Hileman 0d161cc7d2 Bump copyright dates. 2013-09-18 12:10:17 -07:00
Amit Snyderman d6e1b45053 Add copyright/license header 2013-09-16 20:17:39 -04:00
Amit Snyderman 37e60df12c Revert timezone edit 2013-09-16 20:14:44 -04:00
Amit Snyderman 8894d68482 Use existing temp directory for test 2013-09-06 09:16:15 -04:00
Amit Snyderman 724cd60cac Restore logging for cache operations
`AbstractCache` exposes the ability to set a logger. Default behavior
automatically passes the logger reference down to the cache, unless a
specific cache instance was provided.
2013-09-05 19:22:13 -04:00
Amit Snyderman 94cd72bfd4 Restore original eval vs. require class loading
Pushing the responsibility of class loading onto the `Mustache_Cache`
implementation and changing the semantics of get/put to load/cache.
2013-09-05 18:56:43 -04:00
Amit Snyderman 60338e4956 Extract cache interface
Refactoring to allow for alternative cache implementations. Includes
implementations for the default noop (i.e. un-cached) behavior and a
filesystem-based cache whose configuration is consistent with the
existing Mustache_Engine constructor.

Includes updated and new tests.
2013-09-05 17:07:38 -04:00
Amit Snyderman 6634f44ca6 Explicitly set timezone to UTC for tests 2013-09-05 14:23:23 -04:00
Justin Hileman 07e96b2a19 Only run partials + lambda indent test on 5.3+ 2013-07-21 13:32:56 -07:00
Justin Hileman 408ff8d345 Add a failing test for #128 2013-07-21 00:48:18 -07:00
mlebrun 339c94b2e1 FilesystemLoader: removed all temp folder logic from testConstructorWithProtocol test.
Conflicts:
	test/Mustache/Test/Loader/FilesystemLoaderTest.php
2013-07-18 21:08:56 -07:00
Justin Hileman 1d21de63d6 Trailing slash test fix.
I suppose it would help if I didn't realpath the thing I was testing for realpathness
2013-07-15 18:11:36 -04:00
Justin Hileman 911151ad78 Looks like we don’t need that rtrim() after all.
(+ a test, confirming)
2013-07-15 18:08:24 -04:00
Justin Hileman 87a734e60c Update Compiler for new Parser output. 2013-05-15 13:37:05 -07:00
Justin Hileman de9941d271 Ensure that delimiter changes appear in token list. 2013-05-15 13:37:05 -07:00
Justin Hileman 32461bfb48 Track line number in Tokenizer
(needed for standalone line filtering via Parser)
2013-05-15 13:37:05 -07:00
Justin Hileman b77d2f308e Remove "standalone tag" filtering from Tokenizer. 2013-05-15 13:37:05 -07:00
Justin Hileman c5c36ddd2b Change entity_flags variable names to match PSR-2. 2013-04-27 16:04:05 -07:00
Pixie 311f337856 Allow passing in the $type parameter of htmlspecialchars() 2013-04-27 17:36:51 -05:00
Justin Hileman 01d413de0d Merge branch 'hotfix/2.2.0' into dev
Conflicts:
	src/Mustache/Compiler.php
	src/Mustache/Engine.php
2013-03-25 09:12:36 -07:00
Justin Hileman c160134b6d Add a 'strict_callables' option to Mustache_Engine
Prevents treating array('ClassName', 'methodName') or array($instance, 'methodName') as section or interpolation callables. This helps protect against arbitrary code evaluation when user input is passed directly into the template.

This setting is recommended for PHP 5.3+, and all PHP 5.2 projects not using section or interpolation lambdas.

The default value is false to preserve backwards compatibility.

See #138
2013-03-23 10:54:13 -07:00
Justin Hileman ca44ef68f8 Move loader cascading into the loadPartial method.
This means the `partialsLoader` property is never set to the default loader, fixing things like `setPartials`, but template loading cascades as per the spec.

Add test coverage for partial cascading.
2013-03-12 16:03:58 -07:00
Matt DeClaire 32b747be5c fix test: a partialLoader should match the loader when neither are specified 2013-03-12 15:19:12 -07:00
Justin Hileman 12d6884b4b Improve test coverage for custom escapers and charsets. 2013-01-26 16:48:35 -08:00
Justin Hileman a777c587f2 Add resolveValue method to base Template.
DRYs up compiled class output a bit and makes things FASTER!

Speeds up value resolution by 33% for primitives, 25% for methods and properties, and 10% for lambdas.
2013-01-26 16:19:06 -08:00
Justin Hileman cf76a4b8f9 Remove unused escape param from renderInternal 2013-01-26 14:49:14 -08:00
Justin Hileman e5bc8d5edf Add a CascadingLoader implementation. 2013-01-21 10:26:12 -08:00
Justin Hileman b22d15a759 Add an inline template loader.
This loader is awesome for micro-frameworks such as Silex :)
2013-01-21 10:03:57 -08:00
Justin Hileman 8b02366a3f Add test coverage for new exception types. 2013-01-20 10:50:00 -08:00
Justin Hileman 0436c59477 Improve Mustache exception types, catchability.
* Subclass common exception types (runtime, logic, invalid argument).
 * Add new "unknown x" exceptions for filters, helpers and templates.
 * Make all Mustache exceptions implement Mustache_Exception interface… Gotta catch 'em all!
2013-01-20 10:35:55 -08:00
Justin Hileman 1515f5126b Update logger to implement accepted PSR log spec
Add tests!
2013-01-11 22:48:43 -08:00
Justin Hileman 1560863c49 Failing test for empty-string filesystem loader extension.
See #123
2012-11-28 12:58:20 -08:00