liquid2 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +16 -2
- data/LICENSE_SHOPIFY.txt +8 -0
- data/README.md +416 -13
- data/lib/liquid2/context.rb +29 -18
- data/lib/liquid2/environment.rb +53 -6
- data/lib/liquid2/errors.rb +4 -2
- data/lib/liquid2/expressions/arguments.rb +20 -0
- data/lib/liquid2/expressions/boolean.rb +2 -1
- data/lib/liquid2/expressions/filtered.rb +19 -25
- data/lib/liquid2/expressions/loop.rb +7 -5
- data/lib/liquid2/expressions/path.rb +19 -2
- data/lib/liquid2/filter.rb +1 -2
- data/lib/liquid2/filters/array.rb +0 -1
- data/lib/liquid2/filters/sort.rb +5 -4
- data/lib/liquid2/loader.rb +1 -0
- data/lib/liquid2/nodes/tags/doc.rb +2 -0
- data/lib/liquid2/nodes/tags/extends.rb +270 -1
- data/lib/liquid2/nodes/tags/include.rb +7 -7
- data/lib/liquid2/nodes/tags/macro.rb +145 -1
- data/lib/liquid2/nodes/tags/render.rb +8 -10
- data/lib/liquid2/nodes/tags/with.rb +42 -1
- data/lib/liquid2/parser.rb +84 -7
- data/lib/liquid2/scanner.rb +18 -42
- data/lib/liquid2/static_analysis.rb +1 -1
- data/lib/liquid2/template.rb +52 -5
- data/lib/liquid2/undefined.rb +22 -20
- data/lib/liquid2/version.rb +1 -1
- data/lib/liquid2.rb +2 -0
- data/sig/liquid2.rbs +234 -28
- data.tar.gz.sig +0 -0
- metadata +15 -2
- metadata.gz.sig +0 -0
- data/.vscode/settings.json +0 -32
data/lib/liquid2/undefined.rb
CHANGED
@@ -5,6 +5,8 @@ require_relative "errors"
|
|
5
5
|
module Liquid2
|
6
6
|
# The default undefined type. Can be iterated over an indexed without error.
|
7
7
|
class Undefined
|
8
|
+
include Enumerable
|
9
|
+
|
8
10
|
attr_reader :force_default
|
9
11
|
|
10
12
|
def initialize(name, node: nil)
|
@@ -37,87 +39,87 @@ module Liquid2
|
|
37
39
|
class StrictUndefined < Undefined
|
38
40
|
def initialize(name, node: nil)
|
39
41
|
super
|
40
|
-
@message = "#{name.inspect} is undefined"
|
42
|
+
@message = "#{@node.is_a?(Path) ? @node : name.inspect} is undefined"
|
41
43
|
end
|
42
44
|
|
43
45
|
def respond_to_missing? = true
|
44
46
|
|
45
47
|
def method_missing(...)
|
46
|
-
raise UndefinedError.new(@message, @node)
|
48
|
+
raise UndefinedError.new(@message, @node.token)
|
47
49
|
end
|
48
50
|
|
49
51
|
def [](...)
|
50
|
-
raise UndefinedError.new(@message, @node)
|
52
|
+
raise UndefinedError.new(@message, @node.token)
|
51
53
|
end
|
52
54
|
|
53
55
|
def key?(...)
|
54
|
-
raise UndefinedError.new(@message, @node)
|
56
|
+
raise UndefinedError.new(@message, @node.token)
|
55
57
|
end
|
56
58
|
|
57
59
|
def include?(...)
|
58
|
-
raise UndefinedError.new(@message, @node)
|
60
|
+
raise UndefinedError.new(@message, @node.token)
|
59
61
|
end
|
60
62
|
|
61
63
|
def member?(...)
|
62
|
-
raise UndefinedError.new(@message, @node)
|
64
|
+
raise UndefinedError.new(@message, @node.token)
|
63
65
|
end
|
64
66
|
|
65
67
|
def fetch(...)
|
66
|
-
raise UndefinedError.new(@message, @node)
|
68
|
+
raise UndefinedError.new(@message, @node.token)
|
67
69
|
end
|
68
70
|
|
69
71
|
def !
|
70
|
-
raise UndefinedError.new(@message, @node)
|
72
|
+
raise UndefinedError.new(@message, @node.token)
|
71
73
|
end
|
72
74
|
|
73
75
|
def ==(_other)
|
74
|
-
raise UndefinedError.new(@message, @node)
|
76
|
+
raise UndefinedError.new(@message, @node.token)
|
75
77
|
end
|
76
78
|
|
77
79
|
def !=(_other)
|
78
|
-
raise UndefinedError.new(@message, @node)
|
80
|
+
raise UndefinedError.new(@message, @node.token)
|
79
81
|
end
|
80
82
|
|
81
83
|
alias eql? ==
|
82
84
|
|
83
85
|
def size
|
84
|
-
raise UndefinedError.new(@message, @node)
|
86
|
+
raise UndefinedError.new(@message, @node.token)
|
85
87
|
end
|
86
88
|
|
87
89
|
def length
|
88
|
-
raise UndefinedError.new(@message, @node)
|
90
|
+
raise UndefinedError.new(@message, @node.token)
|
89
91
|
end
|
90
92
|
|
91
93
|
def to_s
|
92
|
-
raise UndefinedError.new(@message, @node)
|
94
|
+
raise UndefinedError.new(@message, @node.token)
|
93
95
|
end
|
94
96
|
|
95
97
|
def to_i
|
96
|
-
raise UndefinedError.new(@message, @node)
|
98
|
+
raise UndefinedError.new(@message, @node.token)
|
97
99
|
end
|
98
100
|
|
99
101
|
def to_f
|
100
|
-
raise UndefinedError.new(@message, @node)
|
102
|
+
raise UndefinedError.new(@message, @node.token)
|
101
103
|
end
|
102
104
|
|
103
105
|
def each(...)
|
104
|
-
raise UndefinedError.new(@message, @node)
|
106
|
+
raise UndefinedError.new(@message, @node.token)
|
105
107
|
end
|
106
108
|
|
107
109
|
def each_with_index(...)
|
108
|
-
raise UndefinedError.new(@message, @node)
|
110
|
+
raise UndefinedError.new(@message, @node.token)
|
109
111
|
end
|
110
112
|
|
111
113
|
def join(...)
|
112
|
-
raise UndefinedError.new(@message, @node)
|
114
|
+
raise UndefinedError.new(@message, @node.token)
|
113
115
|
end
|
114
116
|
|
115
117
|
def to_liquid(_context)
|
116
|
-
raise UndefinedError.new(@message, @node)
|
118
|
+
raise UndefinedError.new(@message, @node.token)
|
117
119
|
end
|
118
120
|
|
119
121
|
def poke
|
120
|
-
raise UndefinedError.new(@message, @node)
|
122
|
+
raise UndefinedError.new(@message, @node.token)
|
121
123
|
end
|
122
124
|
end
|
123
125
|
|
data/lib/liquid2/version.rb
CHANGED
data/lib/liquid2.rb
CHANGED
data/sig/liquid2.rbs
CHANGED
@@ -76,6 +76,8 @@ module Liquid2
|
|
76
76
|
|
77
77
|
@undefined: singleton(Undefined)
|
78
78
|
|
79
|
+
@falsy_undefined: bool
|
80
|
+
|
79
81
|
@loader: TemplateLoader
|
80
82
|
|
81
83
|
@globals: Hash[String, untyped]?
|
@@ -98,7 +100,9 @@ module Liquid2
|
|
98
100
|
|
99
101
|
attr_reader shorthand_indexes: bool
|
100
102
|
|
101
|
-
|
103
|
+
attr_reader falsy_undefined: bool
|
104
|
+
|
105
|
+
def initialize: (?context_depth_limit: ::Integer, ?globals: Hash[String, untyped]?, ?loader: TemplateLoader?, ?local_namespace_limit: Integer?, ?loop_iteration_limit: Integer?, ?output_stream_limit: Integer?, ?shorthand_indexes: bool, ?suppress_blank_control_flow_blocks: bool, ?undefined: singleton(Undefined), ?falsy_undefined: bool) -> void
|
102
106
|
|
103
107
|
# @param source [String] template source text.
|
104
108
|
# @return [Template]
|
@@ -123,6 +127,10 @@ module Liquid2
|
|
123
127
|
# if _name_ did not exist in the filter register.
|
124
128
|
def delete_filter: (String name) -> ([_Filter, (Integer | nil)] | nil)
|
125
129
|
|
130
|
+
def register_tag: (String name, _Tag tag) -> void
|
131
|
+
|
132
|
+
def delete_tag: (String name) -> (_Tag | nil)
|
133
|
+
|
126
134
|
def setup_tags_and_filters: () -> void
|
127
135
|
|
128
136
|
def undefined: (String name, ?node: _HasToken?) -> Undefined
|
@@ -336,6 +344,8 @@ module Liquid2
|
|
336
344
|
def parse_string: () -> String
|
337
345
|
|
338
346
|
def parse_identifier: (?trailing_question: bool) -> Identifier
|
347
|
+
|
348
|
+
def parse_name: () -> String
|
339
349
|
|
340
350
|
# Parse comma separated expression.
|
341
351
|
# Leading commas should be consumed by the caller.
|
@@ -346,6 +356,10 @@ module Liquid2
|
|
346
356
|
# Leading commas should be consumed by the caller.
|
347
357
|
# @return [Array<KeywordArgument>]
|
348
358
|
def parse_keyword_arguments: () -> Array[KeywordArgument]
|
359
|
+
|
360
|
+
def parse_parameters: () -> Hash[String, Parameter]
|
361
|
+
|
362
|
+
def parse_arguments: () -> [Array[untyped], Array[KeywordArgument]]
|
349
363
|
|
350
364
|
class Precedence
|
351
365
|
LOWEST: 1
|
@@ -461,6 +475,8 @@ module Liquid2
|
|
461
475
|
|
462
476
|
attr_reader up_to_date: Proc::_Callable?
|
463
477
|
|
478
|
+
attr_reader source: String
|
479
|
+
|
464
480
|
# @param env [Environment]
|
465
481
|
# @param ast [RootNode]
|
466
482
|
# @param name [String] The template's name.
|
@@ -489,6 +505,10 @@ module Liquid2
|
|
489
505
|
|
490
506
|
def comments: () -> Array[BlockComment | InlineComment | Comment]
|
491
507
|
|
508
|
+
def docs: () -> Array[DocTag]
|
509
|
+
|
510
|
+
def macros: (?include_partials: bool) -> [Array[MacroTag], Array[CallTag]]
|
511
|
+
|
492
512
|
# Return an array of variables used in this template, without path segments.
|
493
513
|
# @param include_partials [bool]
|
494
514
|
# @return [Array[String]]
|
@@ -830,11 +850,11 @@ module Liquid2
|
|
830
850
|
@loops: Array[ForLoop]
|
831
851
|
|
832
852
|
# A stack of interrupts used to signal breaking and continuing `for` loops.
|
833
|
-
@interrupts: Array[
|
853
|
+
@interrupts: Array[Symbol]
|
834
854
|
|
835
855
|
attr_reader env: Environment
|
836
856
|
|
837
|
-
|
857
|
+
attr_accessor template: Template
|
838
858
|
|
839
859
|
attr_reader globals: _Namespace
|
840
860
|
|
@@ -842,8 +862,7 @@ module Liquid2
|
|
842
862
|
|
843
863
|
attr_reader tag_namespace: Hash[Symbol, untyped]
|
844
864
|
|
845
|
-
attr_accessor interrupts: Array[
|
846
|
-
|
865
|
+
attr_accessor interrupts: Array[Symbol]
|
847
866
|
|
848
867
|
BUILT_IN: BuiltIn
|
849
868
|
|
@@ -911,16 +930,13 @@ module Liquid2
|
|
911
930
|
|
912
931
|
def get_output_buffer: (untyped parent_buffer) -> untyped
|
913
932
|
|
914
|
-
# Mark _string_ as "safe" if auto escape is enabled.
|
915
|
-
def markup: (untyped string) -> untyped
|
916
|
-
|
917
933
|
def cycle: (untyped key, untyped length) -> untyped
|
918
934
|
|
919
|
-
def increment: (untyped name) ->
|
935
|
+
def increment: (untyped name) -> Integer
|
920
936
|
|
921
|
-
def decrement: (untyped name) ->
|
937
|
+
def decrement: (untyped name) -> Integer
|
922
938
|
|
923
|
-
def assign_score: (untyped value) ->
|
939
|
+
def assign_score: (untyped value) -> Integer
|
924
940
|
|
925
941
|
end
|
926
942
|
end
|
@@ -942,7 +958,7 @@ module Liquid2
|
|
942
958
|
|
943
959
|
attr_accessor source: (String | nil)
|
944
960
|
|
945
|
-
def initialize: (String message, ?[Symbol, String?, Integer]? token) -> void
|
961
|
+
def initialize: (String message, ?[Symbol, String?, Integer]? token, ?template_name: String?) -> void
|
946
962
|
|
947
963
|
def detailed_message: (?highlight: bool, **untyped kwargs) -> String
|
948
964
|
|
@@ -975,6 +991,12 @@ module Liquid2
|
|
975
991
|
class DisabledTagError < LiquidError
|
976
992
|
end
|
977
993
|
|
994
|
+
class TemplateInheritanceError < LiquidError
|
995
|
+
end
|
996
|
+
|
997
|
+
class RequiredBlockError < TemplateInheritanceError
|
998
|
+
end
|
999
|
+
|
978
1000
|
# The standard _for_ tag.
|
979
1001
|
class ForTag < Tag
|
980
1002
|
@expression: LoopExpression
|
@@ -1117,6 +1139,26 @@ module Liquid2
|
|
1117
1139
|
|
1118
1140
|
def evaluate: (RenderContext context) -> [String, untyped]
|
1119
1141
|
end
|
1142
|
+
|
1143
|
+
class Parameter < Expression
|
1144
|
+
@name: String
|
1145
|
+
|
1146
|
+
@sym: Symbol
|
1147
|
+
|
1148
|
+
@value: untyped
|
1149
|
+
|
1150
|
+
attr_reader name: String
|
1151
|
+
|
1152
|
+
attr_reader sym: Symbol
|
1153
|
+
|
1154
|
+
attr_reader value: (untyped | :undefined)
|
1155
|
+
|
1156
|
+
# @param name [Token]
|
1157
|
+
# @param value [Expression]
|
1158
|
+
def initialize: ([Symbol, String?, Integer] token, String name, untyped value) -> void
|
1159
|
+
|
1160
|
+
def evaluate: (RenderContext context) -> [String, untyped]
|
1161
|
+
end
|
1120
1162
|
end
|
1121
1163
|
|
1122
1164
|
module Liquid2
|
@@ -1170,11 +1212,11 @@ module Liquid2
|
|
1170
1212
|
class FilteredExpression < Expression
|
1171
1213
|
@left: Expression
|
1172
1214
|
|
1173
|
-
@filters: Array[Filter]
|
1215
|
+
@filters: Array[Filter]?
|
1174
1216
|
|
1175
|
-
attr_reader filters: Array[Filter]
|
1217
|
+
attr_reader filters: Array[Filter]?
|
1176
1218
|
|
1177
|
-
def initialize: ([Symbol, String?, Integer] token, untyped left, Array[Filter] filters) -> void
|
1219
|
+
def initialize: ([Symbol, String?, Integer] token, untyped left, Array[Filter]? filters) -> void
|
1178
1220
|
|
1179
1221
|
def evaluate: (RenderContext context) -> untyped
|
1180
1222
|
end
|
@@ -1207,25 +1249,17 @@ module Liquid2
|
|
1207
1249
|
class Filter < Expression
|
1208
1250
|
@name: String
|
1209
1251
|
|
1210
|
-
@args: Array[untyped]
|
1252
|
+
@args: Array[untyped]?
|
1211
1253
|
|
1212
1254
|
attr_reader name: String
|
1213
1255
|
|
1214
|
-
attr_reader args: Array[untyped]
|
1256
|
+
attr_reader args: Array[untyped]?
|
1215
1257
|
|
1216
1258
|
# @param name [Token]
|
1217
1259
|
# @param args [Array[Expression]]
|
1218
|
-
def initialize: ([Symbol, String?, Integer] token, String name, Array[untyped] args) -> void
|
1260
|
+
def initialize: ([Symbol, String?, Integer] token, String name, Array[untyped]? args) -> void
|
1219
1261
|
|
1220
1262
|
def evaluate: (untyped left, RenderContext context) -> untyped
|
1221
|
-
|
1222
|
-
private
|
1223
|
-
|
1224
|
-
# @param context [RenderContext]
|
1225
|
-
# @return [positional arguments, keyword arguments] An array with two elements.
|
1226
|
-
# The first is an array of evaluates positional arguments. The second is a hash
|
1227
|
-
# of keyword names to evaluated keyword values.
|
1228
|
-
def evaluate_args: (RenderContext context) -> [Array[untyped], Hash[Symbol, untyped]]
|
1229
1263
|
end
|
1230
1264
|
end
|
1231
1265
|
|
@@ -1341,10 +1375,16 @@ module Liquid2
|
|
1341
1375
|
attr_reader segments: Array[String | Integer | Path]
|
1342
1376
|
attr_reader head: (String | Integer | Path)
|
1343
1377
|
|
1378
|
+
RE_PROPERTY: ::Regexp
|
1379
|
+
|
1344
1380
|
# @param segments [Array[String | Integer | Path]]
|
1345
1381
|
def initialize: ([Symbol, String?, Integer] token, Array[String | Integer | Path] segments) -> void
|
1346
1382
|
|
1347
1383
|
def evaluate: (RenderContext context) -> untyped
|
1384
|
+
|
1385
|
+
private
|
1386
|
+
|
1387
|
+
def segment_to_s: (untyped segment, ?head: bool) -> ::String
|
1348
1388
|
end
|
1349
1389
|
end
|
1350
1390
|
|
@@ -1717,6 +1757,8 @@ module Liquid2
|
|
1717
1757
|
|
1718
1758
|
def self.nil_safe_casecmp: (untyped a, untyped b) -> (0 | 1 | -1)
|
1719
1759
|
|
1760
|
+
INFINITY_ARRAY: [Float]
|
1761
|
+
|
1720
1762
|
def self.numeric_compare: (untyped left, untyped right) -> (0 | 1 | -1)
|
1721
1763
|
|
1722
1764
|
def self.ints: (untyped obj) -> Array[(Integer | Float | BigDecimal)]
|
@@ -1956,6 +1998,8 @@ module Liquid2
|
|
1956
1998
|
class DocTag < Tag
|
1957
1999
|
@text: String
|
1958
2000
|
|
2001
|
+
attr_reader text: String
|
2002
|
+
|
1959
2003
|
def self.parse: ([Symbol, String?, Integer] token, Parser parser) -> DocTag
|
1960
2004
|
|
1961
2005
|
# @param text [String]
|
@@ -1984,7 +2028,7 @@ end
|
|
1984
2028
|
module Liquid2
|
1985
2029
|
# The standard _include_ tag.
|
1986
2030
|
class IncludeTag < Tag
|
1987
|
-
@
|
2031
|
+
@template_name: untyped
|
1988
2032
|
|
1989
2033
|
@repeat: bool
|
1990
2034
|
|
@@ -2014,7 +2058,7 @@ module Liquid2
|
|
2014
2058
|
|
2015
2059
|
# The standard _render_ tag.
|
2016
2060
|
class RenderTag < Tag
|
2017
|
-
@
|
2061
|
+
@template_name: untyped
|
2018
2062
|
|
2019
2063
|
@repeat: bool
|
2020
2064
|
|
@@ -2345,4 +2389,166 @@ module Liquid2
|
|
2345
2389
|
# Return _left_ serialized in JSON format.
|
2346
2390
|
def self.json: (untyped left, ?pretty: bool) -> String
|
2347
2391
|
end
|
2392
|
+
end
|
2393
|
+
|
2394
|
+
module Liquid2
|
2395
|
+
# The _macro_ tag.
|
2396
|
+
class MacroTag < Tag
|
2397
|
+
@macro_name: String
|
2398
|
+
|
2399
|
+
@params: Hash[String, Parameter]
|
2400
|
+
|
2401
|
+
@block: Block
|
2402
|
+
|
2403
|
+
@blank: bool
|
2404
|
+
|
2405
|
+
END_BLOCK: Set[String]
|
2406
|
+
|
2407
|
+
attr_reader macro_name: String
|
2408
|
+
|
2409
|
+
attr_reader params: Hash[String, Parameter]
|
2410
|
+
|
2411
|
+
attr_reader Block: Block
|
2412
|
+
|
2413
|
+
# @param parser [Parser]
|
2414
|
+
# @return [MacroTag]
|
2415
|
+
def self.parse: ([Symbol, String?, Integer] token, Parser parser) -> MacroTag
|
2416
|
+
|
2417
|
+
def initialize: ([Symbol, String?, Integer] token, String name, Hash[String, Parameter] params, Block block) -> void
|
2418
|
+
|
2419
|
+
def render: (RenderContext context, String _buffer) -> void
|
2420
|
+
end
|
2421
|
+
|
2422
|
+
# The _call_ tag.
|
2423
|
+
class CallTag < Tag
|
2424
|
+
@macro_name: String
|
2425
|
+
|
2426
|
+
@args: Array[untyped]
|
2427
|
+
|
2428
|
+
@kwargs: Array[KeywordArgument]
|
2429
|
+
|
2430
|
+
@blank: bool
|
2431
|
+
|
2432
|
+
DISABLED_TAGS: Set[String]
|
2433
|
+
|
2434
|
+
attr_reader macro_name: String
|
2435
|
+
|
2436
|
+
attr_reader args: Array[untyped]
|
2437
|
+
|
2438
|
+
attr_reader kwargs: Array[KeywordArgument]
|
2439
|
+
|
2440
|
+
# @param parser [Parser]
|
2441
|
+
# @return [CallTag]
|
2442
|
+
def self.parse: ([Symbol, String?, Integer] token, Parser parser) -> CallTag
|
2443
|
+
|
2444
|
+
def initialize: ([Symbol, String?, Integer] token, String name, Array[untyped] args, Array[KeywordArgument] kwargs) -> void
|
2445
|
+
|
2446
|
+
def render: (RenderContext context, String buffer) -> void
|
2447
|
+
end
|
2448
|
+
end
|
2449
|
+
|
2450
|
+
module Liquid2
|
2451
|
+
# The _extends_ tag.
|
2452
|
+
class ExtendsTag < Tag
|
2453
|
+
@template_name: String
|
2454
|
+
|
2455
|
+
@blank: bool
|
2456
|
+
|
2457
|
+
attr_reader template_name: String
|
2458
|
+
|
2459
|
+
# @param token [[Symbol, String?, Integer]]
|
2460
|
+
# @param parser [Parser]
|
2461
|
+
# @return [ExtendsTag]
|
2462
|
+
def self.parse: ([Symbol, String?, Integer] token, Parser parser) -> ExtendsTag
|
2463
|
+
|
2464
|
+
def initialize: ([Symbol, String?, Integer] token, String name) -> void
|
2465
|
+
|
2466
|
+
def render: (RenderContext context, String buffer) -> void
|
2467
|
+
|
2468
|
+
def stack_blocks: (RenderContext context, Template template) -> Template?
|
2469
|
+
|
2470
|
+
def inheritance_nodes: (RenderContext context, Template template) -> [Array[ExtendsTag], Array[BlockTag]]
|
2471
|
+
end
|
2472
|
+
|
2473
|
+
# The _block_ tag.
|
2474
|
+
class BlockTag < Tag
|
2475
|
+
@block_name: String
|
2476
|
+
|
2477
|
+
@block: Block
|
2478
|
+
|
2479
|
+
@required: bool
|
2480
|
+
|
2481
|
+
@blank: bool
|
2482
|
+
|
2483
|
+
END_BLOCK: Set[String]
|
2484
|
+
|
2485
|
+
attr_reader block_name: String
|
2486
|
+
|
2487
|
+
attr_reader block: Block
|
2488
|
+
|
2489
|
+
attr_reader required: bool
|
2490
|
+
|
2491
|
+
# @param token [[Symbol, String?, Integer]]
|
2492
|
+
# @param parser [Parser]
|
2493
|
+
# @return [BlockTag]
|
2494
|
+
def self.parse: ([Symbol, String?, Integer] token, Parser parser) -> BlockTag
|
2495
|
+
|
2496
|
+
def initialize: ([Symbol, String?, Integer] token, String name, Block block, required: bool) -> void
|
2497
|
+
|
2498
|
+
def render: (RenderContext context, String buffer) -> void
|
2499
|
+
end
|
2500
|
+
|
2501
|
+
class BlockDrop
|
2502
|
+
@token: [Symbol, String?, Integer]
|
2503
|
+
|
2504
|
+
@context: RenderContext
|
2505
|
+
|
2506
|
+
@buffer: String
|
2507
|
+
|
2508
|
+
@name: String
|
2509
|
+
|
2510
|
+
@parent: [BlockTag, bool, Template, untyped?]?
|
2511
|
+
|
2512
|
+
attr_reader token: [Symbol, String?, Integer]
|
2513
|
+
|
2514
|
+
# @param token [[Symbol, String?, Integer]]
|
2515
|
+
# @param context [RenderContext]
|
2516
|
+
# @param name [String]
|
2517
|
+
# @param parent [[BlockTag, bool, String, Block?]?]
|
2518
|
+
def initialize: ([Symbol, String?, Integer] token, RenderContext context, String name, untyped parent) -> void
|
2519
|
+
|
2520
|
+
def to_s: () -> ::String
|
2521
|
+
|
2522
|
+
def key?: (untyped key) -> bool
|
2523
|
+
|
2524
|
+
def []: (untyped key) -> untyped
|
2525
|
+
end
|
2526
|
+
end
|
2527
|
+
|
2528
|
+
module Liquid2
|
2529
|
+
class WithTag < Tag
|
2530
|
+
@args: Array[KeywordArgument]
|
2531
|
+
|
2532
|
+
@block: Block
|
2533
|
+
|
2534
|
+
@blank: bool
|
2535
|
+
|
2536
|
+
END_BLOCK: Set[String]
|
2537
|
+
|
2538
|
+
# @param token [[Symbol, String?, Integer]]
|
2539
|
+
# @param parser [Parser]
|
2540
|
+
# @return [WithTag]
|
2541
|
+
def self.parse: ([Symbol, String?, Integer] token, Parser parser) -> WithTag
|
2542
|
+
|
2543
|
+
# @param token [[Symbol, String?, Integer]]
|
2544
|
+
# @param args [Array[KeywordArgument]]
|
2545
|
+
# @param block [Block]
|
2546
|
+
def initialize: ([Symbol, String?, Integer] token, Array[KeywordArgument] args, Block block) -> void
|
2547
|
+
|
2548
|
+
def render: (RenderContext context, String buffer) -> void
|
2549
|
+
|
2550
|
+
def children: (untyped _static_context, ?include_partials: bool) -> ::Array[Node]
|
2551
|
+
|
2552
|
+
def block_scope: () -> Array[Identifier]
|
2553
|
+
end
|
2348
2554
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: liquid2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Prior
|
@@ -51,6 +51,20 @@ dependencies:
|
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '3.1'
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: base64
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0.2'
|
61
|
+
type: :runtime
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0.2'
|
54
68
|
email:
|
55
69
|
- jamesgr.prior@gmail.com
|
56
70
|
executables: []
|
@@ -59,7 +73,6 @@ extra_rdoc_files: []
|
|
59
73
|
files:
|
60
74
|
- ".rubocop.yml"
|
61
75
|
- ".ruby-version"
|
62
|
-
- ".vscode/settings.json"
|
63
76
|
- CHANGELOG.md
|
64
77
|
- LICENSE.txt
|
65
78
|
- LICENSE_SHOPIFY.txt
|
metadata.gz.sig
CHANGED
Binary file
|
data/.vscode/settings.json
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"rubocop.mode": "enableUnconditionally",
|
3
|
-
"cSpell.words": [
|
4
|
-
"bigdecimal",
|
5
|
-
"bytesize",
|
6
|
-
"byteslice",
|
7
|
-
"charpos",
|
8
|
-
"Cyclomatic",
|
9
|
-
"endcapture",
|
10
|
-
"endcase",
|
11
|
-
"endcomment",
|
12
|
-
"endraw",
|
13
|
-
"forloop",
|
14
|
-
"ivar",
|
15
|
-
"keyreq",
|
16
|
-
"kwargs",
|
17
|
-
"ljust",
|
18
|
-
"lparen",
|
19
|
-
"lstrip",
|
20
|
-
"ndigits",
|
21
|
-
"nodoc",
|
22
|
-
"parentloop",
|
23
|
-
"rparen",
|
24
|
-
"rpartition",
|
25
|
-
"rstrip",
|
26
|
-
"tablerow",
|
27
|
-
"truncatewords"
|
28
|
-
],
|
29
|
-
"cSpell.enabledFileTypes": {
|
30
|
-
"ruby": true
|
31
|
-
}
|
32
|
-
}
|