Konstantin Tennhard
95d5c24bfc
Standard filter truncate: truncate_string string coercion
...
The argument `truncate_string` is now coerced into a string to avoid
`NoMethodError`s. This is mostly for added resiliency. It is doubtful
that someone would actually intent to use a number as truncate string,
but accidentally supplying one is entirely possible.
2016-09-12 12:13:12 -04:00
Konstantin Tennhard
302185a7fc
Standard filter truncatewords: force truncate_string to string
...
Currently, `truncatewords` raises a TypeError when the argument
`truncate_string` is an interger. This PR forces string coercion for any
value provided for this argument. Thus,
```ruby
assert_equal 'one two1', @filters.truncatewords("one two three", 2, 1)
```
holds true. Another option would be to raise a `Liquid::ArgumentError`.
What is preferred?
2016-09-09 16:50:50 -04:00
Michael Angell
283f1bad18
Use .last instead of pop push method for updating last node in nodelist
2016-07-08 20:49:30 +10:00
Michael Angell
e1d40c7d89
Add whitespace control character and associated tests
2016-06-28 09:15:45 +10:00
Zac Stewart
f87b06095d
Fix doc formatting of code examples in file_system
...
These code examples are being rendered as paragraph text in the docs.
2016-06-15 15:34:14 -04:00
Gaurav Chande
00f53b16e8
Prevent Range usage in templates from blowing up
2016-06-02 16:38:44 -04:00
Gaurav Chande
6adc431a19
Make tag registry enumerable
2016-04-25 11:38:42 -04:00
Drew Martin
a80ecb7678
make markup validation a method on Liquid::Raw
2016-04-13 14:52:30 -04:00
Florian Weingarten
f93243cc1a
abs filter
2016-04-04 09:32:31 -04:00
Florian Weingarten
1e533a52e7
Merge pull request #735 from Shopify/fix-to-number-for-negative-float-strings
...
Fix to_number filter for negative float strings
2016-03-31 15:52:51 -04:00
Dylan Thacker-Smith
4239c899a4
Raise a Liquid::Error when a non-array is passed into the concat filter.
2016-03-31 15:47:06 -04:00
Florian Weingarten
1597f8859f
Fix to_number filter for negative float strings
2016-03-31 09:18:55 -04:00
Florian Weingarten
b3dda384c9
Merge pull request #733 from Shopify/fix-some-ruby-warnings
...
Fix a bunch of Ruby warnings
2016-03-30 17:09:00 -04:00
Florian Weingarten
d2f16d92d6
Fix a bunch of Ruby warnings
2016-03-30 20:42:30 +00:00
Florian Weingarten
8920e2a2a2
Release v4.0.0rc2
2016-03-30 20:13:21 +00:00
Ismael Celis
d03c4ae8e8
Allow Utils.to_number to work with anything that responds to #to_number
2016-03-30 01:57:21 -03:00
Jeroen Visser
04c393ab07
Use start_with? instead of Regex
...
Performance is increased by doing this:
require 'benchmark'
require 'tempfile'
n = 50000
test = File.expand_path(Tempfile.new('foo'))
Benchmark.bm(20) do |x|
x.report("Regex:") do
n.times { test =~ /\A#{test}/ }
end
x.report("String#start_with?:") do
n.times { test =~ test.start_with?(test) }
end
end
Benchmark result:
user system total real
Regex: 0.440000 0.010000 0.450000 ( 0.447357)
String#start_with?: 0.000000 0.000000 0.000000 ( 0.006313)
2016-03-21 14:23:35 +01:00
Gaurav Chande
dde00253f9
context is not always present on a Drop
2016-03-01 21:22:11 +00:00
Gaurav Chande
8e6b9d503d
Make Strainer also raise when registered method is overriden as protected
2016-02-24 20:23:49 +00:00
Gaurav Chande
8be38d1795
Strainer#add_filter should raise when registered method is overriden as private
2016-02-24 20:03:17 +00:00
Justin Li
0cc8b68a97
Make logic in Context#lookup_and_evaluate more understandable
2016-02-02 23:22:46 -05:00
Justin Li
a6fa4c5c38
Merge pull request #691 from urbandictionary/missing_variables_and_filters
...
Merge pull request 691
2016-02-02 23:13:44 -05:00
Ivan Kuznetsov
dadd9b4dd2
Add strict_variables/strict_filters render options to check for undefined variables and filters
2016-02-03 10:49:33 +07:00
Justin Li
6434b8d2bb
Merge pull request #696 from Shopify/no-send
...
Remove possibility for arbitrary sends
2016-02-02 11:01:46 -05:00
Justin Li
60b508b151
Use #each to avoid extra allocations
2016-02-01 13:01:25 -05:00
Justin Li
3891f14a1a
Take nested values into account for assign score
2016-02-01 13:01:25 -05:00
Justin Li
f2e6adf566
Remove arbitrary send vector
2016-02-01 11:38:40 -05:00
Pat Hawks
7e322f5cf8
Performance improvement: default filter
2016-01-23 23:18:51 -08:00
Florian Weingarten
4bc198a0db
4.0.0.rc1
2016-01-08 19:59:38 +00:00
Florian Weingarten
79e2d1d8b4
Liquid::TablerowloopDrop
2016-01-08 18:46:23 +00:00
Florian Weingarten
b7c4041db8
Merge pull request #681 from Shopify/save-some-loop-allocations
...
Reuse 'forloop' hash to save memory allocations
2016-01-06 22:47:39 +01:00
Florian Weingarten
e113c891ec
Convert forloop hash to drop
2016-01-06 21:30:32 +00:00
Guillaume Malette
a32ad449c0
Merge pull request #672 from Shopify/fix-proc-mapping
...
Test mapping over procs
2016-01-06 15:59:53 -05:00
Florian Weingarten
1662ba6679
Reuse 'forloop' hash to save memory allocations
2016-01-06 20:30:25 +00:00
Jonathan Cheatham
b892a73463
Ensure truncate is operating on a string
2015-12-22 19:40:35 -08:00
Guillaume Malette
0b55d09cea
Fix mapping over proc attributes
2015-11-20 13:04:42 -05:00
Dylan Thacker-Smith
bdb9a4a47f
Remove nil and empty string check in invoke_drop.
2015-11-09 15:03:36 -05:00
Tanel Jakobsoo
8d5a907dc8
Fixed issue where "nil" value for "escape" filter breaks rendering
...
Closes #664
2015-11-06 16:32:02 +02:00
Florian Weingarten
74cc41ce74
Merge pull request #662 from nickpearson/keep-argument-error-backtrace
...
Keep original stack trace in Liquid::ArgumentError
2015-10-29 15:24:54 +01:00
Nick Pearson
c582023321
Keep original stack trace in Liquid::ArgumentError
2015-10-29 08:15:37 -05:00
Thierry Joyal
ac041c4ad1
Rename before_method as liquid_method_missing
2015-10-28 17:28:19 +00:00
Justin Li
8612716129
Remove rescue in unescape filter
2015-10-21 02:01:21 -04:00
Larry Archer
04381418d3
Add url_decode filter to accompany url_encode
2015-10-21 01:58:22 -04:00
Marcel M. Cary
4100f8d641
Fix "sort" filter on empty array to return empty array
...
When sorting an empty array with the "sort" filter, it returns nil
instead of []. This confuses subsequent filters in the chain that
expect an array. For example, when followed by the "map" filter, it
produces an array containing one nil element: [nil].
I could special-case the nil return value, but that would be more
cumbersome than making sure "sort" always returns an array.
Add a case to the "sort" method to return [] if the array is empty,
before performing any checks on ary.first that assume a non-empty array.
There is still a danger of returning nil if the first item in the array
is nil and it is non-empty, but I'm not sure how better to handle that
case.
Apply a similar fix to sort_natural, uniq, and compact filters.
2015-09-29 10:24:31 -07:00
Dylan Thacker-Smith
704937bc00
Fix offenses from the new version of rubocop.
2015-09-25 19:34:44 -04:00
Justin Li
affae5ebef
Merge pull request #610 from boobooninja/gf3
...
Merge pull request 610
2015-08-03 20:50:14 -04:00
Akinori MUSHA
a215b70de9
Properly rescue ::ArgumentError in the date filter
2015-07-24 13:35:06 +09:00
Florian Weingarten
4d6dec9b5a
Fix chained access to multi-dimensional hash
2015-07-17 10:10:00 -04:00
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
Justin Li
b4e133e26f
Fix regression in range lookup
2015-07-09 13:21:46 -04:00