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.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +30 -9
- data/README.adoc +354 -3
- data/expressir.gemspec +2 -1
- data/lib/expressir/cli.rb +29 -193
- data/lib/expressir/commands/base.rb +32 -0
- data/lib/expressir/commands/benchmark.rb +68 -0
- data/lib/expressir/commands/benchmark_cache.rb +88 -0
- data/lib/expressir/commands/clean.rb +20 -0
- data/lib/expressir/commands/coverage.rb +342 -0
- data/lib/expressir/commands/format.rb +13 -0
- data/lib/expressir/commands/validate.rb +53 -0
- data/lib/expressir/commands/version.rb +9 -0
- data/lib/expressir/coverage.rb +474 -0
- data/lib/expressir/express/formatter.rb +4 -2
- data/lib/expressir/express/visitor.rb +10 -6
- data/lib/expressir/model/declarations/derived_attribute.rb +25 -0
- data/lib/expressir/model/declarations/inverse_attribute.rb +25 -0
- data/lib/expressir/model/model_element.rb +2 -0
- data/lib/expressir/model.rb +94 -71
- data/lib/expressir/version.rb +1 -1
- data/lib/expressir.rb +122 -6
- metadata +33 -8
data/lib/expressir/model.rb
CHANGED
@@ -1,72 +1,95 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
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
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
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
|
data/lib/expressir/version.rb
CHANGED
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
|
-
|
41
|
-
|
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
|
-
|
44
|
-
|
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.
|
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
|
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:
|
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.
|
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.
|
110
|
+
version: '1.11'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: terminal-table
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
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: '
|
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
|