expressir 2.3.0 → 2.3.1
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/.rubocop_todo.yml +480 -49
- data/benchmark/srl_benchmark.rb +47 -34
- data/benchmark/srl_native_benchmark.rb +20 -16
- data/benchmark/srl_ruby_benchmark.rb +14 -12
- data/expressir.gemspec +2 -2
- data/lib/expressir/changes/item_change.rb +0 -1
- data/lib/expressir/changes/mapping_change.rb +0 -1
- data/lib/expressir/changes/schema_change.rb +0 -1
- data/lib/expressir/changes/version_change.rb +0 -1
- data/lib/expressir/commands/changes_import_eengine.rb +2 -2
- data/lib/expressir/commands/validate_ascii.rb +0 -1
- data/lib/expressir/eengine/arm_compare_report.rb +0 -1
- data/lib/expressir/eengine/changes_section.rb +0 -1
- data/lib/expressir/eengine/mim_compare_report.rb +0 -1
- data/lib/expressir/eengine/modified_object.rb +0 -1
- data/lib/expressir/express/builder.rb +64 -21
- data/lib/expressir/express/builders/built_in_builder.rb +4 -2
- data/lib/expressir/express/builders/entity_decl_builder.rb +8 -4
- data/lib/expressir/express/builders/expression_builder.rb +0 -6
- data/lib/expressir/express/builders/function_decl_builder.rb +8 -8
- data/lib/expressir/express/builders/procedure_decl_builder.rb +8 -8
- data/lib/expressir/express/builders/rule_decl_builder.rb +8 -8
- data/lib/expressir/express/builders/syntax_builder.rb +2 -44
- data/lib/expressir/express/formatters/remark_formatter.rb +1 -3
- data/lib/expressir/express/parser.rb +234 -14
- data/lib/expressir/express/remark_attacher.rb +47 -18
- data/lib/expressir/express/transformer/remark_handling.rb +0 -1
- data/lib/expressir/model/exp_file.rb +2 -1
- data/lib/expressir/model/model_element.rb +1 -1
- data/lib/expressir/model/repository.rb +8 -9
- data/lib/expressir/model/search_engine.rb +7 -6
- data/lib/expressir/package/builder.rb +3 -1
- data/lib/expressir/package/metadata.rb +0 -1
- data/lib/expressir/schema_manifest.rb +0 -1
- data/lib/expressir/schema_manifest_entry.rb +0 -1
- data/lib/expressir/version.rb +1 -1
- metadata +15 -15
|
@@ -32,8 +32,8 @@ module Expressir
|
|
|
32
32
|
map "files", to: :files
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
def initialize(
|
|
36
|
-
super(
|
|
35
|
+
def initialize(*, base_dir: nil, schemas: nil, **)
|
|
36
|
+
super(*, **)
|
|
37
37
|
@base_dir = base_dir
|
|
38
38
|
@entity_index = nil
|
|
39
39
|
@type_index = nil
|
|
@@ -41,9 +41,7 @@ module Expressir
|
|
|
41
41
|
@_schemas = []
|
|
42
42
|
|
|
43
43
|
# Support direct schemas initialization
|
|
44
|
-
|
|
45
|
-
schemas.each { |schema| @_schemas << schema }
|
|
46
|
-
end
|
|
44
|
+
schemas&.each { |schema| @_schemas << schema }
|
|
47
45
|
end
|
|
48
46
|
|
|
49
47
|
# Get all schemas (from both files and direct storage)
|
|
@@ -63,6 +61,7 @@ module Expressir
|
|
|
63
61
|
# @param schema [Declarations::Schema] Schema to add
|
|
64
62
|
def add_schema(schema)
|
|
65
63
|
return unless schema
|
|
64
|
+
|
|
66
65
|
@_schemas << schema
|
|
67
66
|
end
|
|
68
67
|
|
|
@@ -342,16 +341,16 @@ module Expressir
|
|
|
342
341
|
# @param format [Symbol] Output format
|
|
343
342
|
# @yield [item] Block to convert item to hash
|
|
344
343
|
# @return [Array, String] Formatted output
|
|
345
|
-
def format_output(items, format, &
|
|
344
|
+
def format_output(items, format, &)
|
|
346
345
|
case format
|
|
347
346
|
when :hash
|
|
348
|
-
items.map(&
|
|
347
|
+
items.map(&)
|
|
349
348
|
when :json
|
|
350
349
|
require "json"
|
|
351
|
-
items.map(&
|
|
350
|
+
items.map(&).to_json
|
|
352
351
|
when :yaml
|
|
353
352
|
require "yaml"
|
|
354
|
-
items.map(&
|
|
353
|
+
items.map(&).to_yaml
|
|
355
354
|
else
|
|
356
355
|
items
|
|
357
356
|
end
|
|
@@ -84,10 +84,10 @@ module Expressir
|
|
|
84
84
|
# @param max_depth [Integer] Maximum path depth (1=schema, 2=entity, 3=attribute)
|
|
85
85
|
# @param options [Hash] Additional search options
|
|
86
86
|
# @return [Array<Hash>] Filtered results
|
|
87
|
-
def search_with_depth(pattern:, max_depth:, **
|
|
87
|
+
def search_with_depth(pattern:, max_depth:, **)
|
|
88
88
|
return [] if max_depth <= 0
|
|
89
89
|
|
|
90
|
-
results = search(pattern: pattern, **
|
|
90
|
+
results = search(pattern: pattern, **)
|
|
91
91
|
filter_by_depth(results, max_depth)
|
|
92
92
|
end
|
|
93
93
|
|
|
@@ -97,8 +97,8 @@ module Expressir
|
|
|
97
97
|
# @param boost_prefix [Integer] Score boost for prefix matches
|
|
98
98
|
# @param options [Hash] Additional search options
|
|
99
99
|
# @return [Array<Hash>] Ranked results with :relevance_score
|
|
100
|
-
def search_ranked(pattern:, boost_exact: 10, boost_prefix: 5, **
|
|
101
|
-
results = search(pattern: pattern, **
|
|
100
|
+
def search_ranked(pattern:, boost_exact: 10, boost_prefix: 5, **)
|
|
101
|
+
results = search(pattern: pattern, **)
|
|
102
102
|
rank_results(results, pattern, boost_exact, boost_prefix)
|
|
103
103
|
end
|
|
104
104
|
|
|
@@ -108,8 +108,8 @@ module Expressir
|
|
|
108
108
|
# @param ranked [Boolean] Enable relevance ranking
|
|
109
109
|
# @param options [Hash] Additional filters and search options
|
|
110
110
|
# @return [Array<Hash>] Filtered and optionally ranked results
|
|
111
|
-
def search_advanced(pattern:, max_depth: nil, ranked: false, **
|
|
112
|
-
results = search(pattern: pattern, **
|
|
111
|
+
def search_advanced(pattern:, max_depth: nil, ranked: false, **)
|
|
112
|
+
results = search(pattern: pattern, **)
|
|
113
113
|
|
|
114
114
|
results = filter_by_depth(results, max_depth) if max_depth
|
|
115
115
|
results = rank_results(results, pattern, 10, 5) if ranked
|
|
@@ -485,6 +485,7 @@ module Expressir
|
|
|
485
485
|
current = element
|
|
486
486
|
while current
|
|
487
487
|
return current if current.is_a?(Declarations::Schema)
|
|
488
|
+
|
|
488
489
|
current = current.parent
|
|
489
490
|
end
|
|
490
491
|
rescue StandardError
|
|
@@ -152,7 +152,9 @@ module Expressir
|
|
|
152
152
|
|
|
153
153
|
# Get schemas that are not already in files
|
|
154
154
|
file_schema_ids = normalized.files.flat_map(&:schemas).compact.map(&:id)
|
|
155
|
-
direct_schemas = repository.schemas.reject
|
|
155
|
+
direct_schemas = repository.schemas.reject do |s|
|
|
156
|
+
file_schema_ids.include?(s.id)
|
|
157
|
+
end
|
|
156
158
|
|
|
157
159
|
# Create an ExpFile for direct schemas
|
|
158
160
|
if direct_schemas.any?
|
data/lib/expressir/version.rb
CHANGED
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.3.
|
|
4
|
+
version: 2.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-04-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -109,7 +109,7 @@ dependencies:
|
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: '0'
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
112
|
+
name: nokogiri
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - ">="
|
|
@@ -123,39 +123,39 @@ dependencies:
|
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
126
|
+
name: paint
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: 1.3.7
|
|
132
129
|
- - ">="
|
|
133
130
|
- !ruby/object:Gem::Version
|
|
134
|
-
version:
|
|
131
|
+
version: '0'
|
|
135
132
|
type: :runtime
|
|
136
133
|
prerelease: false
|
|
137
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
138
135
|
requirements:
|
|
139
|
-
- - "~>"
|
|
140
|
-
- !ruby/object:Gem::Version
|
|
141
|
-
version: 1.3.7
|
|
142
136
|
- - ">="
|
|
143
137
|
- !ruby/object:Gem::Version
|
|
144
|
-
version:
|
|
138
|
+
version: '0'
|
|
145
139
|
- !ruby/object:Gem::Dependency
|
|
146
|
-
name:
|
|
140
|
+
name: parsanol
|
|
147
141
|
requirement: !ruby/object:Gem::Requirement
|
|
148
142
|
requirements:
|
|
143
|
+
- - "~>"
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: 1.3.9
|
|
149
146
|
- - ">="
|
|
150
147
|
- !ruby/object:Gem::Version
|
|
151
|
-
version:
|
|
148
|
+
version: 1.3.9
|
|
152
149
|
type: :runtime
|
|
153
150
|
prerelease: false
|
|
154
151
|
version_requirements: !ruby/object:Gem::Requirement
|
|
155
152
|
requirements:
|
|
153
|
+
- - "~>"
|
|
154
|
+
- !ruby/object:Gem::Version
|
|
155
|
+
version: 1.3.9
|
|
156
156
|
- - ">="
|
|
157
157
|
- !ruby/object:Gem::Version
|
|
158
|
-
version:
|
|
158
|
+
version: 1.3.9
|
|
159
159
|
- !ruby/object:Gem::Dependency
|
|
160
160
|
name: ruby-progressbar
|
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|