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
Justin Hileman
2872dd5048
Another non-callable test case for good measure
2012-10-01 14:51:15 -07:00
Justin Hileman
fc453b5d01
Better filters implementation:
...
* Throw UnexpectedValueException when unknown
filter is found.
* More optimized compiler code.
* Falsey initial values will still be fed through
the pipe.
2012-10-01 14:51:15 -07:00
Justin Hileman
1cf44d5de9
First value in the pipe should be interpolated first.
2012-10-01 14:51:15 -07:00
Justin Hileman
a64a6f82ee
Handle broken pipes
2012-10-01 14:51:15 -07:00
Justin Hileman
d209d1aea9
Implement {{% FILTERS }} pragma.
2012-10-01 14:51:14 -07:00