Michael Go
e361a4d53c
introduce to_liquid_value on variable look and conditional statements
2021-05-26 17:27:18 -03:00
Dylan Thacker-Smith
2b11efc3ae
Fix performance regression from introduction of Template#disable_tags ( #1274 )
2020-08-18 11:25:51 -04:00
Dylan Thacker-Smith
065ccbc4aa
Remove support for taint checking
2020-07-23 16:22:46 -04:00
Dylan Thacker-Smith
f7ad602bfc
Fix liquid tag nested in outer block
2020-01-09 19:13:13 -05:00
Dylan Thacker-Smith
8074565c3e
Merge pull request #1216 from Shopify/unsupported-taint-mode
...
Remove support for taint_mode on ruby versions that don't support it
2020-01-07 10:12:36 -05:00
Thierry Joyal
c0ffeeef26
[Strainer] Separate factory from template
2020-01-06 17:45:25 +00: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
Martin Morissette
d8f31046a9
Introduce template factory
2019-12-17 21:45:08 -05:00
Alessandro Diogo Brückheimer
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
5302f40342
Rubocop fixes ( #1182 )
2019-10-07 17:06:47 +11:00
Mike Angell
b667bcb48b
Shopify stye guide fixes ( #1160 )
2019-09-20 02:08:11 +10:00
Mike Angell
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 <dylan.smith@shopify.com >
2019-09-18 13:19:45 +10:00
Mike Angell
799da202df
Apply simple rubocop fixes
2019-08-31 21:58:33 +10:00
Samuel
9672ed5285
Add a new {% render %} tag
...
Example:
```
// the_count.liquid
{{ number }}! Ah ah ah.
// my_template.liquid
{% for number in range (1..3) %}
{% render "the_count", number: number %}
{% endfor %}
Output:
1! Ah ah ah.
2! Ah ah ah.
3! Ah ah ah.
```
The `render` tag is a more strict version of the `include` tag. It is
designed to isolate itself from the parent rendering context both by
creating a new scope (which does not inherit the parent scope) and by
only inheriting "static" registers.
Static registers are those that do not hold mutable state which could
affect rendering. This again helps `render`ed templates remain entirely
separate from their calling context.
Unlike `include`, `render` does not permit specifying the target
template using a variable, only a string literal. For example, this
means that `{% render my_dynamic_template %}` is invalid syntax. This
will make it possible to statically analyze the dependencies between
templates without making Turing angry.
Note that the `static_environment` of a rendered template is inherited, unlike
the scope and regular environment. This environment is immutable from within the
template.
An alternate syntax, which mimics the `{% include ... for %}` tag is
currently in design discussion.
2019-08-29 16:32:05 -04:00
Mike Angell
cf4e77ab0c
Merge branch 'master' into bump-ruby-2-4
2019-08-29 00:24:45 +10:00
Tobias Lütke
6eab595fae
Merge pull request #1086 from Shopify/liquid-tag
...
Add {% liquid %} and {% echo %} tags
2019-08-27 15:10:20 -04:00
Mike Angell
b16b109a80
Bump Minimum version to 2.4 and bump Rubocop
2019-08-28 00:31:44 +10:00
Florian Weingarten
9640e77805
render_to_output_buffer
2019-04-23 17:06:29 -04:00
Justin Li
8d1cd41453
Add {% liquid %}, {% echo %}, and {% local %} tags
2019-04-01 20:08:38 -04:00
Ashwin Maroli
f59f6dea83
Fix simple RuboCop offenses and update TODO file ( #1062 )
...
* Fix Layout/EmptyLineAfterMagicComment offense
* Fix Layout/ExtraSpacing offense
* Fix Layout/ClosingParenthesisIndentation offenses
* Fix Style/MutableConstant offense
* Fix Style/UnneededInterpolation offenses
* Fix Style/RedundantParentheses offenses
* Update TODO config for RuboCop
* Add executable bit to test/test_helper.rb
ref: https://travis-ci.org/Shopify/liquid/jobs/488169512#L578
2019-02-22 12:32:56 -05:00
Dylan Thacker-Smith
48a6d86ac2
Use stackprof to test to lack of object allocations ( #896 )
2017-05-12 09:20:51 -04:00
Florian Weingarten
e2323332cd
Run tests with latest liquid/c gem
2015-06-08 18:38:35 +00:00
Florian Weingarten
e761a6864e
clean up some rubocop stuff
2015-06-04 12:56:29 -04:00
Justin Li
b1ee9129e7
Raise SyntaxError if raw tag is unclosed
2015-06-02 10:56:51 -04:00
Justin Li
6c058823ad
Merge pull request #570 from Shopify/fix-strict-conditions
...
Fix condition parse order in strict mode
2015-05-28 16:33:54 -04:00
Dylan Thacker-Smith
8d5e71f856
Allow the exception handler to convert exceptions to hide error messages.
2015-05-27 18:59:51 -04:00
Justin Li
dad98cfc89
Merge pull request #562 from Shopify/use-find_variable-for-parentloop
...
Use custom stack for forloop references
2015-05-15 21:48:57 -04:00
Justin Li
648a4888af
Pop the for_stack register in an ensure
2015-05-14 15:02:20 -04:00
Justin Li
f1bc9f27df
Include message in assert_template_result
2015-05-14 14:10:45 -04:00
Jean Boussier
b31df0fb3d
Mordernize code base with __dir__ and require_relative
2015-05-13 15:33:00 -04:00
Justin Li
a1b209d212
Disable minitest expectation interface due to reckless modification of Object
2015-04-20 10:15:19 -04:00
Dylan Thacker-Smith
950f062041
Allow filters to redefine Object methods to make them invokable.
2015-02-03 13:51:33 -05:00
Justin Li
dd455a6361
Force user to require the profiler themselves
2014-12-04 17:48:26 -05:00
Justin Li
8c70682d6b
Don't automatically load hooks
2014-12-04 17:39:41 -05:00
Evan Huus
eeb061ef44
Address code review comments
...
- clean up comment wording
- fix potentially leaky tests
2014-09-16 17:23:26 +00:00
Florian Weingarten
1678c07548
Call to_liquid in Context invoke
2014-08-12 19:54:12 +00:00
Florian Weingarten
a2f0f2547d
with_global_filter test helper
2014-07-28 19:28:22 +00:00
Ken Dreyer
ee4295c889
tests: switch to minitest
...
Ruby 1.9+ uses Minitest as the backend for Test::Unit. As of Minitest 5,
the shim has broken some compatibility with Test::Unit::TestCase in some
scenarios.
Adjusts the test suite to support Minitest 5's syntax.
Minitest versions 4 and below do not support the newer Minitest::Test
class that arrived in version 5. For that case, use the
MiniTest::Unit::TestCase class as a fallback
Conflicts:
test/integration/tags/for_tag_test.rb
test/test_helper.rb
2014-07-28 16:36:38 +00:00
Jason Hiltz-Laforge
fd8c30070a
Adding tests, spy dependency
2014-07-16 15:05:45 +00:00
Dylan Thacker-Smith
a5990042ff
Use render! in tests to make debugging test failures easier.
2014-03-20 12:04:17 -04:00
Arthur Neves
208c6c8800
remove ruby-debug
2014-01-07 11:31:46 -05:00
Simon Eskildsen
072c12dc47
Localize errors in Liquid
2013-08-30 12:31:57 -04:00
Simon Eskildsen
0a2f21386d
Add fixture helper
2013-08-30 12:31:57 -04:00
Simon Eskildsen
f37a984fd7
Add sketch of I18n error translation
2013-08-30 12:31:57 -04:00
Tristan Hume
eb68a751ac
Hopefully fix CI by improving multi-suite runner.
2013-08-16 15:15:15 -04:00
Tristan Hume
ace12e29da
Hopefully fix CI on Rubinius
2013-08-02 13:37:56 -04:00
Tristan Hume
824231284c
Run test suite with both parsers
2013-08-01 12:49:36 -04:00
Tristan Hume
4dc9cc0ea1
Add back tests for lax parsing
2013-07-26 11:55:50 -04:00
Jonathan Rudenberg
05a20c627d
Clean up test suite
2011-10-15 20:04:27 -04:00
Steven Soroka
2f11364417
make ruby-debug optional
2011-04-28 15:18:59 -05:00