luoma 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 (152) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +2 -0
  3. data/.rdoc_options +16 -0
  4. data/CHANGELOG.md +5 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +68 -0
  7. data/Rakefile +69 -0
  8. data/Steepfile +41 -0
  9. data/certs/jgrp.pem +27 -0
  10. data/docs/configuration.md +180 -0
  11. data/docs/custom_filters.md +3 -0
  12. data/docs/custom_tags.md +3 -0
  13. data/docs/expressions.md +3 -0
  14. data/docs/extension_types.md +41 -0
  15. data/docs/filter_reference.md +1702 -0
  16. data/docs/index.md +73 -0
  17. data/docs/luoma_for_template_authors.md +3 -0
  18. data/docs/markdown.md +111 -0
  19. data/docs/predicate_reference.md +3 -0
  20. data/docs/static_analysis.md +3 -0
  21. data/docs/tag_reference.md +352 -0
  22. data/docs/template_loaders.md +177 -0
  23. data/docs/undefined_variables.md +3 -0
  24. data/docs-requirements.txt +11 -0
  25. data/docs_/cycle.md +17 -0
  26. data/docs_/font_rendering_example.md +157 -0
  27. data/docs_/header_block_example.md +51 -0
  28. data/docs_/increment_and_decrement.md +49 -0
  29. data/docs_/logo_style_example.md +40 -0
  30. data/docs_/migration.md +11 -0
  31. data/docs_/notes.md +19 -0
  32. data/lib/luoma/cache.rb +80 -0
  33. data/lib/luoma/chain_hash.rb +54 -0
  34. data/lib/luoma/context.rb +227 -0
  35. data/lib/luoma/drop.rb +84 -0
  36. data/lib/luoma/drops/block.rb +33 -0
  37. data/lib/luoma/drops/expression.rb +29 -0
  38. data/lib/luoma/drops/html_safe.rb +36 -0
  39. data/lib/luoma/drops/range.rb +69 -0
  40. data/lib/luoma/drops/undefined.rb +119 -0
  41. data/lib/luoma/environment.rb +479 -0
  42. data/lib/luoma/errors.rb +79 -0
  43. data/lib/luoma/escape.rb +35 -0
  44. data/lib/luoma/expression.rb +1271 -0
  45. data/lib/luoma/filter.rb +97 -0
  46. data/lib/luoma/filters/array.rb +372 -0
  47. data/lib/luoma/filters/date.rb +19 -0
  48. data/lib/luoma/filters/default.rb +16 -0
  49. data/lib/luoma/filters/json.rb +14 -0
  50. data/lib/luoma/filters/math.rb +84 -0
  51. data/lib/luoma/filters/size.rb +13 -0
  52. data/lib/luoma/filters/slice.rb +52 -0
  53. data/lib/luoma/filters/sort.rb +113 -0
  54. data/lib/luoma/filters/string.rb +186 -0
  55. data/lib/luoma/fnv.rb +15 -0
  56. data/lib/luoma/lexer.rb +106 -0
  57. data/lib/luoma/lexer_legacy.rb +396 -0
  58. data/lib/luoma/lexer_unified.rb +279 -0
  59. data/lib/luoma/loader.rb +50 -0
  60. data/lib/luoma/loaders/choice_loader.rb +20 -0
  61. data/lib/luoma/loaders/file_system_loader.rb +75 -0
  62. data/lib/luoma/loaders/mixins.rb +52 -0
  63. data/lib/luoma/markup.rb +109 -0
  64. data/lib/luoma/parser.rb +252 -0
  65. data/lib/luoma/parser_unified.rb +979 -0
  66. data/lib/luoma/predicates/blank.rb +19 -0
  67. data/lib/luoma/predicates/defined.rb +10 -0
  68. data/lib/luoma/predicates/empty.rb +15 -0
  69. data/lib/luoma/predicates/type.rb +35 -0
  70. data/lib/luoma/static_analysis.rb +427 -0
  71. data/lib/luoma/tags/assign.rb +63 -0
  72. data/lib/luoma/tags/break.rb +23 -0
  73. data/lib/luoma/tags/capture.rb +43 -0
  74. data/lib/luoma/tags/case.rb +137 -0
  75. data/lib/luoma/tags/comment.rb +17 -0
  76. data/lib/luoma/tags/continue.rb +23 -0
  77. data/lib/luoma/tags/define.rb +42 -0
  78. data/lib/luoma/tags/else.rb +30 -0
  79. data/lib/luoma/tags/for.rb +108 -0
  80. data/lib/luoma/tags/if.rb +109 -0
  81. data/lib/luoma/tags/import.rb +91 -0
  82. data/lib/luoma/tags/include.rb +77 -0
  83. data/lib/luoma/tags/output.rb +20 -0
  84. data/lib/luoma/tags/raw.rb +26 -0
  85. data/lib/luoma/tags/render.rb +92 -0
  86. data/lib/luoma/tags/with.rb +55 -0
  87. data/lib/luoma/template.rb +178 -0
  88. data/lib/luoma/token.rb +84 -0
  89. data/lib/luoma/version.rb +5 -0
  90. data/lib/luoma.rb +75 -0
  91. data/sig/luoma/cache.rbs +44 -0
  92. data/sig/luoma/chain_hash.rbs +26 -0
  93. data/sig/luoma/context.rbs +115 -0
  94. data/sig/luoma/drop.rbs +44 -0
  95. data/sig/luoma/drops/block.rbs +10 -0
  96. data/sig/luoma/drops/expression.rbs +10 -0
  97. data/sig/luoma/drops/html_safe.rbs +14 -0
  98. data/sig/luoma/drops/range.rbs +15 -0
  99. data/sig/luoma/drops/undefined.rbs +27 -0
  100. data/sig/luoma/environment.rbs +212 -0
  101. data/sig/luoma/errors.rbs +67 -0
  102. data/sig/luoma/escape.rbs +15 -0
  103. data/sig/luoma/expression.rbs +514 -0
  104. data/sig/luoma/filter.rbs +66 -0
  105. data/sig/luoma/filters/array.rbs +74 -0
  106. data/sig/luoma/filters/date.rbs +9 -0
  107. data/sig/luoma/filters/default.rbs +8 -0
  108. data/sig/luoma/filters/json.rbs +7 -0
  109. data/sig/luoma/filters/math.rbs +37 -0
  110. data/sig/luoma/filters/size.rbs +6 -0
  111. data/sig/luoma/filters/slice.rbs +10 -0
  112. data/sig/luoma/filters/sort.rbs +17 -0
  113. data/sig/luoma/filters/string.rbs +103 -0
  114. data/sig/luoma/fnv.rbs +3 -0
  115. data/sig/luoma/lexer.rbs +42 -0
  116. data/sig/luoma/lexer_legacy.rbs +81 -0
  117. data/sig/luoma/lexer_unified.rbs +49 -0
  118. data/sig/luoma/loader.rbs +40 -0
  119. data/sig/luoma/loaders/choice_loader.rbs +9 -0
  120. data/sig/luoma/loaders/file_system_loader.rbs +19 -0
  121. data/sig/luoma/loaders/mixins.rbs +16 -0
  122. data/sig/luoma/markup.rbs +68 -0
  123. data/sig/luoma/parser.rbs +105 -0
  124. data/sig/luoma/parser_unified.rbs +150 -0
  125. data/sig/luoma/predicates/blank.rbs +6 -0
  126. data/sig/luoma/predicates/defined.rbs +6 -0
  127. data/sig/luoma/predicates/empty.rbs +6 -0
  128. data/sig/luoma/predicates/type.rbs +21 -0
  129. data/sig/luoma/static_analysis.rbs +141 -0
  130. data/sig/luoma/tags/assign.rbs +12 -0
  131. data/sig/luoma/tags/break.rbs +11 -0
  132. data/sig/luoma/tags/capture.rbs +14 -0
  133. data/sig/luoma/tags/case.rbs +36 -0
  134. data/sig/luoma/tags/comment.rbs +11 -0
  135. data/sig/luoma/tags/continue.rbs +11 -0
  136. data/sig/luoma/tags/define.rbs +16 -0
  137. data/sig/luoma/tags/else.rbs +17 -0
  138. data/sig/luoma/tags/for.rbs +26 -0
  139. data/sig/luoma/tags/if.rbs +45 -0
  140. data/sig/luoma/tags/import.rbs +13 -0
  141. data/sig/luoma/tags/include.rbs +13 -0
  142. data/sig/luoma/tags/output.rbs +13 -0
  143. data/sig/luoma/tags/raw.rbs +11 -0
  144. data/sig/luoma/tags/render.rbs +13 -0
  145. data/sig/luoma/tags/with.rbs +15 -0
  146. data/sig/luoma/template.rbs +117 -0
  147. data/sig/luoma/token.rbs +81 -0
  148. data/sig/luoma.rbs +11 -0
  149. data/zensical.toml +363 -0
  150. data.tar.gz.sig +0 -0
  151. metadata +233 -0
  152. metadata.gz.sig +0 -0
metadata ADDED
@@ -0,0 +1,233 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: luoma
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
+ FgNjb20wHhcNMjUxMDI1MDc0ODI4WhcNMjYxMDI1MDc0ODI4WjBEMRYwFAYDVQQD
15
+ DA1qYW1lc2dyLnByaW9yMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJ
16
+ k/IsZAEZFgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDYTvQW
17
+ 0JzsHenYu4w0iHgJRtU9uK8vkDx1wlMioKlPFkaiMfxqUcTTfg80U/n8n/KKmpdq
18
+ y2rpUqv+VPE2nrfCUncf7ukqs+gF8uehbciMXV4iOzsZmqmtlPUJiGuSyO8REe/O
19
+ ERAyxYV8y5psF+WnW4uQzsWCKTnKbexIc6rf237veuYvYoBpnodJu0mJ0m9tBCFU
20
+ qH3Nk1sHBRIEEwn+nTiIiOMb+QMU5p0NIQkIhJO3el5nEQgIGxMPnie7PnwxPquQ
21
+ 1rouuISbLmQy5oKYc9kScwnHdAu2PtnnJFNNuQ37vED375iQgMem/tK8EgMm9/Qr
22
+ Qxd2DQqqehgtEySWntGHTxNLXQouqHIRyqzkbcCatJqC+PBBql1x2N1KqgyvbLM3
23
+ B0dZCdJECr5J8zrluMxYsy7uGMmLz3LZ7PskGaJg4XxXP3j/B/e03/AxDj0neZZu
24
+ xuDLIfMDSNILO1pskMc+Xp0xdnkbS4IjiMDTrhqABuEcdNYH/GpyTiA/I0cCAwEA
25
+ AaOBgTB/MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBR4j7UhnpT9
26
+ mLcAkshwkFtwVpMdejAiBgNVHREEGzAZgRdqYW1lc2dyLnByaW9yQGdtYWlsLmNv
27
+ bTAiBgNVHRIEGzAZgRdqYW1lc2dyLnByaW9yQGdtYWlsLmNvbTANBgkqhkiG9w0B
28
+ AQsFAAOCAYEAbTkg946BsGPQFX3jskBjwINeFnMP0IppuStonPQv3SNQu1SWP0xS
29
+ o1Qji1dxkWDfOcp1ffrRMUo7ecrJbTqQ5Sdx+7zw0OLodSVqSu1LMIVDw/T73smg
30
+ ADO2r3eZ8vxCKh7z4wUeKXvmBXi5NvpmvhH7D+qeG4OMLI8jnfmfbSHZQZbe2tpd
31
+ tJC+MYVok/m91fBrfv5wqLsR5QiJl3vcVhG+xACd46gr3JZFOxBqpSJrCYL8Gwqx
32
+ BaKEySCLGqkb0d1Rnt2/zTR2KtW2QJVH9rBMnJ+LsPEFKs1UHH4qHzxmwmmaQLon
33
+ MoE4UJ51GHGrjJ4WsHOUSOy5UbjaQec3kuIDwTXKbHws0J0Ut9S4S38opZKdQHDD
34
+ PUBpY0QA1CgE/VjKAYEDHOJyfUCNOl+sEESM+WxEXZAUVZLrFF7MljJqyQq+JyTD
35
+ vFKHe1ZAA76NFrPscB/ODPTBK8i+u4gwrD1UAsVAHuIbOpQu4LYAujluCu5cl2A8
36
+ HhmlCT7sTkqG
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: '4.1'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '4.1'
54
+ email:
55
+ - jamesgr.prior@gmail.com
56
+ executables: []
57
+ extensions: []
58
+ extra_rdoc_files: []
59
+ files:
60
+ - ".rdoc_options"
61
+ - CHANGELOG.md
62
+ - LICENSE.txt
63
+ - README.md
64
+ - Rakefile
65
+ - Steepfile
66
+ - certs/jgrp.pem
67
+ - docs-requirements.txt
68
+ - docs/configuration.md
69
+ - docs/custom_filters.md
70
+ - docs/custom_tags.md
71
+ - docs/expressions.md
72
+ - docs/extension_types.md
73
+ - docs/filter_reference.md
74
+ - docs/index.md
75
+ - docs/luoma_for_template_authors.md
76
+ - docs/markdown.md
77
+ - docs/predicate_reference.md
78
+ - docs/static_analysis.md
79
+ - docs/tag_reference.md
80
+ - docs/template_loaders.md
81
+ - docs/undefined_variables.md
82
+ - docs_/cycle.md
83
+ - docs_/font_rendering_example.md
84
+ - docs_/header_block_example.md
85
+ - docs_/increment_and_decrement.md
86
+ - docs_/logo_style_example.md
87
+ - docs_/migration.md
88
+ - docs_/notes.md
89
+ - lib/luoma.rb
90
+ - lib/luoma/cache.rb
91
+ - lib/luoma/chain_hash.rb
92
+ - lib/luoma/context.rb
93
+ - lib/luoma/drop.rb
94
+ - lib/luoma/drops/block.rb
95
+ - lib/luoma/drops/expression.rb
96
+ - lib/luoma/drops/html_safe.rb
97
+ - lib/luoma/drops/range.rb
98
+ - lib/luoma/drops/undefined.rb
99
+ - lib/luoma/environment.rb
100
+ - lib/luoma/errors.rb
101
+ - lib/luoma/escape.rb
102
+ - lib/luoma/expression.rb
103
+ - lib/luoma/filter.rb
104
+ - lib/luoma/filters/array.rb
105
+ - lib/luoma/filters/date.rb
106
+ - lib/luoma/filters/default.rb
107
+ - lib/luoma/filters/json.rb
108
+ - lib/luoma/filters/math.rb
109
+ - lib/luoma/filters/size.rb
110
+ - lib/luoma/filters/slice.rb
111
+ - lib/luoma/filters/sort.rb
112
+ - lib/luoma/filters/string.rb
113
+ - lib/luoma/fnv.rb
114
+ - lib/luoma/lexer.rb
115
+ - lib/luoma/lexer_legacy.rb
116
+ - lib/luoma/lexer_unified.rb
117
+ - lib/luoma/loader.rb
118
+ - lib/luoma/loaders/choice_loader.rb
119
+ - lib/luoma/loaders/file_system_loader.rb
120
+ - lib/luoma/loaders/mixins.rb
121
+ - lib/luoma/markup.rb
122
+ - lib/luoma/parser.rb
123
+ - lib/luoma/parser_unified.rb
124
+ - lib/luoma/predicates/blank.rb
125
+ - lib/luoma/predicates/defined.rb
126
+ - lib/luoma/predicates/empty.rb
127
+ - lib/luoma/predicates/type.rb
128
+ - lib/luoma/static_analysis.rb
129
+ - lib/luoma/tags/assign.rb
130
+ - lib/luoma/tags/break.rb
131
+ - lib/luoma/tags/capture.rb
132
+ - lib/luoma/tags/case.rb
133
+ - lib/luoma/tags/comment.rb
134
+ - lib/luoma/tags/continue.rb
135
+ - lib/luoma/tags/define.rb
136
+ - lib/luoma/tags/else.rb
137
+ - lib/luoma/tags/for.rb
138
+ - lib/luoma/tags/if.rb
139
+ - lib/luoma/tags/import.rb
140
+ - lib/luoma/tags/include.rb
141
+ - lib/luoma/tags/output.rb
142
+ - lib/luoma/tags/raw.rb
143
+ - lib/luoma/tags/render.rb
144
+ - lib/luoma/tags/with.rb
145
+ - lib/luoma/template.rb
146
+ - lib/luoma/token.rb
147
+ - lib/luoma/version.rb
148
+ - sig/luoma.rbs
149
+ - sig/luoma/cache.rbs
150
+ - sig/luoma/chain_hash.rbs
151
+ - sig/luoma/context.rbs
152
+ - sig/luoma/drop.rbs
153
+ - sig/luoma/drops/block.rbs
154
+ - sig/luoma/drops/expression.rbs
155
+ - sig/luoma/drops/html_safe.rbs
156
+ - sig/luoma/drops/range.rbs
157
+ - sig/luoma/drops/undefined.rbs
158
+ - sig/luoma/environment.rbs
159
+ - sig/luoma/errors.rbs
160
+ - sig/luoma/escape.rbs
161
+ - sig/luoma/expression.rbs
162
+ - sig/luoma/filter.rbs
163
+ - sig/luoma/filters/array.rbs
164
+ - sig/luoma/filters/date.rbs
165
+ - sig/luoma/filters/default.rbs
166
+ - sig/luoma/filters/json.rbs
167
+ - sig/luoma/filters/math.rbs
168
+ - sig/luoma/filters/size.rbs
169
+ - sig/luoma/filters/slice.rbs
170
+ - sig/luoma/filters/sort.rbs
171
+ - sig/luoma/filters/string.rbs
172
+ - sig/luoma/fnv.rbs
173
+ - sig/luoma/lexer.rbs
174
+ - sig/luoma/lexer_legacy.rbs
175
+ - sig/luoma/lexer_unified.rbs
176
+ - sig/luoma/loader.rbs
177
+ - sig/luoma/loaders/choice_loader.rbs
178
+ - sig/luoma/loaders/file_system_loader.rbs
179
+ - sig/luoma/loaders/mixins.rbs
180
+ - sig/luoma/markup.rbs
181
+ - sig/luoma/parser.rbs
182
+ - sig/luoma/parser_unified.rbs
183
+ - sig/luoma/predicates/blank.rbs
184
+ - sig/luoma/predicates/defined.rbs
185
+ - sig/luoma/predicates/empty.rbs
186
+ - sig/luoma/predicates/type.rbs
187
+ - sig/luoma/static_analysis.rbs
188
+ - sig/luoma/tags/assign.rbs
189
+ - sig/luoma/tags/break.rbs
190
+ - sig/luoma/tags/capture.rbs
191
+ - sig/luoma/tags/case.rbs
192
+ - sig/luoma/tags/comment.rbs
193
+ - sig/luoma/tags/continue.rbs
194
+ - sig/luoma/tags/define.rbs
195
+ - sig/luoma/tags/else.rbs
196
+ - sig/luoma/tags/for.rbs
197
+ - sig/luoma/tags/if.rbs
198
+ - sig/luoma/tags/import.rbs
199
+ - sig/luoma/tags/include.rbs
200
+ - sig/luoma/tags/output.rbs
201
+ - sig/luoma/tags/raw.rbs
202
+ - sig/luoma/tags/render.rbs
203
+ - sig/luoma/tags/with.rbs
204
+ - sig/luoma/template.rbs
205
+ - sig/luoma/token.rbs
206
+ - zensical.toml
207
+ homepage: https://jg-rp.github.io/luoma/
208
+ licenses:
209
+ - MIT
210
+ metadata:
211
+ homepage_uri: https://jg-rp.github.io/luoma/
212
+ source_code_uri: https://github.com/jg-rp/luoma-ruby
213
+ changelog_uri: https://github.com/jg-rp/luoma-ruby/blob/main/CHANGELOG.md
214
+ rubygems_mfa_required: 'true'
215
+ rdoc_options: []
216
+ require_paths:
217
+ - lib
218
+ required_ruby_version: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: 3.3.0
223
+ required_rubygems_version: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ requirements: []
229
+ rubygems_version: 4.0.6
230
+ specification_version: 4
231
+ summary: A modern template engine with a well-defined, composable agnostic expression
232
+ language.
233
+ test_files: []
metadata.gz.sig ADDED
Binary file