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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +480 -49
  3. data/benchmark/srl_benchmark.rb +47 -34
  4. data/benchmark/srl_native_benchmark.rb +20 -16
  5. data/benchmark/srl_ruby_benchmark.rb +14 -12
  6. data/expressir.gemspec +2 -2
  7. data/lib/expressir/changes/item_change.rb +0 -1
  8. data/lib/expressir/changes/mapping_change.rb +0 -1
  9. data/lib/expressir/changes/schema_change.rb +0 -1
  10. data/lib/expressir/changes/version_change.rb +0 -1
  11. data/lib/expressir/commands/changes_import_eengine.rb +2 -2
  12. data/lib/expressir/commands/validate_ascii.rb +0 -1
  13. data/lib/expressir/eengine/arm_compare_report.rb +0 -1
  14. data/lib/expressir/eengine/changes_section.rb +0 -1
  15. data/lib/expressir/eengine/mim_compare_report.rb +0 -1
  16. data/lib/expressir/eengine/modified_object.rb +0 -1
  17. data/lib/expressir/express/builder.rb +64 -21
  18. data/lib/expressir/express/builders/built_in_builder.rb +4 -2
  19. data/lib/expressir/express/builders/entity_decl_builder.rb +8 -4
  20. data/lib/expressir/express/builders/expression_builder.rb +0 -6
  21. data/lib/expressir/express/builders/function_decl_builder.rb +8 -8
  22. data/lib/expressir/express/builders/procedure_decl_builder.rb +8 -8
  23. data/lib/expressir/express/builders/rule_decl_builder.rb +8 -8
  24. data/lib/expressir/express/builders/syntax_builder.rb +2 -44
  25. data/lib/expressir/express/formatters/remark_formatter.rb +1 -3
  26. data/lib/expressir/express/parser.rb +234 -14
  27. data/lib/expressir/express/remark_attacher.rb +47 -18
  28. data/lib/expressir/express/transformer/remark_handling.rb +0 -1
  29. data/lib/expressir/model/exp_file.rb +2 -1
  30. data/lib/expressir/model/model_element.rb +1 -1
  31. data/lib/expressir/model/repository.rb +8 -9
  32. data/lib/expressir/model/search_engine.rb +7 -6
  33. data/lib/expressir/package/builder.rb +3 -1
  34. data/lib/expressir/package/metadata.rb +0 -1
  35. data/lib/expressir/schema_manifest.rb +0 -1
  36. data/lib/expressir/schema_manifest_entry.rb +0 -1
  37. data/lib/expressir/version.rb +1 -1
  38. metadata +15 -15
@@ -32,8 +32,8 @@ module Expressir
32
32
  map "files", to: :files
33
33
  end
34
34
 
35
- def initialize(*args, base_dir: nil, schemas: nil, **kwargs)
36
- super(*args, **kwargs)
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
- if schemas
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, &block)
344
+ def format_output(items, format, &)
346
345
  case format
347
346
  when :hash
348
- items.map(&block)
347
+ items.map(&)
349
348
  when :json
350
349
  require "json"
351
- items.map(&block).to_json
350
+ items.map(&).to_json
352
351
  when :yaml
353
352
  require "yaml"
354
- items.map(&block).to_yaml
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:, **options)
87
+ def search_with_depth(pattern:, max_depth:, **)
88
88
  return [] if max_depth <= 0
89
89
 
90
- results = search(pattern: pattern, **options)
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, **options)
101
- results = search(pattern: pattern, **options)
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, **options)
112
- results = search(pattern: pattern, **options)
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 { |s| file_schema_ids.include?(s.id) }
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?
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
3
  module Expressir
5
4
  module Package
6
5
  # Package metadata with serialization support
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
3
  module Expressir
5
4
  class SchemaManifest < Lutaml::Model::Serializable
6
5
  attribute :schemas, "Expressir::SchemaManifestEntry",
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
3
  module Expressir
5
4
  class SchemaManifestEntry < Lutaml::Model::Serializable
6
5
  attribute :id, :string
@@ -1,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "2.3.0".freeze
2
+ VERSION = "2.3.1".freeze
3
3
  end
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.0
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-03-24 00:00:00.000000000 Z
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: paint
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: parsanol
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: 1.3.7
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: 1.3.7
138
+ version: '0'
145
139
  - !ruby/object:Gem::Dependency
146
- name: nokogiri
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: '0'
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: '0'
158
+ version: 1.3.9
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: ruby-progressbar
161
161
  requirement: !ruby/object:Gem::Requirement