Commit Graph
49 Commits
Author SHA1 Message Date
Alessandro Diogo BrückheimerandMike 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 AngellandGitHub 5302f40342 Rubocop fixes (#1182) 2019-10-07 17:06:47 +11:00
Mike AngellandGitHub 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
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 AngellandGitHub cf4e77ab0c Merge branch 'master' into bump-ruby-2-4 2019-08-29 00:24:45 +10:00
Tobias LütkeandGitHub 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 MaroliandJustin Li 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-SmithandGitHub 48a6d86ac2 Use stackprof to test to lack of object allocations (#896) 2017-05-12 09:20:51 -04:00
Florian WeingartenandFlorian 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 DreyerandFlorian Weingarten 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
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
DBAandTobias Lütke 3d43efe2bc Ruby compatibility issues
- regexp engines are different from 1.8 to 1.9, fixed the literal shorthand regexp accordingly
  - changed the shorthand regexp text from a match to a string scan
  - test_helper now loads rubygems unless RUBY_VERSION is > 1.9
2010-08-24 08:17:42 +08:00
DBAandTobias Lütke 8579807d29 Conditions
- added test to assert that conditions can contain conditions within its value (eg 'a-and-b')

Tags
  - indented the if tag

Tests
  - added ruby-debug to the test_helper
  - indented some tests
2010-08-24 08:17:41 +08:00
DBAandTobias Lütke daf786fd28 Test Helper
- added assert_template_result_matches
  - fixed indentation / white spacing
2010-08-24 08:17:41 +08:00
DBAandTobias Lütke c72c84ea9b Tests
- Organized the files
  - Cleaned up some of the white spacing issues
  - A lot can still be done to make the tests more readable to the new developers
2010-08-23 01:30:01 +08:00
DBAandTobias Lütke 01145f872b Test Helper
- Removed unnecessary test helper file. The file being used is helper.rb
2010-08-23 01:30:00 +08:00
Tobias Lütke 1d647361e1 Initial github import of liquid 2008-05-08 11:28:13 -04:00