Commit Graph
38 Commits
Author SHA1 Message Date
Florian Weingarten 3dbb35d823 Merge branch 'freeze_all_the_things'
Conflicts:
	History.md
	lib/liquid/tags/assign.rb
	lib/liquid/tags/capture.rb
	lib/liquid/tags/decrement.rb
	lib/liquid/tags/if.rb
2014-03-24 12:39:34 -04:00
Dylan Thacker-Smith 3b14e27f55 Allow newlines in tags and variables. 2014-03-20 17:27:03 -04:00
Dylan Thacker-Smith 503d924274 Use start and end of string rather than line matching in regexes. 2014-03-13 17:56:42 -04:00
Dylan Thacker-Smith 3c06d837b5 Speed up Context#increment_used_resources 2014-02-24 23:56:39 -05:00
Florian Weingarten 0a7de51e2b Revert some freezes on non-literals 2014-01-27 14:56:07 -05:00
Florian Weingarten c6e0c1e490 Fix resource counting bug with respond_to?(:length) 2014-01-08 13:00:53 -05:00
Florian Weingarten 43ac8d560b Freeze all the things 2014-01-07 12:35:16 -05:00
James Tucker 9b2d5b7dd3 Add a class cache to avoid runtime extend calls
* Strainer has a class cache that creates Strainer subclasses for each filter
   set that is used on .create calls.
 * Context now creates a list of filters and passes this to Strainer.create to
   utilize the class cache in almost all use cases.
 * If add_filter was called after a render, then the method cache may still be
   invalidated.

Conflicts:

	lib/liquid/strainer.rb
2013-08-31 18:56:35 +00:00
Jonas Schubert Erlandsson f91233450f Changes not empty? to any? 2013-07-01 16:12:58 +02:00
Florian Weingarten f4fb2f159c Merge pull request #157 from stomar/avoid_warnings
Avoid warnings in Ruby 1.9.3
2013-06-05 09:10:41 -07:00
Florian Weingarten 8760b5e8c4 Add optional resource usage limitations to number of rendering calls, length of rendering output and/or number of variable/capture assignments 2013-05-30 17:04:26 -04:00
Dylan Smith 38b4543bf1 Use sets to check if methods are invokable without symbolizing. 2013-02-05 14:45:08 -05:00
Jason Roelofs 1300210f05 Convert Strainer to white-list method protection
After moving the method existence check from Context into Strainer,
updated Strainer to only accept invokation methods that were added via
filter Modules, and done in a way that respond_to? is never called,
preventing unconstrained Symbol table growth.
2013-01-16 11:14:01 -05:00
Marcus Stollsteimer afc3944a4a Fix assignment with no effect outside of iterator 2012-11-18 10:21:03 +01:00
Jon Daniel 9c183bea83 added interrupt class for continue/break statements
When a continue or break statement is executed it pushes an interrupt to a
stack in context. If any non-handled interrupts are present blocks will cease
to execute. The for loop can handle the most recent interrupt in the stack.
2012-08-21 13:14:27 -04:00
Dennis Theisen 0e3b522fe2 Fix conditions using negative number comparisons 2012-03-12 16:38:34 -04:00
Steven Soroka 59a63e0fe5 fix failing test "recursively_included_template_does_not_produce_endless_loop", push needs to come before exception raise since pop is in ensure block and always happens. 2011-04-24 01:09:56 -05:00
thedarkoneandTobias Lütke a65c4f51bc These are strings already. 2011-01-28 21:16:22 -05:00
thedarkoneandTobias Lütke a24049906b Resolve literals faster. 2011-01-28 21:16:22 -05:00
thedarkoneandTobias Lütke aa678302d6 Fix comments. 2011-01-28 21:16:22 -05:00
thedarkoneandTobias Lütke 6d0bb3303c Clean-up Context#stack. 2011-01-28 21:16:22 -05:00
DBAandTobias Lütke 8304a046c9 Context
- Check arity of proc before calling, to prevent error when using ruby 1.9.1+

Code beautifer
  - context.rb
2010-08-23 01:30:03 +08:00
James MacAulay 0150067c40 Revert "Raise FilterNotFound on use of non-existent filter"
This reverts commit 01c25a11a3.

Conflicts:

	test/context_test.rb
2009-08-19 19:24:33 -04:00
James MacAulay 167825aa92 further differentiate between environments and only evaluate Procs once 2009-08-07 11:24:15 -04:00
James MacAulay c792c29066 Templates and Contexts differentiate between different sources of assigns 2009-08-06 18:33:41 -04:00
Tobias Lütke a65bd76e72 Merge branch 'master' of [email protected]:tobi/liquid
Conflicts:
	lib/liquid.rb
	lib/liquid/context.rb
	lib/liquid/variable.rb
	test/standard_tag_test.rb
2009-06-15 09:00:30 -04:00
Brian Candler 01c25a11a3 Raise FilterNotFound on use of non-existent filter 2009-06-06 16:32:20 +01:00
Brian Candler cfe3e6f3be Allow Hash with default value or default proc to be used 2009-06-06 16:16:06 +01:00
Jakub KuźmaandTobias Lütke 8d27864845 Ruby 1.9.1 bugfixes
Signed-off-by: Tobias Lütke <[email protected]>
2009-04-17 06:33:25 +08:00
Tobias Lütke edcc14f148 Reverted james filter in tags branch
This reverts commit 282786d7e2.

Conflicts:

	lib/liquid.rb
	lib/liquid/variable.rb
	test/if_else_test.rb
2009-04-06 08:30:19 -06:00
James MacAulay 282786d7e2 if blocks work with filtered variables 2008-10-15 17:02:26 -04:00
Mark H. Wilkinson 7acdac2a1c Fix attribute expansion to index only once in all cases.
Also drop array.<digits> syntax
2008-07-09 18:46:38 +01:00
Mark H. Wilkinson 819b70204f Fix syntax in doc comment; test same syntax. 2008-07-09 18:34:41 +01:00
Mark H. Wilkinson eb609ee4aa Strip trailing whitespace. 2008-07-09 18:34:41 +01:00
Tobias Lütke 8f45647aa3 Parse time errors should propagate to calling site 2008-05-08 12:35:17 -04:00
Tobias Lütke 4c0cfae0b7 Changed implementation of For in such a way that it only depends on the existence of a each method. This allows drops to simply implement each for enumeration 2008-05-08 12:30:48 -04:00
Tobias Lütke 7f58cbf82d Merged last set of changes from original SVN location 2008-05-08 11:34:43 -04:00
Tobias Lütke 1d647361e1 Initial github import of liquid 2008-05-08 11:28:13 -04:00