liquid2 0.1.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.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/.rubocop.yml +46 -0
  4. data/.ruby-version +1 -0
  5. data/.vscode/settings.json +32 -0
  6. data/CHANGELOG.md +5 -0
  7. data/LICENSE.txt +21 -0
  8. data/LICENSE_SHOPIFY.txt +20 -0
  9. data/README.md +219 -0
  10. data/Rakefile +23 -0
  11. data/Steepfile +26 -0
  12. data/lib/liquid2/context.rb +297 -0
  13. data/lib/liquid2/environment.rb +287 -0
  14. data/lib/liquid2/errors.rb +79 -0
  15. data/lib/liquid2/expression.rb +20 -0
  16. data/lib/liquid2/expressions/arguments.rb +25 -0
  17. data/lib/liquid2/expressions/array.rb +20 -0
  18. data/lib/liquid2/expressions/blank.rb +41 -0
  19. data/lib/liquid2/expressions/boolean.rb +20 -0
  20. data/lib/liquid2/expressions/filtered.rb +136 -0
  21. data/lib/liquid2/expressions/identifier.rb +43 -0
  22. data/lib/liquid2/expressions/lambda.rb +53 -0
  23. data/lib/liquid2/expressions/logical.rb +71 -0
  24. data/lib/liquid2/expressions/loop.rb +79 -0
  25. data/lib/liquid2/expressions/path.rb +33 -0
  26. data/lib/liquid2/expressions/range.rb +28 -0
  27. data/lib/liquid2/expressions/relational.rb +119 -0
  28. data/lib/liquid2/expressions/template_string.rb +20 -0
  29. data/lib/liquid2/filter.rb +95 -0
  30. data/lib/liquid2/filters/array.rb +202 -0
  31. data/lib/liquid2/filters/date.rb +20 -0
  32. data/lib/liquid2/filters/default.rb +16 -0
  33. data/lib/liquid2/filters/json.rb +15 -0
  34. data/lib/liquid2/filters/math.rb +87 -0
  35. data/lib/liquid2/filters/size.rb +11 -0
  36. data/lib/liquid2/filters/slice.rb +17 -0
  37. data/lib/liquid2/filters/sort.rb +96 -0
  38. data/lib/liquid2/filters/string.rb +204 -0
  39. data/lib/liquid2/loader.rb +59 -0
  40. data/lib/liquid2/loaders/file_system_loader.rb +76 -0
  41. data/lib/liquid2/loaders/mixins.rb +52 -0
  42. data/lib/liquid2/node.rb +113 -0
  43. data/lib/liquid2/nodes/comment.rb +18 -0
  44. data/lib/liquid2/nodes/output.rb +24 -0
  45. data/lib/liquid2/nodes/tags/assign.rb +35 -0
  46. data/lib/liquid2/nodes/tags/block_comment.rb +26 -0
  47. data/lib/liquid2/nodes/tags/capture.rb +40 -0
  48. data/lib/liquid2/nodes/tags/case.rb +111 -0
  49. data/lib/liquid2/nodes/tags/cycle.rb +63 -0
  50. data/lib/liquid2/nodes/tags/decrement.rb +29 -0
  51. data/lib/liquid2/nodes/tags/doc.rb +24 -0
  52. data/lib/liquid2/nodes/tags/echo.rb +31 -0
  53. data/lib/liquid2/nodes/tags/extends.rb +3 -0
  54. data/lib/liquid2/nodes/tags/for.rb +155 -0
  55. data/lib/liquid2/nodes/tags/if.rb +84 -0
  56. data/lib/liquid2/nodes/tags/include.rb +123 -0
  57. data/lib/liquid2/nodes/tags/increment.rb +29 -0
  58. data/lib/liquid2/nodes/tags/inline_comment.rb +28 -0
  59. data/lib/liquid2/nodes/tags/liquid.rb +29 -0
  60. data/lib/liquid2/nodes/tags/macro.rb +3 -0
  61. data/lib/liquid2/nodes/tags/raw.rb +30 -0
  62. data/lib/liquid2/nodes/tags/render.rb +137 -0
  63. data/lib/liquid2/nodes/tags/tablerow.rb +143 -0
  64. data/lib/liquid2/nodes/tags/translate.rb +3 -0
  65. data/lib/liquid2/nodes/tags/unless.rb +23 -0
  66. data/lib/liquid2/nodes/tags/with.rb +3 -0
  67. data/lib/liquid2/parser.rb +917 -0
  68. data/lib/liquid2/scanner.rb +595 -0
  69. data/lib/liquid2/static_analysis.rb +301 -0
  70. data/lib/liquid2/tag.rb +22 -0
  71. data/lib/liquid2/template.rb +182 -0
  72. data/lib/liquid2/undefined.rb +131 -0
  73. data/lib/liquid2/utils/cache.rb +80 -0
  74. data/lib/liquid2/utils/chain_hash.rb +40 -0
  75. data/lib/liquid2/utils/unescape.rb +119 -0
  76. data/lib/liquid2/version.rb +5 -0
  77. data/lib/liquid2.rb +90 -0
  78. data/performance/benchmark.rb +73 -0
  79. data/performance/memory_profile.rb +62 -0
  80. data/performance/profile.rb +71 -0
  81. data/sig/liquid2.rbs +2348 -0
  82. data.tar.gz.sig +0 -0
  83. metadata +164 -0
  84. metadata.gz.sig +0 -0
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,164 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: liquid2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Prior
8
+ bindir: bin
9
+ cert_chain:
10
+ - |
11
+ -----BEGIN CERTIFICATE-----
12
+ MIIEhTCCAu2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBEMRYwFAYDVQQDDA1qYW1l
13
+ c2dyLnByaW9yMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
14
+ FgNjb20wHhcNMjQxMDI0MDcxNDAzWhcNMjUxMDI0MDcxNDAzWjBEMRYwFAYDVQQD
15
+ DA1qYW1lc2dyLnByaW9yMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJ
16
+ k/IsZAEZFgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDvtEeN
17
+ ZNN153v2ZK+U+Tj7kfRgl52GzmZS7lIG83xvT5/K8xEG5G4Tqiq/aGuDdbnxtd/t
18
+ TQf6CtkixPzwj7WGIwoV28AUHKOJ7UjqRhXIuAn3nmzRLRNK2gVYpvzLTNCyLhIb
19
+ jyZqgvtjR9mmW/Uuq+9LcLN4iFfkW+4dSmcABnkZHWMWGZYMIwoYYpluEUS1KiRZ
20
+ mIALPEGO5JcpVvjpDwaP6GqV0khgnLixz9KlAF+2DCyki21wxtJoxJTuL9H5Ogb+
21
+ k+nDQd9ELFYfbn73UKYGPtoUxkQeNF/ajJAkb/8t0cwUeSgtpSPhWIITWBgdLq11
22
+ svViBlK9UZZC+dWG9x1lueVTG9fXBl69NJ9VA7MaxmHVY133sEySqwZMCrtDYjPX
23
+ wIzLI2U8iSDIsjxTq3F3pbxeD4ee85ZY/xAV9M6fpjmKJERibRZTUPQo9ujHAhVM
24
+ YNbfAHhPRGphT64/ocBjCmonrvA0fB3jP5wduEa5vD3JPOSb7dtCnNzNvDcCAwEA
25
+ AaOBgTB/MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSswivEK7I4
26
+ DrAJcSgIMhgedOJm5DAiBgNVHREEGzAZgRdqYW1lc2dyLnByaW9yQGdtYWlsLmNv
27
+ bTAiBgNVHRIEGzAZgRdqYW1lc2dyLnByaW9yQGdtYWlsLmNvbTANBgkqhkiG9w0B
28
+ AQsFAAOCAYEAdq8q0kDj14XNFMVYdjv1dG6Zaom3hEIkWv7+AsaPVw33puAnffQU
29
+ lb2H1FG0LOGailuzPUadop6w/7oHO2jefj/85V0Tk6Hhk8cQpYQrtQgOHA3nsbmJ
30
+ 9JksJ+Y8RbyZP5dDTyZjTG4N3kgwZeNozcLeLj2ONBZRvGAjh8fyHOdLMPVNpM2K
31
+ naRHKdSqWSU728nHDiVvLlGVkRInDmC+gC1msKqSEnQrLiBl27jMbsce9GKi2cb7
32
+ DNjDwDg37yrbWgU5LS97+DU6dbMGVE3zPpuZGPZMTdXqzWWy2VlTPXMvAVt3Y4YG
33
+ 90hO1nDIwLn/1w9+Vb76b/5xc8AWWLozK4IPjh3pTvL6tCDiZw7tOQYp2uIO1Id1
34
+ hKbb8cJaj/A6UsTE00yz5CUyQMcLz3LaL9k7Ek0u7vCcJLicl1HbAeq1ah7ePLLX
35
+ 6dM18fnfBc3yA4KI7AO8UAmRkTscMYV6f/K4YZR6ZYCNWRpY7rkg+arhf05aoSQf
36
+ vn9bO1bzwdnG
37
+ -----END CERTIFICATE-----
38
+ date: 1980-01-02 00:00:00.000000000 Z
39
+ dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: bigdecimal
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.1'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.1'
54
+ email:
55
+ - jamesgr.prior@gmail.com
56
+ executables: []
57
+ extensions: []
58
+ extra_rdoc_files: []
59
+ files:
60
+ - ".rubocop.yml"
61
+ - ".ruby-version"
62
+ - ".vscode/settings.json"
63
+ - CHANGELOG.md
64
+ - LICENSE.txt
65
+ - LICENSE_SHOPIFY.txt
66
+ - README.md
67
+ - Rakefile
68
+ - Steepfile
69
+ - lib/liquid2.rb
70
+ - lib/liquid2/context.rb
71
+ - lib/liquid2/environment.rb
72
+ - lib/liquid2/errors.rb
73
+ - lib/liquid2/expression.rb
74
+ - lib/liquid2/expressions/arguments.rb
75
+ - lib/liquid2/expressions/array.rb
76
+ - lib/liquid2/expressions/blank.rb
77
+ - lib/liquid2/expressions/boolean.rb
78
+ - lib/liquid2/expressions/filtered.rb
79
+ - lib/liquid2/expressions/identifier.rb
80
+ - lib/liquid2/expressions/lambda.rb
81
+ - lib/liquid2/expressions/logical.rb
82
+ - lib/liquid2/expressions/loop.rb
83
+ - lib/liquid2/expressions/path.rb
84
+ - lib/liquid2/expressions/range.rb
85
+ - lib/liquid2/expressions/relational.rb
86
+ - lib/liquid2/expressions/template_string.rb
87
+ - lib/liquid2/filter.rb
88
+ - lib/liquid2/filters/array.rb
89
+ - lib/liquid2/filters/date.rb
90
+ - lib/liquid2/filters/default.rb
91
+ - lib/liquid2/filters/json.rb
92
+ - lib/liquid2/filters/math.rb
93
+ - lib/liquid2/filters/size.rb
94
+ - lib/liquid2/filters/slice.rb
95
+ - lib/liquid2/filters/sort.rb
96
+ - lib/liquid2/filters/string.rb
97
+ - lib/liquid2/loader.rb
98
+ - lib/liquid2/loaders/file_system_loader.rb
99
+ - lib/liquid2/loaders/mixins.rb
100
+ - lib/liquid2/node.rb
101
+ - lib/liquid2/nodes/comment.rb
102
+ - lib/liquid2/nodes/output.rb
103
+ - lib/liquid2/nodes/tags/assign.rb
104
+ - lib/liquid2/nodes/tags/block_comment.rb
105
+ - lib/liquid2/nodes/tags/capture.rb
106
+ - lib/liquid2/nodes/tags/case.rb
107
+ - lib/liquid2/nodes/tags/cycle.rb
108
+ - lib/liquid2/nodes/tags/decrement.rb
109
+ - lib/liquid2/nodes/tags/doc.rb
110
+ - lib/liquid2/nodes/tags/echo.rb
111
+ - lib/liquid2/nodes/tags/extends.rb
112
+ - lib/liquid2/nodes/tags/for.rb
113
+ - lib/liquid2/nodes/tags/if.rb
114
+ - lib/liquid2/nodes/tags/include.rb
115
+ - lib/liquid2/nodes/tags/increment.rb
116
+ - lib/liquid2/nodes/tags/inline_comment.rb
117
+ - lib/liquid2/nodes/tags/liquid.rb
118
+ - lib/liquid2/nodes/tags/macro.rb
119
+ - lib/liquid2/nodes/tags/raw.rb
120
+ - lib/liquid2/nodes/tags/render.rb
121
+ - lib/liquid2/nodes/tags/tablerow.rb
122
+ - lib/liquid2/nodes/tags/translate.rb
123
+ - lib/liquid2/nodes/tags/unless.rb
124
+ - lib/liquid2/nodes/tags/with.rb
125
+ - lib/liquid2/parser.rb
126
+ - lib/liquid2/scanner.rb
127
+ - lib/liquid2/static_analysis.rb
128
+ - lib/liquid2/tag.rb
129
+ - lib/liquid2/template.rb
130
+ - lib/liquid2/undefined.rb
131
+ - lib/liquid2/utils/cache.rb
132
+ - lib/liquid2/utils/chain_hash.rb
133
+ - lib/liquid2/utils/unescape.rb
134
+ - lib/liquid2/version.rb
135
+ - performance/benchmark.rb
136
+ - performance/memory_profile.rb
137
+ - performance/profile.rb
138
+ - sig/liquid2.rbs
139
+ homepage: https://github.com/jg-rp/ruby-liquid2
140
+ licenses:
141
+ - MIT
142
+ metadata:
143
+ homepage_uri: https://github.com/jg-rp/ruby-liquid2
144
+ source_code_uri: https://github.com/jg-rp/ruby-liquid2
145
+ changelog_uri: https://github.com/jg-rp/ruby-liquid2/blob/main/CHANGELOG.md
146
+ rubygems_mfa_required: 'true'
147
+ rdoc_options: []
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 3.0.0
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ requirements: []
161
+ rubygems_version: 3.6.7
162
+ specification_version: 4
163
+ summary: Liquid templates for Ruby, with some extra features
164
+ test_files: []
metadata.gz.sig ADDED
Binary file