expressir 2.1.30 → 2.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.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +99 -0
  3. data/.github/workflows/links.yml +100 -0
  4. data/.github/workflows/rake.yml +4 -0
  5. data/.github/workflows/release.yml +11 -0
  6. data/.github/workflows/validate_schemas.yml +1 -1
  7. data/.gitignore +3 -0
  8. data/.rubocop.yml +1 -1
  9. data/.rubocop_todo.yml +267 -53
  10. data/Gemfile +2 -1
  11. data/README.adoc +993 -55
  12. data/docs/Gemfile +12 -0
  13. data/docs/_config.yml +141 -0
  14. data/docs/_guides/changes/changes-format.adoc +778 -0
  15. data/docs/_guides/changes/importing-eengine.adoc +898 -0
  16. data/docs/_guides/changes/index.adoc +396 -0
  17. data/docs/_guides/changes/programmatic-usage.adoc +1038 -0
  18. data/docs/_guides/changes/validating-changes.adoc +681 -0
  19. data/docs/_guides/cli/benchmark-performance.adoc +834 -0
  20. data/docs/_guides/cli/coverage-analysis.adoc +921 -0
  21. data/docs/_guides/cli/format-schemas.adoc +547 -0
  22. data/docs/_guides/cli/index.adoc +8 -0
  23. data/docs/_guides/cli/managing-changes.adoc +927 -0
  24. data/docs/_guides/cli/validate-ascii.adoc +645 -0
  25. data/docs/_guides/cli/validate-schemas.adoc +534 -0
  26. data/docs/_guides/formatter/formatter-architecture.adoc +401 -0
  27. data/docs/_guides/index.adoc +165 -0
  28. data/docs/_guides/ler/creating-packages.adoc +664 -0
  29. data/docs/_guides/ler/index.adoc +305 -0
  30. data/docs/_guides/ler/loading-packages.adoc +707 -0
  31. data/docs/_guides/ler/package-formats.adoc +748 -0
  32. data/docs/_guides/ler/querying-packages.adoc +826 -0
  33. data/docs/_guides/ler/validating-packages.adoc +750 -0
  34. data/docs/_guides/liquid/basic-templates.adoc +813 -0
  35. data/docs/_guides/liquid/documentation-generation.adoc +1042 -0
  36. data/docs/_guides/liquid/drops-reference.adoc +829 -0
  37. data/docs/_guides/liquid/filters-and-tags.adoc +912 -0
  38. data/docs/_guides/liquid/index.adoc +468 -0
  39. data/docs/_guides/manifests/creating-manifests.adoc +483 -0
  40. data/docs/_guides/manifests/index.adoc +307 -0
  41. data/docs/_guides/manifests/resolving-manifests.adoc +557 -0
  42. data/docs/_guides/manifests/validating-manifests.adoc +713 -0
  43. data/docs/_guides/ruby-api/formatting-schemas.adoc +605 -0
  44. data/docs/_guides/ruby-api/index.adoc +257 -0
  45. data/docs/_guides/ruby-api/parsing-files.adoc +421 -0
  46. data/docs/_guides/ruby-api/search-engine.adoc +609 -0
  47. data/docs/_guides/ruby-api/working-with-repository.adoc +577 -0
  48. data/docs/_pages/data-model.adoc +665 -0
  49. data/docs/_pages/express-language.adoc +506 -0
  50. data/docs/_pages/getting-started.adoc +414 -0
  51. data/docs/_pages/index.adoc +116 -0
  52. data/docs/_pages/introduction.adoc +256 -0
  53. data/docs/_pages/ler-packages.adoc +837 -0
  54. data/docs/_pages/parsers.adoc +709 -0
  55. data/docs/_pages/schema-manifests.adoc +431 -0
  56. data/docs/_references/index.adoc +228 -0
  57. data/docs/_tutorials/creating-ler-package.adoc +735 -0
  58. data/docs/_tutorials/documentation-coverage.adoc +795 -0
  59. data/docs/_tutorials/index.adoc +221 -0
  60. data/docs/_tutorials/liquid-templates.adoc +806 -0
  61. data/docs/_tutorials/parsing-your-first-schema.adoc +522 -0
  62. data/docs/_tutorials/querying-schemas.adoc +751 -0
  63. data/docs/_tutorials/working-with-multiple-schemas.adoc +676 -0
  64. data/docs/index.adoc +242 -0
  65. data/docs/lychee.toml +87 -0
  66. data/examples/demo_ler_usage.sh +86 -0
  67. data/examples/ler/README.md +111 -0
  68. data/examples/ler/simple_example.ler +0 -0
  69. data/examples/ler/simple_schema.exp +33 -0
  70. data/examples/ler_build.rb +75 -0
  71. data/examples/ler_cli.rb +79 -0
  72. data/examples/ler_demo_complete.rb +276 -0
  73. data/examples/ler_query.rb +91 -0
  74. data/examples/ler_query_examples.rb +305 -0
  75. data/examples/ler_stats.rb +81 -0
  76. data/examples/phase3_demo.rb +159 -0
  77. data/examples/query_demo_simple.rb +131 -0
  78. data/expressir.gemspec +4 -2
  79. data/lib/expressir/benchmark.rb +6 -6
  80. data/lib/expressir/cli.rb +21 -4
  81. data/lib/expressir/commands/format.rb +28 -0
  82. data/lib/expressir/commands/manifest.rb +427 -0
  83. data/lib/expressir/commands/package.rb +1274 -0
  84. data/lib/expressir/commands/validate.rb +70 -37
  85. data/lib/expressir/commands/validate_ascii.rb +607 -0
  86. data/lib/expressir/commands/validate_load.rb +88 -0
  87. data/lib/expressir/coverage.rb +15 -11
  88. data/lib/expressir/express/builder.rb +350 -0
  89. data/lib/expressir/express/builders/attribute_decl_builder.rb +38 -0
  90. data/lib/expressir/express/builders/built_in_builder.rb +88 -0
  91. data/lib/expressir/express/builders/constant_builder.rb +115 -0
  92. data/lib/expressir/express/builders/declaration_builder.rb +24 -0
  93. data/lib/expressir/express/builders/derive_clause_builder.rb +16 -0
  94. data/lib/expressir/express/builders/derived_attr_builder.rb +28 -0
  95. data/lib/expressir/express/builders/domain_rule_builder.rb +21 -0
  96. data/lib/expressir/express/builders/entity_decl_builder.rb +108 -0
  97. data/lib/expressir/express/builders/explicit_attr_builder.rb +52 -0
  98. data/lib/expressir/express/builders/expression_builder.rb +453 -0
  99. data/lib/expressir/express/builders/function_decl_builder.rb +84 -0
  100. data/lib/expressir/express/builders/helpers.rb +148 -0
  101. data/lib/expressir/express/builders/interface_builder.rb +171 -0
  102. data/lib/expressir/express/builders/inverse_attr_builder.rb +45 -0
  103. data/lib/expressir/express/builders/inverse_attr_type_builder.rb +36 -0
  104. data/lib/expressir/express/builders/inverse_clause_builder.rb +16 -0
  105. data/lib/expressir/express/builders/literal_builder.rb +107 -0
  106. data/lib/expressir/express/builders/procedure_decl_builder.rb +80 -0
  107. data/lib/expressir/express/builders/qualifier_builder.rb +128 -0
  108. data/lib/expressir/express/builders/reference_builder.rb +27 -0
  109. data/lib/expressir/express/builders/rule_decl_builder.rb +95 -0
  110. data/lib/expressir/express/builders/schema_body_decl_builder.rb +22 -0
  111. data/lib/expressir/express/builders/schema_decl_builder.rb +62 -0
  112. data/lib/expressir/express/builders/schema_version_builder.rb +40 -0
  113. data/lib/expressir/express/builders/simple_id_builder.rb +26 -0
  114. data/lib/expressir/express/builders/statement_builder.rb +250 -0
  115. data/lib/expressir/express/builders/subtype_constraint_builder.rb +188 -0
  116. data/lib/expressir/express/builders/syntax_builder.rb +19 -0
  117. data/lib/expressir/express/builders/token_builder.rb +15 -0
  118. data/lib/expressir/express/builders/type_builder.rb +264 -0
  119. data/lib/expressir/express/builders/type_decl_builder.rb +32 -0
  120. data/lib/expressir/express/builders/unique_clause_builder.rb +22 -0
  121. data/lib/expressir/express/builders/unique_rule_builder.rb +36 -0
  122. data/lib/expressir/express/builders/where_clause_builder.rb +22 -0
  123. data/lib/expressir/express/builders.rb +43 -0
  124. data/lib/expressir/express/error.rb +18 -2
  125. data/lib/expressir/express/formatter.rb +23 -1509
  126. data/lib/expressir/express/formatters/data_types_formatter.rb +317 -0
  127. data/lib/expressir/express/formatters/declarations_formatter.rb +689 -0
  128. data/lib/expressir/express/formatters/expressions_formatter.rb +160 -0
  129. data/lib/expressir/express/formatters/literals_formatter.rb +46 -0
  130. data/lib/expressir/express/formatters/references_formatter.rb +42 -0
  131. data/lib/expressir/express/formatters/remark_formatter.rb +296 -0
  132. data/lib/expressir/express/formatters/remark_item_formatter.rb +25 -0
  133. data/lib/expressir/express/formatters/statements_formatter.rb +224 -0
  134. data/lib/expressir/express/formatters/supertype_expressions_formatter.rb +48 -0
  135. data/lib/expressir/express/parser.rb +155 -7
  136. data/lib/expressir/express/pretty_formatter.rb +624 -0
  137. data/lib/expressir/express/remark_attacher.rb +1155 -0
  138. data/lib/expressir/express/resolve_references_model_visitor.rb +1 -0
  139. data/lib/expressir/express/streaming_builder.rb +467 -0
  140. data/lib/expressir/express/transformer/remark_handling.rb +196 -0
  141. data/lib/expressir/manifest/resolver.rb +213 -0
  142. data/lib/expressir/manifest/validator.rb +195 -0
  143. data/lib/expressir/model/declarations/entity.rb +6 -0
  144. data/lib/expressir/model/dependency_resolver.rb +270 -0
  145. data/lib/expressir/model/identifier.rb +1 -1
  146. data/lib/expressir/model/indexes/entity_index.rb +103 -0
  147. data/lib/expressir/model/indexes/reference_index.rb +148 -0
  148. data/lib/expressir/model/indexes/type_index.rb +149 -0
  149. data/lib/expressir/model/interface_validator.rb +384 -0
  150. data/lib/expressir/model/model_element.rb +30 -2
  151. data/lib/expressir/model/remark_info.rb +51 -0
  152. data/lib/expressir/model/repository.rb +400 -5
  153. data/lib/expressir/model/repository_validator.rb +295 -0
  154. data/lib/expressir/model/search_engine.rb +574 -0
  155. data/lib/expressir/model.rb +4 -94
  156. data/lib/expressir/package/builder.rb +200 -0
  157. data/lib/expressir/package/metadata.rb +81 -0
  158. data/lib/expressir/package/reader.rb +165 -0
  159. data/lib/expressir/schema_manifest.rb +11 -1
  160. data/lib/expressir/version.rb +1 -1
  161. data/lib/expressir.rb +20 -3
  162. metadata +168 -9
  163. data/docs/benchmarking.adoc +0 -107
  164. data/docs/liquid_drops.adoc +0 -1547
  165. data/lib/expressir/express/visitor.rb +0 -2815
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.30
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-10-16 00:00:00.000000000 Z
11
+ date: 2026-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -95,19 +95,33 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: parslet
98
+ name: paint
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: parsanol
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '2.0'
117
+ version: '1.1'
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '2.0'
124
+ version: '1.1'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: ruby-progressbar
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +136,20 @@ dependencies:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
138
  version: '1.11'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubyzip
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '2.3'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '2.3'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: table_tennis
127
155
  requirement: !ruby/object:Gem::Requirement
@@ -160,6 +188,8 @@ extensions: []
160
188
  extra_rdoc_files: []
161
189
  files:
162
190
  - ".github/workflows/codeql.yml"
191
+ - ".github/workflows/docs.yml"
192
+ - ".github/workflows/links.yml"
163
193
  - ".github/workflows/rake.yml"
164
194
  - ".github/workflows/release.yml"
165
195
  - ".github/workflows/stress.yml"
@@ -175,8 +205,72 @@ files:
175
205
  - bin/console
176
206
  - bin/rspec
177
207
  - bin/setup
178
- - docs/benchmarking.adoc
179
- - docs/liquid_drops.adoc
208
+ - docs/Gemfile
209
+ - docs/_config.yml
210
+ - docs/_guides/changes/changes-format.adoc
211
+ - docs/_guides/changes/importing-eengine.adoc
212
+ - docs/_guides/changes/index.adoc
213
+ - docs/_guides/changes/programmatic-usage.adoc
214
+ - docs/_guides/changes/validating-changes.adoc
215
+ - docs/_guides/cli/benchmark-performance.adoc
216
+ - docs/_guides/cli/coverage-analysis.adoc
217
+ - docs/_guides/cli/format-schemas.adoc
218
+ - docs/_guides/cli/index.adoc
219
+ - docs/_guides/cli/managing-changes.adoc
220
+ - docs/_guides/cli/validate-ascii.adoc
221
+ - docs/_guides/cli/validate-schemas.adoc
222
+ - docs/_guides/formatter/formatter-architecture.adoc
223
+ - docs/_guides/index.adoc
224
+ - docs/_guides/ler/creating-packages.adoc
225
+ - docs/_guides/ler/index.adoc
226
+ - docs/_guides/ler/loading-packages.adoc
227
+ - docs/_guides/ler/package-formats.adoc
228
+ - docs/_guides/ler/querying-packages.adoc
229
+ - docs/_guides/ler/validating-packages.adoc
230
+ - docs/_guides/liquid/basic-templates.adoc
231
+ - docs/_guides/liquid/documentation-generation.adoc
232
+ - docs/_guides/liquid/drops-reference.adoc
233
+ - docs/_guides/liquid/filters-and-tags.adoc
234
+ - docs/_guides/liquid/index.adoc
235
+ - docs/_guides/manifests/creating-manifests.adoc
236
+ - docs/_guides/manifests/index.adoc
237
+ - docs/_guides/manifests/resolving-manifests.adoc
238
+ - docs/_guides/manifests/validating-manifests.adoc
239
+ - docs/_guides/ruby-api/formatting-schemas.adoc
240
+ - docs/_guides/ruby-api/index.adoc
241
+ - docs/_guides/ruby-api/parsing-files.adoc
242
+ - docs/_guides/ruby-api/search-engine.adoc
243
+ - docs/_guides/ruby-api/working-with-repository.adoc
244
+ - docs/_pages/data-model.adoc
245
+ - docs/_pages/express-language.adoc
246
+ - docs/_pages/getting-started.adoc
247
+ - docs/_pages/index.adoc
248
+ - docs/_pages/introduction.adoc
249
+ - docs/_pages/ler-packages.adoc
250
+ - docs/_pages/parsers.adoc
251
+ - docs/_pages/schema-manifests.adoc
252
+ - docs/_references/index.adoc
253
+ - docs/_tutorials/creating-ler-package.adoc
254
+ - docs/_tutorials/documentation-coverage.adoc
255
+ - docs/_tutorials/index.adoc
256
+ - docs/_tutorials/liquid-templates.adoc
257
+ - docs/_tutorials/parsing-your-first-schema.adoc
258
+ - docs/_tutorials/querying-schemas.adoc
259
+ - docs/_tutorials/working-with-multiple-schemas.adoc
260
+ - docs/index.adoc
261
+ - docs/lychee.toml
262
+ - examples/demo_ler_usage.sh
263
+ - examples/ler/README.md
264
+ - examples/ler/simple_example.ler
265
+ - examples/ler/simple_schema.exp
266
+ - examples/ler_build.rb
267
+ - examples/ler_cli.rb
268
+ - examples/ler_demo_complete.rb
269
+ - examples/ler_query.rb
270
+ - examples/ler_query_examples.rb
271
+ - examples/ler_stats.rb
272
+ - examples/phase3_demo.rb
273
+ - examples/query_demo_simple.rb
180
274
  - exe/expressir
181
275
  - exe/expressir-format
182
276
  - exe/expressir-format-test
@@ -198,7 +292,11 @@ files:
198
292
  - lib/expressir/commands/clean.rb
199
293
  - lib/expressir/commands/coverage.rb
200
294
  - lib/expressir/commands/format.rb
295
+ - lib/expressir/commands/manifest.rb
296
+ - lib/expressir/commands/package.rb
201
297
  - lib/expressir/commands/validate.rb
298
+ - lib/expressir/commands/validate_ascii.rb
299
+ - lib/expressir/commands/validate_load.rb
202
300
  - lib/expressir/commands/version.rb
203
301
  - lib/expressir/config.rb
204
302
  - lib/expressir/coverage.rb
@@ -207,16 +305,66 @@ files:
207
305
  - lib/expressir/eengine/compare_report.rb
208
306
  - lib/expressir/eengine/mim_compare_report.rb
209
307
  - lib/expressir/eengine/modified_object.rb
308
+ - lib/expressir/express/builder.rb
309
+ - lib/expressir/express/builders.rb
310
+ - lib/expressir/express/builders/attribute_decl_builder.rb
311
+ - lib/expressir/express/builders/built_in_builder.rb
312
+ - lib/expressir/express/builders/constant_builder.rb
313
+ - lib/expressir/express/builders/declaration_builder.rb
314
+ - lib/expressir/express/builders/derive_clause_builder.rb
315
+ - lib/expressir/express/builders/derived_attr_builder.rb
316
+ - lib/expressir/express/builders/domain_rule_builder.rb
317
+ - lib/expressir/express/builders/entity_decl_builder.rb
318
+ - lib/expressir/express/builders/explicit_attr_builder.rb
319
+ - lib/expressir/express/builders/expression_builder.rb
320
+ - lib/expressir/express/builders/function_decl_builder.rb
321
+ - lib/expressir/express/builders/helpers.rb
322
+ - lib/expressir/express/builders/interface_builder.rb
323
+ - lib/expressir/express/builders/inverse_attr_builder.rb
324
+ - lib/expressir/express/builders/inverse_attr_type_builder.rb
325
+ - lib/expressir/express/builders/inverse_clause_builder.rb
326
+ - lib/expressir/express/builders/literal_builder.rb
327
+ - lib/expressir/express/builders/procedure_decl_builder.rb
328
+ - lib/expressir/express/builders/qualifier_builder.rb
329
+ - lib/expressir/express/builders/reference_builder.rb
330
+ - lib/expressir/express/builders/rule_decl_builder.rb
331
+ - lib/expressir/express/builders/schema_body_decl_builder.rb
332
+ - lib/expressir/express/builders/schema_decl_builder.rb
333
+ - lib/expressir/express/builders/schema_version_builder.rb
334
+ - lib/expressir/express/builders/simple_id_builder.rb
335
+ - lib/expressir/express/builders/statement_builder.rb
336
+ - lib/expressir/express/builders/subtype_constraint_builder.rb
337
+ - lib/expressir/express/builders/syntax_builder.rb
338
+ - lib/expressir/express/builders/token_builder.rb
339
+ - lib/expressir/express/builders/type_builder.rb
340
+ - lib/expressir/express/builders/type_decl_builder.rb
341
+ - lib/expressir/express/builders/unique_clause_builder.rb
342
+ - lib/expressir/express/builders/unique_rule_builder.rb
343
+ - lib/expressir/express/builders/where_clause_builder.rb
210
344
  - lib/expressir/express/cache.rb
211
345
  - lib/expressir/express/error.rb
212
346
  - lib/expressir/express/formatter.rb
347
+ - lib/expressir/express/formatters/data_types_formatter.rb
348
+ - lib/expressir/express/formatters/declarations_formatter.rb
349
+ - lib/expressir/express/formatters/expressions_formatter.rb
350
+ - lib/expressir/express/formatters/literals_formatter.rb
351
+ - lib/expressir/express/formatters/references_formatter.rb
352
+ - lib/expressir/express/formatters/remark_formatter.rb
353
+ - lib/expressir/express/formatters/remark_item_formatter.rb
354
+ - lib/expressir/express/formatters/statements_formatter.rb
355
+ - lib/expressir/express/formatters/supertype_expressions_formatter.rb
213
356
  - lib/expressir/express/hyperlink_formatter.rb
214
357
  - lib/expressir/express/model_visitor.rb
215
358
  - lib/expressir/express/parser.rb
359
+ - lib/expressir/express/pretty_formatter.rb
360
+ - lib/expressir/express/remark_attacher.rb
216
361
  - lib/expressir/express/resolve_references_model_visitor.rb
217
362
  - lib/expressir/express/schema_head_formatter.rb
218
- - lib/expressir/express/visitor.rb
363
+ - lib/expressir/express/streaming_builder.rb
364
+ - lib/expressir/express/transformer/remark_handling.rb
219
365
  - lib/expressir/liquid.rb
366
+ - lib/expressir/manifest/resolver.rb
367
+ - lib/expressir/manifest/validator.rb
220
368
  - lib/expressir/model.rb
221
369
  - lib/expressir/model/cache.rb
222
370
  - lib/expressir/model/data_types/aggregate.rb
@@ -258,6 +406,7 @@ files:
258
406
  - lib/expressir/model/declarations/unique_rule.rb
259
407
  - lib/expressir/model/declarations/variable.rb
260
408
  - lib/expressir/model/declarations/where_rule.rb
409
+ - lib/expressir/model/dependency_resolver.rb
261
410
  - lib/expressir/model/expressions/aggregate_initializer.rb
262
411
  - lib/expressir/model/expressions/aggregate_initializer_item.rb
263
412
  - lib/expressir/model/expressions/binary_expression.rb
@@ -267,6 +416,10 @@ files:
267
416
  - lib/expressir/model/expressions/query_expression.rb
268
417
  - lib/expressir/model/expressions/unary_expression.rb
269
418
  - lib/expressir/model/identifier.rb
419
+ - lib/expressir/model/indexes/entity_index.rb
420
+ - lib/expressir/model/indexes/reference_index.rb
421
+ - lib/expressir/model/indexes/type_index.rb
422
+ - lib/expressir/model/interface_validator.rb
270
423
  - lib/expressir/model/literals/binary.rb
271
424
  - lib/expressir/model/literals/integer.rb
272
425
  - lib/expressir/model/literals/logical.rb
@@ -277,7 +430,10 @@ files:
277
430
  - lib/expressir/model/references/group_reference.rb
278
431
  - lib/expressir/model/references/index_reference.rb
279
432
  - lib/expressir/model/references/simple_reference.rb
433
+ - lib/expressir/model/remark_info.rb
280
434
  - lib/expressir/model/repository.rb
435
+ - lib/expressir/model/repository_validator.rb
436
+ - lib/expressir/model/search_engine.rb
281
437
  - lib/expressir/model/statements/alias.rb
282
438
  - lib/expressir/model/statements/assignment.rb
283
439
  - lib/expressir/model/statements/case.rb
@@ -292,6 +448,9 @@ files:
292
448
  - lib/expressir/model/statements/skip.rb
293
449
  - lib/expressir/model/supertype_expressions/binary_supertype_expression.rb
294
450
  - lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb
451
+ - lib/expressir/package/builder.rb
452
+ - lib/expressir/package/metadata.rb
453
+ - lib/expressir/package/reader.rb
295
454
  - lib/expressir/schema_manifest.rb
296
455
  - lib/expressir/schema_manifest_entry.rb
297
456
  - lib/expressir/version.rb
@@ -311,7 +470,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
311
470
  requirements:
312
471
  - - ">="
313
472
  - !ruby/object:Gem::Version
314
- version: 3.0.0
473
+ version: 3.2.0
315
474
  required_rubygems_version: !ruby/object:Gem::Requirement
316
475
  requirements:
317
476
  - - ">="
@@ -1,107 +0,0 @@
1
- = Benchmarking schema loading in Expressir
2
-
3
- Expressir provides built-in benchmarking capabilities for measuring schema
4
- loading performance. This is particularly useful for large schemas or when
5
- optimizing performance.
6
-
7
- == Activating benchmark mode
8
-
9
- Benchmark mode can be activated using environment variables:
10
-
11
- [source,bash]
12
- ----
13
- # Basic benchmarking
14
- EXPRESSIR_BENCHMARK=true ruby your_script.rb
15
-
16
- # Verbose output with timing for each file
17
- EXPRESSIR_BENCHMARK=true EXPRESSIR_BENCHMARK_VERBOSE=true ruby your_script.rb
18
-
19
- # Use benchmark-ips for more detailed statistics
20
- EXPRESSIR_BENCHMARK=true EXPRESSIR_BENCHMARK_IPS=true ruby your_script.rb
21
-
22
- # Save benchmark results to file
23
- EXPRESSIR_BENCHMARK=true EXPRESSIR_BENCHMARK_SAVE=true ruby your_script.rb
24
- ----
25
-
26
- == Environment variables
27
-
28
- The following environment variables control benchmarking:
29
-
30
- |===
31
- | Variable | Description | Default
32
-
33
- | `EXPRESSIR_BENCHMARK`
34
- | Enable benchmarking mode
35
- | `false`
36
-
37
- | `EXPRESSIR_BENCHMARK_IPS`
38
- | Use benchmark-ips for detailed statistics
39
- | `false`
40
-
41
- | `EXPRESSIR_BENCHMARK_VERBOSE`
42
- | Show verbose output for benchmarking
43
- | `false`
44
-
45
- | `EXPRESSIR_BENCHMARK_SAVE`
46
- | Save benchmark results to file
47
- | `false`
48
-
49
- | `EXPRESSIR_BENCHMARK_ITERATIONS`
50
- | Number of iterations for benchmark-ips
51
- | `3`
52
-
53
- | `EXPRESSIR_BENCHMARK_WARMUP`
54
- | Warmup time for benchmark-ips in seconds
55
- | `1`
56
-
57
- | `EXPRESSIR_BENCHMARK_PARALLEL`
58
- | Enable parallel processing (future feature)
59
- | `false`
60
- |===
61
-
62
- == Sample usage
63
-
64
- A sample benchmark script is provided at
65
- `spec/benchmarks/schema_loading_benchmark.rb`. You can run it with various
66
- configurations to see the benchmarking in action:
67
-
68
- [source,bash]
69
- ----
70
- # Basic benchmarking
71
- EXPRESSIR_BENCHMARK=true ruby spec/benchmarks/schema_loading_benchmark.rb
72
-
73
- # Detailed IPS benchmarking
74
- EXPRESSIR_BENCHMARK=true EXPRESSIR_BENCHMARK_IPS=true ruby spec/benchmarks/schema_loading_benchmark.rb
75
- ----
76
-
77
- == Programmatic access
78
-
79
- You can also access benchmarking functionality programmatically:
80
-
81
- [source,ruby]
82
- ----
83
- require 'expressir'
84
-
85
- # Check if benchmarking is enabled
86
- if Expressir.configuration.benchmark_enabled?
87
- puts "Benchmarking is active"
88
- end
89
-
90
- # Measure a specific operation
91
- result = Expressir::Benchmark.measure_file("path/to/file.exp") do
92
- # Code to benchmark
93
- do_something()
94
- end
95
-
96
- # Measure a collection of files
97
- results = Expressir::Benchmark.measure_collection(files) do |file|
98
- # Process each file
99
- process_file(file)
100
- end
101
- ----
102
-
103
- == Future features
104
-
105
- Future versions of Expressir will include parallel schema loading capabilities
106
- that can be benchmarked using the `EXPRESSIR_BENCHMARK_PARALLEL=true`
107
- environment variable.