liquid 5.7.1 → 5.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +5 -1
- data/lib/liquid/standardfilters.rb +8 -33
- data/lib/liquid/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eedf7295997cbab7b8d526eb516c8c34aa4a73c8b943d69ee4363cb1684a9d12
|
4
|
+
data.tar.gz: 335b1d05b70f581e05730e6a21f71a22a83283ac6135e4f29dbab962063e9e90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e62a54477a5e5c1baba527b412d5009e892bf082c085de5416a88073fffc488576d6842615b1f7f7332d2bd02ccb1ff73bb3e2add22ec57be732d74e5178b389
|
7
|
+
data.tar.gz: aacf9a3490e2739a7a2ff738fee2d610dd833c5a2a763830c63de2972420687bb4989934d438ee4635d6251b1c0d8ac9eeb4a28a358255b7eeef40b49e30c340
|
data/History.md
CHANGED
@@ -2,7 +2,11 @@
|
|
2
2
|
|
3
3
|
## 5.8.0 (unreleased)
|
4
4
|
|
5
|
-
## 5.7.
|
5
|
+
## 5.7.2 2025-01-31
|
6
|
+
|
7
|
+
* Fix array filters to not support nested properties
|
8
|
+
|
9
|
+
## 5.7.1 2025-01-24
|
6
10
|
|
7
11
|
* Fix the `find` and `find_index`filters to return `nil` when filtering empty arrays
|
8
12
|
* Fix the `has` filter to return `false` when filtering empty arrays
|
@@ -387,7 +387,7 @@ module Liquid
|
|
387
387
|
end
|
388
388
|
elsif ary.all? { |el| el.respond_to?(:[]) }
|
389
389
|
begin
|
390
|
-
ary.sort { |a, b| nil_safe_compare(
|
390
|
+
ary.sort { |a, b| nil_safe_compare(a[property], b[property]) }
|
391
391
|
rescue TypeError
|
392
392
|
raise_property_error(property)
|
393
393
|
end
|
@@ -416,7 +416,7 @@ module Liquid
|
|
416
416
|
end
|
417
417
|
elsif ary.all? { |el| el.respond_to?(:[]) }
|
418
418
|
begin
|
419
|
-
ary.sort { |a, b| nil_safe_casecmp(
|
419
|
+
ary.sort { |a, b| nil_safe_casecmp(a[property], b[property]) }
|
420
420
|
rescue TypeError
|
421
421
|
raise_property_error(property)
|
422
422
|
end
|
@@ -504,7 +504,7 @@ module Liquid
|
|
504
504
|
[]
|
505
505
|
else
|
506
506
|
ary.uniq do |item|
|
507
|
-
|
507
|
+
item[property]
|
508
508
|
rescue TypeError
|
509
509
|
raise_property_error(property)
|
510
510
|
rescue NoMethodError
|
@@ -540,7 +540,7 @@ module Liquid
|
|
540
540
|
if property == "to_liquid"
|
541
541
|
e
|
542
542
|
elsif e.respond_to?(:[])
|
543
|
-
r =
|
543
|
+
r = e[property]
|
544
544
|
r.is_a?(Proc) ? r.call : r
|
545
545
|
end
|
546
546
|
end
|
@@ -564,7 +564,7 @@ module Liquid
|
|
564
564
|
[]
|
565
565
|
else
|
566
566
|
ary.reject do |item|
|
567
|
-
|
567
|
+
item[property].nil?
|
568
568
|
rescue TypeError
|
569
569
|
raise_property_error(property)
|
570
570
|
rescue NoMethodError
|
@@ -950,7 +950,7 @@ module Liquid
|
|
950
950
|
if property.nil?
|
951
951
|
item
|
952
952
|
elsif item.respond_to?(:[])
|
953
|
-
|
953
|
+
item[property]
|
954
954
|
else
|
955
955
|
0
|
956
956
|
end
|
@@ -976,9 +976,9 @@ module Liquid
|
|
976
976
|
|
977
977
|
block.call(ary) do |item|
|
978
978
|
if target_value.nil?
|
979
|
-
|
979
|
+
item[property]
|
980
980
|
else
|
981
|
-
|
981
|
+
item[property] == target_value
|
982
982
|
end
|
983
983
|
rescue TypeError
|
984
984
|
raise_property_error(property)
|
@@ -988,31 +988,6 @@ module Liquid
|
|
988
988
|
end
|
989
989
|
end
|
990
990
|
|
991
|
-
def fetch_property(drop, property_or_keys)
|
992
|
-
##
|
993
|
-
# This keeps backward compatibility by supporting properties containing
|
994
|
-
# dots. This is valid in Liquid syntax and used in some runtimes, such as
|
995
|
-
# Shopify with metafields.
|
996
|
-
#
|
997
|
-
# Using this approach, properties like 'price.value' can be accessed in
|
998
|
-
# both of the following examples:
|
999
|
-
#
|
1000
|
-
# ```
|
1001
|
-
# [
|
1002
|
-
# { 'name' => 'Item 1', 'price.price' => 40000 },
|
1003
|
-
# { 'name' => 'Item 2', 'price' => { 'value' => 39900 } }
|
1004
|
-
# ]
|
1005
|
-
# ```
|
1006
|
-
value = drop[property_or_keys]
|
1007
|
-
|
1008
|
-
return value if !value.nil? || !property_or_keys.is_a?(String)
|
1009
|
-
|
1010
|
-
keys = property_or_keys.split('.')
|
1011
|
-
keys.reduce(drop) do |drop, key|
|
1012
|
-
drop.respond_to?(:[]) ? drop[key] : drop
|
1013
|
-
end
|
1014
|
-
end
|
1015
|
-
|
1016
991
|
def raise_property_error(property)
|
1017
992
|
raise Liquid::ArgumentError, "cannot select the property '#{property}'"
|
1018
993
|
end
|
data/lib/liquid/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: liquid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.7.
|
4
|
+
version: 5.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Lütke
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-01-
|
10
|
+
date: 2025-01-31 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: strscan
|
@@ -158,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: 1.3.7
|
160
160
|
requirements: []
|
161
|
-
rubygems_version: 3.6.
|
161
|
+
rubygems_version: 3.6.3
|
162
162
|
specification_version: 4
|
163
163
|
summary: A secure, non-evaling end user template engine with aesthetic markup.
|
164
164
|
test_files: []
|