expressir 2.1.29 → 2.1.31
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
- data/.github/workflows/docs.yml +98 -0
- data/.github/workflows/links.yml +100 -0
- data/.github/workflows/rake.yml +4 -0
- data/.github/workflows/release.yml +5 -0
- data/.github/workflows/validate_schemas.yml +1 -1
- data/.gitignore +3 -0
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +209 -55
- data/Gemfile +2 -1
- data/README.adoc +650 -83
- data/docs/Gemfile +12 -0
- data/docs/_config.yml +141 -0
- data/docs/_guides/changes/changes-format.adoc +778 -0
- data/docs/_guides/changes/importing-eengine.adoc +898 -0
- data/docs/_guides/changes/index.adoc +396 -0
- data/docs/_guides/changes/programmatic-usage.adoc +1038 -0
- data/docs/_guides/changes/validating-changes.adoc +681 -0
- data/docs/_guides/cli/benchmark-performance.adoc +834 -0
- data/docs/_guides/cli/coverage-analysis.adoc +921 -0
- data/docs/_guides/cli/format-schemas.adoc +547 -0
- data/docs/_guides/cli/index.adoc +8 -0
- data/docs/_guides/cli/managing-changes.adoc +927 -0
- data/docs/_guides/cli/validate-ascii.adoc +645 -0
- data/docs/_guides/cli/validate-schemas.adoc +534 -0
- data/docs/_guides/index.adoc +165 -0
- data/docs/_guides/ler/creating-packages.adoc +664 -0
- data/docs/_guides/ler/index.adoc +305 -0
- data/docs/_guides/ler/loading-packages.adoc +707 -0
- data/docs/_guides/ler/package-formats.adoc +748 -0
- data/docs/_guides/ler/querying-packages.adoc +826 -0
- data/docs/_guides/ler/validating-packages.adoc +750 -0
- data/docs/_guides/liquid/basic-templates.adoc +813 -0
- data/docs/_guides/liquid/documentation-generation.adoc +1042 -0
- data/docs/_guides/liquid/drops-reference.adoc +829 -0
- data/docs/_guides/liquid/filters-and-tags.adoc +912 -0
- data/docs/_guides/liquid/index.adoc +468 -0
- data/docs/_guides/manifests/creating-manifests.adoc +483 -0
- data/docs/_guides/manifests/index.adoc +307 -0
- data/docs/_guides/manifests/resolving-manifests.adoc +557 -0
- data/docs/_guides/manifests/validating-manifests.adoc +713 -0
- data/docs/_guides/ruby-api/formatting-schemas.adoc +605 -0
- data/docs/_guides/ruby-api/index.adoc +257 -0
- data/docs/_guides/ruby-api/parsing-files.adoc +421 -0
- data/docs/_guides/ruby-api/search-engine.adoc +609 -0
- data/docs/_guides/ruby-api/working-with-repository.adoc +577 -0
- data/docs/_pages/data-model.adoc +665 -0
- data/docs/_pages/express-language.adoc +506 -0
- data/docs/_pages/getting-started.adoc +414 -0
- data/docs/_pages/index.adoc +116 -0
- data/docs/_pages/introduction.adoc +256 -0
- data/docs/_pages/ler-packages.adoc +837 -0
- data/docs/_pages/parsers.adoc +683 -0
- data/docs/_pages/schema-manifests.adoc +431 -0
- data/docs/_references/index.adoc +228 -0
- data/docs/_tutorials/creating-ler-package.adoc +735 -0
- data/docs/_tutorials/documentation-coverage.adoc +795 -0
- data/docs/_tutorials/index.adoc +221 -0
- data/docs/_tutorials/liquid-templates.adoc +806 -0
- data/docs/_tutorials/parsing-your-first-schema.adoc +522 -0
- data/docs/_tutorials/querying-schemas.adoc +751 -0
- data/docs/_tutorials/working-with-multiple-schemas.adoc +676 -0
- data/docs/index.adoc +242 -0
- data/docs/lychee.toml +84 -0
- data/examples/demo_ler_usage.sh +86 -0
- data/examples/ler/README.md +111 -0
- data/examples/ler/simple_example.ler +0 -0
- data/examples/ler/simple_schema.exp +33 -0
- data/examples/ler_build.rb +75 -0
- data/examples/ler_cli.rb +79 -0
- data/examples/ler_demo_complete.rb +276 -0
- data/examples/ler_query.rb +91 -0
- data/examples/ler_query_examples.rb +305 -0
- data/examples/ler_stats.rb +81 -0
- data/examples/phase3_demo.rb +159 -0
- data/examples/query_demo_simple.rb +131 -0
- data/expressir.gemspec +2 -0
- data/lib/expressir/changes/schema_change.rb +32 -22
- data/lib/expressir/changes/{edition_change.rb → version_change.rb} +3 -3
- data/lib/expressir/cli.rb +12 -4
- data/lib/expressir/commands/changes_import_eengine.rb +2 -2
- data/lib/expressir/commands/changes_validate.rb +1 -1
- data/lib/expressir/commands/manifest.rb +427 -0
- data/lib/expressir/commands/package.rb +1274 -0
- data/lib/expressir/commands/validate.rb +70 -37
- data/lib/expressir/commands/validate_ascii.rb +607 -0
- data/lib/expressir/commands/validate_load.rb +88 -0
- data/lib/expressir/express/formatter.rb +5 -1
- data/lib/expressir/express/formatters/remark_item_formatter.rb +25 -0
- data/lib/expressir/express/parser.rb +33 -0
- data/lib/expressir/manifest/resolver.rb +213 -0
- data/lib/expressir/manifest/validator.rb +195 -0
- data/lib/expressir/model/declarations/entity.rb +6 -0
- data/lib/expressir/model/dependency_resolver.rb +270 -0
- data/lib/expressir/model/indexes/entity_index.rb +103 -0
- data/lib/expressir/model/indexes/reference_index.rb +148 -0
- data/lib/expressir/model/indexes/type_index.rb +149 -0
- data/lib/expressir/model/interface_validator.rb +384 -0
- data/lib/expressir/model/repository.rb +400 -5
- data/lib/expressir/model/repository_validator.rb +295 -0
- data/lib/expressir/model/search_engine.rb +525 -0
- data/lib/expressir/model.rb +4 -94
- data/lib/expressir/package/builder.rb +200 -0
- data/lib/expressir/package/metadata.rb +81 -0
- data/lib/expressir/package/reader.rb +165 -0
- data/lib/expressir/schema_manifest.rb +11 -1
- data/lib/expressir/version.rb +1 -1
- data/lib/expressir.rb +16 -3
- metadata +115 -5
- data/docs/benchmarking.adoc +0 -107
- data/docs/liquid_drops.adoc +0 -1547
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.
|
|
4
|
+
version: 2.1.31
|
|
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-
|
|
11
|
+
date: 2025-12-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -94,6 +94,20 @@ dependencies:
|
|
|
94
94
|
- - ">="
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
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'
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: parslet
|
|
99
113
|
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,71 @@ files:
|
|
|
175
205
|
- bin/console
|
|
176
206
|
- bin/rspec
|
|
177
207
|
- bin/setup
|
|
178
|
-
- docs/
|
|
179
|
-
- docs/
|
|
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/index.adoc
|
|
223
|
+
- docs/_guides/ler/creating-packages.adoc
|
|
224
|
+
- docs/_guides/ler/index.adoc
|
|
225
|
+
- docs/_guides/ler/loading-packages.adoc
|
|
226
|
+
- docs/_guides/ler/package-formats.adoc
|
|
227
|
+
- docs/_guides/ler/querying-packages.adoc
|
|
228
|
+
- docs/_guides/ler/validating-packages.adoc
|
|
229
|
+
- docs/_guides/liquid/basic-templates.adoc
|
|
230
|
+
- docs/_guides/liquid/documentation-generation.adoc
|
|
231
|
+
- docs/_guides/liquid/drops-reference.adoc
|
|
232
|
+
- docs/_guides/liquid/filters-and-tags.adoc
|
|
233
|
+
- docs/_guides/liquid/index.adoc
|
|
234
|
+
- docs/_guides/manifests/creating-manifests.adoc
|
|
235
|
+
- docs/_guides/manifests/index.adoc
|
|
236
|
+
- docs/_guides/manifests/resolving-manifests.adoc
|
|
237
|
+
- docs/_guides/manifests/validating-manifests.adoc
|
|
238
|
+
- docs/_guides/ruby-api/formatting-schemas.adoc
|
|
239
|
+
- docs/_guides/ruby-api/index.adoc
|
|
240
|
+
- docs/_guides/ruby-api/parsing-files.adoc
|
|
241
|
+
- docs/_guides/ruby-api/search-engine.adoc
|
|
242
|
+
- docs/_guides/ruby-api/working-with-repository.adoc
|
|
243
|
+
- docs/_pages/data-model.adoc
|
|
244
|
+
- docs/_pages/express-language.adoc
|
|
245
|
+
- docs/_pages/getting-started.adoc
|
|
246
|
+
- docs/_pages/index.adoc
|
|
247
|
+
- docs/_pages/introduction.adoc
|
|
248
|
+
- docs/_pages/ler-packages.adoc
|
|
249
|
+
- docs/_pages/parsers.adoc
|
|
250
|
+
- docs/_pages/schema-manifests.adoc
|
|
251
|
+
- docs/_references/index.adoc
|
|
252
|
+
- docs/_tutorials/creating-ler-package.adoc
|
|
253
|
+
- docs/_tutorials/documentation-coverage.adoc
|
|
254
|
+
- docs/_tutorials/index.adoc
|
|
255
|
+
- docs/_tutorials/liquid-templates.adoc
|
|
256
|
+
- docs/_tutorials/parsing-your-first-schema.adoc
|
|
257
|
+
- docs/_tutorials/querying-schemas.adoc
|
|
258
|
+
- docs/_tutorials/working-with-multiple-schemas.adoc
|
|
259
|
+
- docs/index.adoc
|
|
260
|
+
- docs/lychee.toml
|
|
261
|
+
- examples/demo_ler_usage.sh
|
|
262
|
+
- examples/ler/README.md
|
|
263
|
+
- examples/ler/simple_example.ler
|
|
264
|
+
- examples/ler/simple_schema.exp
|
|
265
|
+
- examples/ler_build.rb
|
|
266
|
+
- examples/ler_cli.rb
|
|
267
|
+
- examples/ler_demo_complete.rb
|
|
268
|
+
- examples/ler_query.rb
|
|
269
|
+
- examples/ler_query_examples.rb
|
|
270
|
+
- examples/ler_stats.rb
|
|
271
|
+
- examples/phase3_demo.rb
|
|
272
|
+
- examples/query_demo_simple.rb
|
|
180
273
|
- exe/expressir
|
|
181
274
|
- exe/expressir-format
|
|
182
275
|
- exe/expressir-format-test
|
|
@@ -184,10 +277,10 @@ files:
|
|
|
184
277
|
- lib/expressir.rb
|
|
185
278
|
- lib/expressir/benchmark.rb
|
|
186
279
|
- lib/expressir/changes.rb
|
|
187
|
-
- lib/expressir/changes/edition_change.rb
|
|
188
280
|
- lib/expressir/changes/item_change.rb
|
|
189
281
|
- lib/expressir/changes/mapping_change.rb
|
|
190
282
|
- lib/expressir/changes/schema_change.rb
|
|
283
|
+
- lib/expressir/changes/version_change.rb
|
|
191
284
|
- lib/expressir/cli.rb
|
|
192
285
|
- lib/expressir/commands/base.rb
|
|
193
286
|
- lib/expressir/commands/benchmark.rb
|
|
@@ -198,7 +291,11 @@ files:
|
|
|
198
291
|
- lib/expressir/commands/clean.rb
|
|
199
292
|
- lib/expressir/commands/coverage.rb
|
|
200
293
|
- lib/expressir/commands/format.rb
|
|
294
|
+
- lib/expressir/commands/manifest.rb
|
|
295
|
+
- lib/expressir/commands/package.rb
|
|
201
296
|
- lib/expressir/commands/validate.rb
|
|
297
|
+
- lib/expressir/commands/validate_ascii.rb
|
|
298
|
+
- lib/expressir/commands/validate_load.rb
|
|
202
299
|
- lib/expressir/commands/version.rb
|
|
203
300
|
- lib/expressir/config.rb
|
|
204
301
|
- lib/expressir/coverage.rb
|
|
@@ -210,6 +307,7 @@ files:
|
|
|
210
307
|
- lib/expressir/express/cache.rb
|
|
211
308
|
- lib/expressir/express/error.rb
|
|
212
309
|
- lib/expressir/express/formatter.rb
|
|
310
|
+
- lib/expressir/express/formatters/remark_item_formatter.rb
|
|
213
311
|
- lib/expressir/express/hyperlink_formatter.rb
|
|
214
312
|
- lib/expressir/express/model_visitor.rb
|
|
215
313
|
- lib/expressir/express/parser.rb
|
|
@@ -217,6 +315,8 @@ files:
|
|
|
217
315
|
- lib/expressir/express/schema_head_formatter.rb
|
|
218
316
|
- lib/expressir/express/visitor.rb
|
|
219
317
|
- lib/expressir/liquid.rb
|
|
318
|
+
- lib/expressir/manifest/resolver.rb
|
|
319
|
+
- lib/expressir/manifest/validator.rb
|
|
220
320
|
- lib/expressir/model.rb
|
|
221
321
|
- lib/expressir/model/cache.rb
|
|
222
322
|
- lib/expressir/model/data_types/aggregate.rb
|
|
@@ -258,6 +358,7 @@ files:
|
|
|
258
358
|
- lib/expressir/model/declarations/unique_rule.rb
|
|
259
359
|
- lib/expressir/model/declarations/variable.rb
|
|
260
360
|
- lib/expressir/model/declarations/where_rule.rb
|
|
361
|
+
- lib/expressir/model/dependency_resolver.rb
|
|
261
362
|
- lib/expressir/model/expressions/aggregate_initializer.rb
|
|
262
363
|
- lib/expressir/model/expressions/aggregate_initializer_item.rb
|
|
263
364
|
- lib/expressir/model/expressions/binary_expression.rb
|
|
@@ -267,6 +368,10 @@ files:
|
|
|
267
368
|
- lib/expressir/model/expressions/query_expression.rb
|
|
268
369
|
- lib/expressir/model/expressions/unary_expression.rb
|
|
269
370
|
- lib/expressir/model/identifier.rb
|
|
371
|
+
- lib/expressir/model/indexes/entity_index.rb
|
|
372
|
+
- lib/expressir/model/indexes/reference_index.rb
|
|
373
|
+
- lib/expressir/model/indexes/type_index.rb
|
|
374
|
+
- lib/expressir/model/interface_validator.rb
|
|
270
375
|
- lib/expressir/model/literals/binary.rb
|
|
271
376
|
- lib/expressir/model/literals/integer.rb
|
|
272
377
|
- lib/expressir/model/literals/logical.rb
|
|
@@ -278,6 +383,8 @@ files:
|
|
|
278
383
|
- lib/expressir/model/references/index_reference.rb
|
|
279
384
|
- lib/expressir/model/references/simple_reference.rb
|
|
280
385
|
- lib/expressir/model/repository.rb
|
|
386
|
+
- lib/expressir/model/repository_validator.rb
|
|
387
|
+
- lib/expressir/model/search_engine.rb
|
|
281
388
|
- lib/expressir/model/statements/alias.rb
|
|
282
389
|
- lib/expressir/model/statements/assignment.rb
|
|
283
390
|
- lib/expressir/model/statements/case.rb
|
|
@@ -292,6 +399,9 @@ files:
|
|
|
292
399
|
- lib/expressir/model/statements/skip.rb
|
|
293
400
|
- lib/expressir/model/supertype_expressions/binary_supertype_expression.rb
|
|
294
401
|
- lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb
|
|
402
|
+
- lib/expressir/package/builder.rb
|
|
403
|
+
- lib/expressir/package/metadata.rb
|
|
404
|
+
- lib/expressir/package/reader.rb
|
|
295
405
|
- lib/expressir/schema_manifest.rb
|
|
296
406
|
- lib/expressir/schema_manifest_entry.rb
|
|
297
407
|
- lib/expressir/version.rb
|
data/docs/benchmarking.adoc
DELETED
|
@@ -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.
|