expressir 2.1.18 → 2.1.20

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.
@@ -1,72 +1,95 @@
1
- require_relative "model/model_element"
2
- require_relative "model/cache"
3
- require_relative "model/identifier"
4
- require_relative "model/repository"
1
+ # This file is kept for backward compatibility and to ensure all model classes are loaded
2
+ # when explicitly requiring 'expressir/model'. The actual autoload definitions are in the main
3
+ # expressir.rb file.
5
4
 
6
- require_relative "model/data_types/aggregate"
7
- require_relative "model/data_types/array"
8
- require_relative "model/data_types/bag"
9
- require_relative "model/data_types/binary"
10
- require_relative "model/data_types/boolean"
11
- require_relative "model/data_types/enumeration"
12
- require_relative "model/data_types/enumeration_item"
13
- require_relative "model/data_types/generic_entity"
14
- require_relative "model/data_types/generic"
15
- require_relative "model/data_types/integer"
16
- require_relative "model/data_types/list"
17
- require_relative "model/data_types/logical"
18
- require_relative "model/data_types/number"
19
- require_relative "model/data_types/real"
20
- require_relative "model/data_types/set"
21
- require_relative "model/data_types/select"
22
- require_relative "model/data_types/string"
23
- require_relative "model/declarations/attribute"
24
- require_relative "model/declarations/constant"
25
- require_relative "model/declarations/entity"
26
- require_relative "model/declarations/function"
27
- require_relative "model/declarations/interface"
28
- require_relative "model/declarations/interface_item"
29
- require_relative "model/declarations/interfaced_item"
30
- require_relative "model/declarations/parameter"
31
- require_relative "model/declarations/procedure"
32
- require_relative "model/declarations/remark_item"
33
- require_relative "model/declarations/rule"
34
- require_relative "model/declarations/schema"
35
- require_relative "model/declarations/schema_version"
36
- require_relative "model/declarations/schema_version_item"
37
- require_relative "model/declarations/subtype_constraint"
38
- require_relative "model/declarations/type"
39
- require_relative "model/declarations/unique_rule"
40
- require_relative "model/declarations/variable"
41
- require_relative "model/declarations/where_rule"
42
- require_relative "model/expressions/aggregate_initializer"
43
- require_relative "model/expressions/aggregate_initializer_item"
44
- require_relative "model/expressions/binary_expression"
45
- require_relative "model/expressions/entity_constructor"
46
- require_relative "model/expressions/function_call"
47
- require_relative "model/expressions/interval"
48
- require_relative "model/expressions/query_expression"
49
- require_relative "model/expressions/unary_expression"
50
- require_relative "model/literals/binary"
51
- require_relative "model/literals/integer"
52
- require_relative "model/literals/logical"
53
- require_relative "model/literals/real"
54
- require_relative "model/literals/string"
55
- require_relative "model/references/attribute_reference"
56
- require_relative "model/references/group_reference"
57
- require_relative "model/references/index_reference"
58
- require_relative "model/references/simple_reference"
59
- require_relative "model/statements/alias"
60
- require_relative "model/statements/assignment"
61
- require_relative "model/statements/case"
62
- require_relative "model/statements/case_action"
63
- require_relative "model/statements/compound"
64
- require_relative "model/statements/escape"
65
- require_relative "model/statements/if"
66
- require_relative "model/statements/null"
67
- require_relative "model/statements/procedure_call"
68
- require_relative "model/statements/repeat"
69
- require_relative "model/statements/return"
70
- require_relative "model/statements/skip"
71
- require_relative "model/supertype_expressions/binary_supertype_expression"
72
- require_relative "model/supertype_expressions/oneof_supertype_expression"
5
+ # Ensure all model classes are loaded by referencing them
6
+ # This triggers the autoload mechanism for each class
7
+
8
+ # Core model classes
9
+ Expressir::Model::ModelElement
10
+ Expressir::Model::Cache
11
+ Expressir::Model::Identifier
12
+ Expressir::Model::Repository
13
+
14
+ # Data types
15
+ Expressir::Model::DataTypes::Aggregate
16
+ Expressir::Model::DataTypes::Array
17
+ Expressir::Model::DataTypes::Bag
18
+ Expressir::Model::DataTypes::Binary
19
+ Expressir::Model::DataTypes::Boolean
20
+ Expressir::Model::DataTypes::Enumeration
21
+ Expressir::Model::DataTypes::EnumerationItem
22
+ Expressir::Model::DataTypes::GenericEntity
23
+ Expressir::Model::DataTypes::Generic
24
+ Expressir::Model::DataTypes::Integer
25
+ Expressir::Model::DataTypes::List
26
+ Expressir::Model::DataTypes::Logical
27
+ Expressir::Model::DataTypes::Number
28
+ Expressir::Model::DataTypes::Real
29
+ Expressir::Model::DataTypes::Select
30
+ Expressir::Model::DataTypes::Set
31
+ Expressir::Model::DataTypes::String
32
+
33
+ # Declarations
34
+ Expressir::Model::Declarations::Attribute
35
+ Expressir::Model::Declarations::Constant
36
+ Expressir::Model::Declarations::DerivedAttribute
37
+ Expressir::Model::Declarations::Entity
38
+ Expressir::Model::Declarations::Function
39
+ Expressir::Model::Declarations::Interface
40
+ Expressir::Model::Declarations::InterfaceItem
41
+ Expressir::Model::Declarations::InterfacedItem
42
+ Expressir::Model::Declarations::InverseAttribute
43
+ Expressir::Model::Declarations::Parameter
44
+ Expressir::Model::Declarations::Procedure
45
+ Expressir::Model::Declarations::RemarkItem
46
+ Expressir::Model::Declarations::Rule
47
+ Expressir::Model::Declarations::Schema
48
+ Expressir::Model::Declarations::SchemaVersion
49
+ Expressir::Model::Declarations::SchemaVersionItem
50
+ Expressir::Model::Declarations::SubtypeConstraint
51
+ Expressir::Model::Declarations::Type
52
+ Expressir::Model::Declarations::UniqueRule
53
+ Expressir::Model::Declarations::Variable
54
+ Expressir::Model::Declarations::WhereRule
55
+
56
+ # Expressions
57
+ Expressir::Model::Expressions::AggregateInitializer
58
+ Expressir::Model::Expressions::AggregateInitializerItem
59
+ Expressir::Model::Expressions::BinaryExpression
60
+ Expressir::Model::Expressions::EntityConstructor
61
+ Expressir::Model::Expressions::FunctionCall
62
+ Expressir::Model::Expressions::Interval
63
+ Expressir::Model::Expressions::QueryExpression
64
+ Expressir::Model::Expressions::UnaryExpression
65
+
66
+ # Literals
67
+ Expressir::Model::Literals::Binary
68
+ Expressir::Model::Literals::Integer
69
+ Expressir::Model::Literals::Logical
70
+ Expressir::Model::Literals::Real
71
+ Expressir::Model::Literals::String
72
+
73
+ # References
74
+ Expressir::Model::References::AttributeReference
75
+ Expressir::Model::References::GroupReference
76
+ Expressir::Model::References::IndexReference
77
+ Expressir::Model::References::SimpleReference
78
+
79
+ # Statements
80
+ Expressir::Model::Statements::Alias
81
+ Expressir::Model::Statements::Assignment
82
+ Expressir::Model::Statements::Case
83
+ Expressir::Model::Statements::CaseAction
84
+ Expressir::Model::Statements::Compound
85
+ Expressir::Model::Statements::Escape
86
+ Expressir::Model::Statements::If
87
+ Expressir::Model::Statements::Null
88
+ Expressir::Model::Statements::ProcedureCall
89
+ Expressir::Model::Statements::Repeat
90
+ Expressir::Model::Statements::Return
91
+ Expressir::Model::Statements::Skip
92
+
93
+ # Supertype expressions
94
+ Expressir::Model::SupertypeExpressions::BinarySupertypeExpression
95
+ Expressir::Model::SupertypeExpressions::OneofSupertypeExpression
@@ -1,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "2.1.18".freeze
2
+ VERSION = "2.1.20".freeze
3
3
  end
data/lib/expressir.rb CHANGED
@@ -1,8 +1,8 @@
1
- require "zeitwerk"
2
1
  require_relative "expressir/version"
3
2
  require_relative "expressir/cli"
4
3
  require_relative "expressir/config"
5
4
  require_relative "expressir/benchmark"
5
+ require_relative "expressir/coverage"
6
6
  require "lutaml/model"
7
7
  require "liquid" # To enable Lutaml::Model::Liquefiable
8
8
 
@@ -35,13 +35,129 @@ module Expressir
35
35
  def self.root_path
36
36
  @root_path ||= Pathname.new(Expressir.root)
37
37
  end
38
- end
39
38
 
40
- loader = Zeitwerk::Loader.for_gem
41
- loader.setup
39
+ # Autoload for Express module classes
40
+ module Express
41
+ autoload :Cache, "expressir/express/cache"
42
+ autoload :Error, "expressir/express/error"
43
+ autoload :Formatter, "expressir/express/formatter"
44
+ autoload :HyperlinkFormatter, "expressir/express/hyperlink_formatter"
45
+ autoload :ModelVisitor, "expressir/express/model_visitor"
46
+ autoload :Parser, "expressir/express/parser"
47
+ autoload :ResolveReferencesModelVisitor, "expressir/express/resolve_references_model_visitor"
48
+ autoload :SchemaHeadFormatter, "expressir/express/schema_head_formatter"
49
+ autoload :Visitor, "expressir/express/visitor"
50
+ end
51
+
52
+ # Autoload for Model module classes
53
+ module Model
54
+ autoload :ModelElement, "expressir/model/model_element"
55
+ autoload :Cache, "expressir/model/cache"
56
+ autoload :Identifier, "expressir/model/identifier"
57
+ autoload :Repository, "expressir/model/repository"
58
+
59
+ module DataTypes
60
+ autoload :Aggregate, "expressir/model/data_types/aggregate"
61
+ autoload :Array, "expressir/model/data_types/array"
62
+ autoload :Bag, "expressir/model/data_types/bag"
63
+ autoload :Binary, "expressir/model/data_types/binary"
64
+ autoload :Boolean, "expressir/model/data_types/boolean"
65
+ autoload :Enumeration, "expressir/model/data_types/enumeration"
66
+ autoload :EnumerationItem, "expressir/model/data_types/enumeration_item"
67
+ autoload :GenericEntity, "expressir/model/data_types/generic_entity"
68
+ autoload :Generic, "expressir/model/data_types/generic"
69
+ autoload :Integer, "expressir/model/data_types/integer"
70
+ autoload :List, "expressir/model/data_types/list"
71
+ autoload :Logical, "expressir/model/data_types/logical"
72
+ autoload :Number, "expressir/model/data_types/number"
73
+ autoload :Real, "expressir/model/data_types/real"
74
+ autoload :Select, "expressir/model/data_types/select"
75
+ autoload :Set, "expressir/model/data_types/set"
76
+ autoload :String, "expressir/model/data_types/string"
77
+ end
78
+
79
+ module Declarations
80
+ autoload :Attribute, "expressir/model/declarations/attribute"
81
+ autoload :Constant, "expressir/model/declarations/constant"
82
+ autoload :DerivedAttribute, "expressir/model/declarations/derived_attribute"
83
+ autoload :Entity, "expressir/model/declarations/entity"
84
+ autoload :Function, "expressir/model/declarations/function"
85
+ autoload :Interface, "expressir/model/declarations/interface"
86
+ autoload :InterfaceItem, "expressir/model/declarations/interface_item"
87
+ autoload :InterfacedItem, "expressir/model/declarations/interfaced_item"
88
+ autoload :InverseAttribute, "expressir/model/declarations/inverse_attribute"
89
+ autoload :Parameter, "expressir/model/declarations/parameter"
90
+ autoload :Procedure, "expressir/model/declarations/procedure"
91
+ autoload :RemarkItem, "expressir/model/declarations/remark_item"
92
+ autoload :Rule, "expressir/model/declarations/rule"
93
+ autoload :Schema, "expressir/model/declarations/schema"
94
+ autoload :SchemaVersion, "expressir/model/declarations/schema_version"
95
+ autoload :SchemaVersionItem, "expressir/model/declarations/schema_version_item"
96
+ autoload :SubtypeConstraint, "expressir/model/declarations/subtype_constraint"
97
+ autoload :Type, "expressir/model/declarations/type"
98
+ autoload :UniqueRule, "expressir/model/declarations/unique_rule"
99
+ autoload :Variable, "expressir/model/declarations/variable"
100
+ autoload :WhereRule, "expressir/model/declarations/where_rule"
101
+ end
42
102
 
43
- Dir[File.join(__dir__, "expressir", "express", "*.rb")].sort.each do |fea|
44
- require fea
103
+ module Expressions
104
+ autoload :AggregateInitializer, "expressir/model/expressions/aggregate_initializer"
105
+ autoload :AggregateInitializerItem, "expressir/model/expressions/aggregate_initializer_item"
106
+ autoload :BinaryExpression, "expressir/model/expressions/binary_expression"
107
+ autoload :EntityConstructor, "expressir/model/expressions/entity_constructor"
108
+ autoload :FunctionCall, "expressir/model/expressions/function_call"
109
+ autoload :Interval, "expressir/model/expressions/interval"
110
+ autoload :QueryExpression, "expressir/model/expressions/query_expression"
111
+ autoload :UnaryExpression, "expressir/model/expressions/unary_expression"
112
+ end
113
+
114
+ module Literals
115
+ autoload :Binary, "expressir/model/literals/binary"
116
+ autoload :Integer, "expressir/model/literals/integer"
117
+ autoload :Logical, "expressir/model/literals/logical"
118
+ autoload :Real, "expressir/model/literals/real"
119
+ autoload :String, "expressir/model/literals/string"
120
+ end
121
+
122
+ module References
123
+ autoload :AttributeReference, "expressir/model/references/attribute_reference"
124
+ autoload :GroupReference, "expressir/model/references/group_reference"
125
+ autoload :IndexReference, "expressir/model/references/index_reference"
126
+ autoload :SimpleReference, "expressir/model/references/simple_reference"
127
+ end
128
+
129
+ module Statements
130
+ autoload :Alias, "expressir/model/statements/alias"
131
+ autoload :Assignment, "expressir/model/statements/assignment"
132
+ autoload :Case, "expressir/model/statements/case"
133
+ autoload :CaseAction, "expressir/model/statements/case_action"
134
+ autoload :Compound, "expressir/model/statements/compound"
135
+ autoload :Escape, "expressir/model/statements/escape"
136
+ autoload :If, "expressir/model/statements/if"
137
+ autoload :Null, "expressir/model/statements/null"
138
+ autoload :ProcedureCall, "expressir/model/statements/procedure_call"
139
+ autoload :Repeat, "expressir/model/statements/repeat"
140
+ autoload :Return, "expressir/model/statements/return"
141
+ autoload :Skip, "expressir/model/statements/skip"
142
+ end
143
+
144
+ module SupertypeExpressions
145
+ autoload :BinarySupertypeExpression, "expressir/model/supertype_expressions/binary_supertype_expression"
146
+ autoload :OneofSupertypeExpression, "expressir/model/supertype_expressions/oneof_supertype_expression"
147
+ end
148
+ end
149
+
150
+ # Autoload for Commands module classes
151
+ module Commands
152
+ autoload :Base, "expressir/commands/base"
153
+ autoload :Benchmark, "expressir/commands/benchmark"
154
+ autoload :BenchmarkCache, "expressir/commands/benchmark_cache"
155
+ autoload :Clean, "expressir/commands/clean"
156
+ autoload :Coverage, "expressir/commands/coverage"
157
+ autoload :Format, "expressir/commands/format"
158
+ autoload :Validate, "expressir/commands/validate"
159
+ autoload :Version, "expressir/commands/version"
160
+ end
45
161
  end
46
162
 
47
163
  require_relative "expressir/model"
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.18
4
+ version: 2.1.20
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-05-09 00:00:00.000000000 Z
11
+ date: 2025-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -95,33 +95,47 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '2.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: thor
98
+ name: ruby-progressbar
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.0'
103
+ version: '1.11'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.0'
110
+ version: '1.11'
111
111
  - !ruby/object:Gem::Dependency
112
- name: zeitwerk
112
+ name: terminal-table
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '2.6'
117
+ version: '3.0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '2.6'
124
+ version: '3.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: thor
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.0'
125
139
  description: Expressir ("EXPRESS in Ruby") is a Ruby parser for EXPRESS and a set
126
140
  of tools for accessing EXPRESS data models.
127
141
  email:
@@ -156,7 +170,16 @@ files:
156
170
  - lib/expressir.rb
157
171
  - lib/expressir/benchmark.rb
158
172
  - lib/expressir/cli.rb
173
+ - lib/expressir/commands/base.rb
174
+ - lib/expressir/commands/benchmark.rb
175
+ - lib/expressir/commands/benchmark_cache.rb
176
+ - lib/expressir/commands/clean.rb
177
+ - lib/expressir/commands/coverage.rb
178
+ - lib/expressir/commands/format.rb
179
+ - lib/expressir/commands/validate.rb
180
+ - lib/expressir/commands/version.rb
159
181
  - lib/expressir/config.rb
182
+ - lib/expressir/coverage.rb
160
183
  - lib/expressir/express/cache.rb
161
184
  - lib/expressir/express/error.rb
162
185
  - lib/expressir/express/formatter.rb
@@ -188,11 +211,13 @@ files:
188
211
  - lib/expressir/model/data_types/string.rb
189
212
  - lib/expressir/model/declarations/attribute.rb
190
213
  - lib/expressir/model/declarations/constant.rb
214
+ - lib/expressir/model/declarations/derived_attribute.rb
191
215
  - lib/expressir/model/declarations/entity.rb
192
216
  - lib/expressir/model/declarations/function.rb
193
217
  - lib/expressir/model/declarations/interface.rb
194
218
  - lib/expressir/model/declarations/interface_item.rb
195
219
  - lib/expressir/model/declarations/interfaced_item.rb
220
+ - lib/expressir/model/declarations/inverse_attribute.rb
196
221
  - lib/expressir/model/declarations/parameter.rb
197
222
  - lib/expressir/model/declarations/procedure.rb
198
223
  - lib/expressir/model/declarations/remark_item.rb