4b65a28722
Implement logic for stringify Hashes to keep compat with 3.4 ( #1892 )
...
* Exploring
* Bump to v5.6.5
---------
Co-authored-by: Dominic Petrick <[email protected] >
2025-01-15 16:36:53 -05:00
Michael Go
7c592c1c00
store StringScanner in ParseContext and reuse it through parsing
2025-01-07 14:32:45 -04:00
Ian Ker-Seymer and GitHub
63583ffe5b
Write one value at a time for array variables ( #1863 )
...
* Write one value at a time for array variables
* Handle recursive array
2024-12-11 10:16:58 -05:00
Michael Go
1f3ea7322b
avoid allocating new empty array
2024-11-04 15:35:45 -04:00
Dylan Thacker-Smith and GitHub
eb70bb9b87
Refactor Liquid::Variable to respect disabling liquid-c nodes ( #1584 )
...
parse_context.parse_expression is overriden in liquid-c and will avoid
parsing to a Liquid::C::Expression when parsing with
`disable_liquid_c_nodes: true`
2022-06-21 15:19:56 -04:00
Dylan Thacker-Smith and GitHub
8f7f8761d1
Use Array#each instead of Array#inject to avoid an object allocation ( #1341 )
2020-10-29 11:24:19 -04:00
Dylan Thacker-Smith and GitHub
7754d5aef5
Attempt to strict parse variables before lax parsing in lax error mode ( #1338 )
2020-10-28 10:37:00 -04:00
Dylan Thacker-Smith and GitHub
ae6bd9f6b0
Allow an empty variable tag during strict parsing for liquid-c compat ( #1320 )
2020-10-20 14:11:48 -04:00
Dylan Thacker-Smith
065ccbc4aa
Remove support for taint checking
2020-07-23 16:22:46 -04:00
Dylan Thacker-Smith
40c68c9c83
Remove support for taint_mode on ruby versions that don't support it
2019-12-19 11:12:51 -05:00
Alessandro Diogo Brückheimer and Mike Angell
e83b1e4159
Add ForceEqualSignAlignment to .rubocop.yml ( #1190 )
...
* Add ForceEqualSignAlignment to .rubocop.yml
* Revert ForceEqualSignAlignment cop
* Update method alignment
* Undo addition of whitespace to improve readability
* Fix missing alignment
2019-10-21 21:18:48 +10:00
Mike Angell and GitHub
0db9c56f34
Disable rendering of tag based on register ( #1162 )
...
* Disable rendering of tag based on register
* Improvements to disable tag
* Resolve disbale tag tests
* Test disable_tags register
* disabled_tags is now always avaiable
* Allow multiple tags to be disabled at once
* Move disabled check to block_body
* Code improvements
* Remove redundant nil check
* Improve disabled tag error output
* Improve disable tag API
* Code improvements
* Switch disabled? to not mutate output
* Fix array handling shortcut in disable_tags
2019-09-26 00:18:30 +10:00
Mike Angell and GitHub
b667bcb48b
Shopify stye guide fixes ( #1160 )
2019-09-20 02:08:11 +10:00
0d26f05bb8
Enabled frozen string literals ( #1154 )
...
* Enabled frozen string literals
* Update rubocop config
* Prefer string interpolation in simple cases
Co-Authored-By: Dylan Thacker-Smith <[email protected] >
2019-09-18 13:19:45 +10:00
Mike Angell
799da202df
Apply simple rubocop fixes
2019-08-31 21:58:33 +10:00
Florian Weingarten
9640e77805
render_to_output_buffer
2019-04-23 17:06:29 -04:00
Florian Weingarten
2a1ca3152d
liquid without the garbage
2019-04-22 16:34:31 -04:00
Richard Monette
274f078806
defer hash allocation in parse_filter_expressions
...
add exploration of GC object allocation
remove performance test
can actually remove one more if branch
use named locals to improve readability
2019-03-20 13:20:31 -04:00
Stephen Paul Weber
7d13d88258
s/Traversal/ParseTreeVisitor
2018-10-18 09:38:33 -04:00
Stephen Paul Weber
c11fc656cf
Colocate Traversal classes with classes they traverse
...
This puts all knowledge of the traversal in the same file, and removes
the need for a CASES registry.
2018-10-18 09:37:48 -04:00
Ashwin Maroli
e4da4d49d2
assign regex to a constant
2018-03-13 23:36:56 +05:30
Loren Hale
0b11b573d9
add global_filter
...
add a global filter using a proc
only add one proc and not an array
add tests to make sure the global_filter is applied after native filters
2015-07-12 16:46:43 +08:00
Dylan Thacker-Smith
c535af021a
Rename options instance variable in Variable and Tag.
2015-07-08 19:59:44 -04:00
Dylan Thacker-Smith
c45310170b
Use parse_context or options instead of @options.
2015-07-08 19:21:59 -04:00
Dylan Thacker-Smith
cebf75b8d7
Implement line numbers without the Liquid::Token class.
2015-07-08 19:21:59 -04:00
Dylan Thacker-Smith
c4c398174b
Use early returns rather than large if in Variable#taint_check
2015-07-07 15:56:03 -04:00
Dylan Thacker-Smith
80b6ac3bc7
Add taint warnings to the context rather than the template.
2015-07-07 15:53:02 -04:00
Florian Weingarten
82269e2509
fix a few more rubocop offenses
2015-06-04 13:09:58 -04:00
Florian Weingarten
3372ca8136
Rubocop
2015-05-14 14:37:18 +00:00
Justin Li
dd5ee81089
Disallow number and dash identifier prefixes
2014-10-29 12:08:00 -04:00
Justin Li
5616ddf00e
Remove obsolete comment
2014-10-27 13:44:14 -04:00
Justin Li
fcb23a4cd2
Disallow filters with no variable in strict mode
2014-10-27 13:34:27 -04:00
Justin Li
5d68e8803f
Ensure nil works as a variable name
2014-10-21 14:03:10 -04:00
Justin Li
dedd1d3dc0
Fix case where a variable name is falsy
2014-10-21 12:09:26 -04:00
Florian Weingarten
7196a2d58e
Avoid parallel assignments
2014-10-18 13:58:32 +00:00
Dylan Thacker-Smith
f387508666
Parse expressions in Liquid::Variable#parse.
2014-10-08 21:06:59 -04:00
Evan Huus
e836024dd9
Check and handle when a tainted variable is used
2014-09-16 17:23:26 +00:00
Dylan Thacker-Smith
b2a74883e9
Remove Liquid::FilterNotFoundError since it is never raised.
2014-09-15 17:42:07 -04:00
Florian Weingarten
c83e1c7b6d
prefix for Liquid::Error instances
2014-09-05 14:12:30 +00:00
Tristan Hume and Florian Weingarten
3a0ee6ae91
Remove parser switching duplication
2014-09-05 14:12:29 +00:00
Florian Weingarten
c2663258be
Merge pull request #364 from collectiveidea/instrument-rendering-with-hooks
...
Profiling the rendering of a liquid template
2014-08-13 23:04:29 +02:00
Tristan Hume
ffd4f9d959
Simplify secondary filter regex
2014-08-13 09:36:02 -04:00
Tristan Hume
292161865d
Simplify filter parse regex
2014-08-13 09:28:01 -04:00
Jason Roelofs
173a58d36a
Profile liquid rendering
...
Add a simple profiling system to liquid rendering. Each
liquid tag ({{ }} and {% %}) is processed through this profiling,
keeping track of the partial name (in the case of {% include %}), line
number, and the time it took to render the tag. In the case of {%
include %}, the profiler keeps track of the name of the partial and
properly links back tag rendering to the partial and line number for
easy lookup and dive down. With this, it's now possible to track down
exactly how long each tag takes to render.
These hooks get installed and uninstalled on an as-need basis so by
default there is no impact on the overall liquid execution speed.
2014-08-12 15:37:21 -04:00
Jason Hiltz-Laforge
adb7d2bbb8
Reduce temporary objects during variable/filter parsing
2014-07-21 21:13:59 +00:00
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
Florian Weingarten
43ac8d560b
Freeze all the things
2014-01-07 12:35:16 -05:00
Tristan Hume
dd3196b22e
Consistency in warnings.
2013-08-22 16:15:12 -04:00