expressir 0.2.19 → 0.2.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +7 -6
  3. data/.github/workflows/release.yml +31 -3
  4. data/README.adoc +3 -3
  5. data/exe/format +2 -49
  6. data/exe/format-test +81 -0
  7. data/lib/expressir/express_exp/cache.rb +48 -0
  8. data/lib/expressir/express_exp/formatter.rb +12 -2
  9. data/lib/expressir/express_exp/hyperlink_formatter.rb +10 -15
  10. data/lib/expressir/express_exp/model_visitor.rb +23 -0
  11. data/lib/expressir/express_exp/parser.rb +14 -3
  12. data/lib/expressir/express_exp/resolve_references_model_visitor.rb +29 -0
  13. data/lib/expressir/express_exp/visitor.rb +46 -19
  14. data/lib/expressir/model.rb +5 -1
  15. data/lib/expressir/model/attribute.rb +13 -6
  16. data/lib/expressir/model/cache.rb +13 -0
  17. data/lib/expressir/model/constant.rb +10 -3
  18. data/lib/expressir/model/entity.rb +16 -14
  19. data/lib/expressir/model/enumeration_item.rb +8 -1
  20. data/lib/expressir/model/expressions/aggregate_initializer.rb +2 -2
  21. data/lib/expressir/model/expressions/aggregate_item.rb +2 -2
  22. data/lib/expressir/model/expressions/attribute_reference.rb +2 -2
  23. data/lib/expressir/model/expressions/binary_expression.rb +3 -3
  24. data/lib/expressir/model/expressions/call.rb +3 -3
  25. data/lib/expressir/model/expressions/entity_constructor.rb +3 -3
  26. data/lib/expressir/model/expressions/group_reference.rb +2 -2
  27. data/lib/expressir/model/expressions/index_reference.rb +3 -3
  28. data/lib/expressir/model/expressions/interval.rb +5 -5
  29. data/lib/expressir/model/expressions/query_expression.rb +6 -4
  30. data/lib/expressir/model/expressions/simple_reference.rb +5 -1
  31. data/lib/expressir/model/expressions/unary_expression.rb +2 -2
  32. data/lib/expressir/model/function.rb +23 -21
  33. data/lib/expressir/model/identifier.rb +6 -3
  34. data/lib/expressir/model/interface.rb +4 -4
  35. data/lib/expressir/model/interface_item.rb +2 -2
  36. data/lib/expressir/model/interfaced_item.rb +10 -9
  37. data/lib/expressir/model/literals/binary.rb +1 -1
  38. data/lib/expressir/model/literals/integer.rb +1 -1
  39. data/lib/expressir/model/literals/logical.rb +1 -1
  40. data/lib/expressir/model/literals/real.rb +1 -1
  41. data/lib/expressir/model/literals/string.rb +2 -2
  42. data/lib/expressir/model/model_element.rb +38 -26
  43. data/lib/expressir/model/parameter.rb +10 -3
  44. data/lib/expressir/model/procedure.rb +22 -20
  45. data/lib/expressir/model/remark_item.rb +15 -0
  46. data/lib/expressir/model/repository.rb +2 -2
  47. data/lib/expressir/model/rule.rb +26 -24
  48. data/lib/expressir/model/schema.rb +24 -20
  49. data/lib/expressir/model/schema_version.rb +15 -0
  50. data/lib/expressir/model/schema_version_item.rb +15 -0
  51. data/lib/expressir/model/statements/alias.rb +7 -5
  52. data/lib/expressir/model/statements/assignment.rb +2 -2
  53. data/lib/expressir/model/statements/call.rb +3 -3
  54. data/lib/expressir/model/statements/case.rb +4 -4
  55. data/lib/expressir/model/statements/case_action.rb +3 -3
  56. data/lib/expressir/model/statements/compound.rb +2 -2
  57. data/lib/expressir/model/statements/if.rb +5 -5
  58. data/lib/expressir/model/statements/repeat.rb +11 -9
  59. data/lib/expressir/model/statements/return.rb +1 -1
  60. data/lib/expressir/model/subtype_constraint.rb +13 -6
  61. data/lib/expressir/model/type.rb +9 -7
  62. data/lib/expressir/model/types/aggregate.rb +9 -2
  63. data/lib/expressir/model/types/array.rb +5 -5
  64. data/lib/expressir/model/types/bag.rb +3 -3
  65. data/lib/expressir/model/types/binary.rb +2 -2
  66. data/lib/expressir/model/types/enumeration.rb +6 -6
  67. data/lib/expressir/model/types/generic.rb +8 -1
  68. data/lib/expressir/model/types/generic_entity.rb +8 -1
  69. data/lib/expressir/model/types/list.rb +4 -4
  70. data/lib/expressir/model/types/real.rb +1 -1
  71. data/lib/expressir/model/types/select.rb +7 -7
  72. data/lib/expressir/model/types/set.rb +3 -3
  73. data/lib/expressir/model/types/string.rb +2 -2
  74. data/lib/expressir/model/unique.rb +10 -3
  75. data/lib/expressir/model/variable.rb +10 -3
  76. data/lib/expressir/model/where.rb +9 -2
  77. data/lib/expressir/version.rb +1 -1
  78. data/original/examples/syntax/multiple.exp +1 -1
  79. data/original/examples/syntax/multiple.yaml +15 -1
  80. data/original/examples/syntax/multiple_formatted.exp +1 -1
  81. data/original/examples/syntax/multiple_hyperlink_formatted.exp +4 -4
  82. data/original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp +1 -1
  83. data/original/examples/syntax/remark.exp +12 -10
  84. data/original/examples/syntax/remark.yaml +23 -3
  85. data/original/examples/syntax/remark_formatted.exp +3 -1
  86. data/original/examples/syntax/single.exp +2 -1
  87. data/original/examples/syntax/single.yaml +9 -0
  88. data/original/examples/syntax/single_formatted.exp +5 -1
  89. data/original/examples/syntax/single_formatted.yaml +18 -1
  90. data/original/examples/syntax/syntax.exp +1 -1
  91. data/original/examples/syntax/syntax.yaml +99 -2
  92. data/original/examples/syntax/syntax_formatted.exp +1 -1
  93. data/original/examples/syntax/syntax_hyperlink_formatted.exp +902 -0
  94. data/original/examples/syntax/syntax_schema_head_formatted.exp +1 -1
  95. data/spec/expressir/express_exp/cache_spec.rb +64 -0
  96. data/spec/expressir/express_exp/formatter_spec.rb +16 -0
  97. data/spec/expressir/express_exp/parser_spec.rb +1 -1
  98. data/spec/expressir/model/model_element_spec.rb +73 -21
  99. metadata +12 -3
  100. data/lib/expressir/model/informal_proposition.rb +0 -18
@@ -1,4 +1,4 @@
1
- SCHEMA syntax_schema 'version';
1
+ SCHEMA syntax_schema '{ISO standard 10303 part(41) object(1) version(8)}';
2
2
 
3
3
  USE FROM contract_schema;
4
4
  USE FROM contract_schema
@@ -0,0 +1,64 @@
1
+ require "yaml"
2
+ require "tempfile"
3
+ require "spec_helper"
4
+ require "expressir/express_exp/parser"
5
+ require "expressir/express_exp/cache"
6
+
7
+ RSpec.describe Expressir::ExpressExp::Cache do
8
+ TEST_VERSION = "0.0.0"
9
+
10
+ describe ".to_file" do
11
+ it "exports an object" do
12
+ temp_file = Tempfile.new
13
+
14
+ repository = Expressir::Model::Repository.new
15
+
16
+ begin
17
+ Expressir::ExpressExp::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
18
+
19
+ size = File.size(temp_file)
20
+
21
+ expect(size).to be > 0
22
+ ensure
23
+ temp_file.close
24
+ temp_file.unlink
25
+ end
26
+ end
27
+ end
28
+
29
+ describe ".from_file" do
30
+ it "parses a file" do
31
+ temp_file = Tempfile.new
32
+
33
+ repository = Expressir::Model::Repository.new
34
+
35
+ begin
36
+ Expressir::ExpressExp::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
37
+
38
+ result = Expressir::ExpressExp::Cache.from_file(temp_file, test_overwrite_version: TEST_VERSION)
39
+
40
+ expect(result).to be_instance_of(Expressir::Model::Repository)
41
+ ensure
42
+ temp_file.close
43
+ temp_file.unlink
44
+ end
45
+ end
46
+
47
+ it "fails parsing a file from a different Expressir version" do
48
+ temp_file = Tempfile.new
49
+
50
+ repository = Expressir::Model::Repository.new
51
+
52
+ begin
53
+ Expressir::ExpressExp::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
54
+
55
+ expect do
56
+ Expressir::ExpressExp::Cache.from_file(temp_file)
57
+ end.to raise_error(Expressir::ExpressExp::CacheLoadError)
58
+ ensure
59
+ temp_file.close
60
+ temp_file.unlink
61
+ end
62
+ end
63
+ end
64
+ end
@@ -75,6 +75,22 @@ RSpec.describe Expressir::ExpressExp::Formatter do
75
75
  expect(result).to eq(expected_result)
76
76
  end
77
77
 
78
+ it "exports an object with hyperlink formatter (syntax.exp)" do
79
+ exp_file = Expressir.root_path.join("original", "examples", "syntax", "syntax.exp")
80
+ formatted_exp_file = Expressir.root_path.join("original", "examples", "syntax", "syntax_hyperlink_formatted.exp")
81
+
82
+ repo = Expressir::ExpressExp::Parser.from_file(exp_file)
83
+
84
+ formatter = Class.new(Expressir::ExpressExp::Formatter) do
85
+ include Expressir::ExpressExp::HyperlinkFormatter
86
+ end
87
+ result = formatter.format(repo)
88
+ # File.write(formatted_exp_file, result)
89
+ expected_result = File.read(formatted_exp_file)
90
+
91
+ expect(result).to eq(expected_result)
92
+ end
93
+
78
94
  it "exports an object with hyperlink formatter (multiple.exp)" do
79
95
  exp_file = Expressir.root_path.join("original", "examples", "syntax", "multiple.exp")
80
96
  formatted_exp_file = Expressir.root_path.join("original", "examples", "syntax", "multiple_hyperlink_formatted.exp")
@@ -86,7 +86,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
86
86
  expect(schemas[0].file).to eq(exp_files[0].to_s)
87
87
  expect(schemas[0].id).to eq("single_schema")
88
88
  expect(schemas[1].file).to eq(exp_files[1].to_s)
89
- expect(schemas[1].id).to eq("multiple_schema1")
89
+ expect(schemas[1].id).to eq("multiple_schema")
90
90
  expect(schemas[2].file).to eq(exp_files[1].to_s)
91
91
  expect(schemas[2].id).to eq("multiple_schema2")
92
92
  expect(schemas[3].file).to eq(exp_files[1].to_s)
@@ -71,7 +71,57 @@ RSpec.describe Expressir::Model::ModelElement do
71
71
  end
72
72
 
73
73
  describe ".find" do
74
- it "finds an object" do
74
+ it "finds an object (single.exp)" do
75
+ exp_file = Expressir.root_path.join("original", "examples", "syntax", "single.exp")
76
+
77
+ repo = Expressir::ExpressExp::Parser.from_file(exp_file)
78
+
79
+ # universal scope
80
+ expect(repo.find('single_schema')).to be_instance_of(Expressir::Model::Schema)
81
+ expect(repo.find('single_schema.empty_entity')).to be_instance_of(Expressir::Model::Entity)
82
+
83
+ # schema scope
84
+ schema = repo.schemas.first
85
+ expect(schema.find('empty_entity')).to be_instance_of(Expressir::Model::Entity)
86
+ end
87
+
88
+ it "finds an object (multiple.exp)" do
89
+ exp_file = Expressir.root_path.join("original", "examples", "syntax", "multiple.exp")
90
+
91
+ repo = Expressir::ExpressExp::Parser.from_file(exp_file)
92
+
93
+ # universal scope
94
+ expect(repo.find('multiple_schema')).to be_instance_of(Expressir::Model::Schema)
95
+ expect(repo.find('multiple_schema.empty_entity')).to be_instance_of(Expressir::Model::Entity)
96
+ expect(repo.find('multiple_schema.attribute_entity')).to be_instance_of(Expressir::Model::Entity)
97
+ expect(repo.find('multiple_schema.attribute_entity2')).to be_instance_of(Expressir::Model::Entity)
98
+ expect(repo.find('multiple_schema.attribute_entity3')).to be_instance_of(Expressir::Model::Entity)
99
+ expect(repo.find('multiple_schema.attribute_entity4')).to be_instance_of(Expressir::Model::Entity)
100
+
101
+ # schema scope
102
+ schema = repo.schemas.first
103
+ expect(schema.find('empty_entity')).to be_instance_of(Expressir::Model::Entity)
104
+ expect(schema.find('attribute_entity')).to be_instance_of(Expressir::Model::Entity)
105
+ expect(schema.find('attribute_entity2')).to be_instance_of(Expressir::Model::Entity)
106
+ expect(schema.find('attribute_entity3')).to be_instance_of(Expressir::Model::Entity)
107
+ expect(schema.find('attribute_entity4')).to be_instance_of(Expressir::Model::Entity)
108
+ end
109
+
110
+ it "finds an object (syntax.exp)" do
111
+ exp_file = Expressir.root_path.join("original", "examples", "syntax", "syntax.exp")
112
+
113
+ repo = Expressir::ExpressExp::Parser.from_file(exp_file)
114
+
115
+ # universal scope
116
+ expect(repo.find('syntax_schema')).to be_instance_of(Expressir::Model::Schema)
117
+ expect(repo.find('syntax_schema.empty_entity')).to be_instance_of(Expressir::Model::Entity)
118
+
119
+ # schema scope
120
+ schema = repo.schemas.first
121
+ expect(schema.find('empty_entity')).to be_instance_of(Expressir::Model::Entity)
122
+ end
123
+
124
+ it "finds an object (remark.exp)" do
75
125
  exp_file = Expressir.root_path.join("original", "examples", "syntax", "remark.exp")
76
126
 
77
127
  repo = Expressir::ExpressExp::Parser.from_file(exp_file)
@@ -82,8 +132,8 @@ RSpec.describe Expressir::Model::ModelElement do
82
132
  expect(repo.find('remark_schema.remark_type')).to be_instance_of(Expressir::Model::Type)
83
133
  expect(repo.find('remark_schema.remark_type.WR1')).to be_instance_of(Expressir::Model::Where)
84
134
  expect(repo.find('remark_schema.remark_type.wr:WR1')).to be_instance_of(Expressir::Model::Where)
85
- expect(repo.find('remark_schema.remark_type.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
86
- expect(repo.find('remark_schema.remark_type.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
135
+ expect(repo.find('remark_schema.remark_type.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
136
+ expect(repo.find('remark_schema.remark_type.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
87
137
  expect(repo.find('remark_schema.remark_enumeration_item')).to be_instance_of(Expressir::Model::EnumerationItem)
88
138
  expect(repo.find('remark_schema.remark_entity')).to be_instance_of(Expressir::Model::Entity)
89
139
  expect(repo.find('remark_schema.remark_entity.remark_attribute')).to be_instance_of(Expressir::Model::Attribute)
@@ -92,8 +142,8 @@ RSpec.describe Expressir::Model::ModelElement do
92
142
  expect(repo.find('remark_schema.remark_entity.UR1')).to be_instance_of(Expressir::Model::Unique)
93
143
  expect(repo.find('remark_schema.remark_entity.WR1')).to be_instance_of(Expressir::Model::Where)
94
144
  expect(repo.find('remark_schema.remark_entity.wr:WR1')).to be_instance_of(Expressir::Model::Where)
95
- expect(repo.find('remark_schema.remark_entity.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
96
- expect(repo.find('remark_schema.remark_entity.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
145
+ expect(repo.find('remark_schema.remark_entity.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
146
+ expect(repo.find('remark_schema.remark_entity.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
97
147
  expect(repo.find('remark_schema.remark_subtype_constraint')).to be_instance_of(Expressir::Model::SubtypeConstraint)
98
148
  expect(repo.find('remark_schema.remark_function')).to be_instance_of(Expressir::Model::Function)
99
149
  expect(repo.find('remark_schema.remark_function.remark_parameter')).to be_instance_of(Expressir::Model::Parameter)
@@ -114,8 +164,9 @@ RSpec.describe Expressir::Model::ModelElement do
114
164
  expect(repo.find('remark_schema.remark_rule.remark_variable')).to be_instance_of(Expressir::Model::Variable)
115
165
  expect(repo.find('remark_schema.remark_rule.WR1')).to be_instance_of(Expressir::Model::Where)
116
166
  expect(repo.find('remark_schema.remark_rule.wr:WR1')).to be_instance_of(Expressir::Model::Where)
117
- expect(repo.find('remark_schema.remark_rule.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
118
- expect(repo.find('remark_schema.remark_rule.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
167
+ expect(repo.find('remark_schema.remark_rule.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
168
+ expect(repo.find('remark_schema.remark_rule.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
169
+ expect(repo.find('remark_schema.remark_item')).to be_instance_of(Expressir::Model::RemarkItem)
119
170
 
120
171
  # schema scope
121
172
  schema = repo.schemas.first
@@ -123,8 +174,8 @@ RSpec.describe Expressir::Model::ModelElement do
123
174
  expect(schema.find('remark_type')).to be_instance_of(Expressir::Model::Type)
124
175
  expect(schema.find('remark_type.WR1')).to be_instance_of(Expressir::Model::Where)
125
176
  expect(schema.find('remark_type.wr:WR1')).to be_instance_of(Expressir::Model::Where)
126
- expect(schema.find('remark_type.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
127
- expect(schema.find('remark_type.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
177
+ expect(schema.find('remark_type.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
178
+ expect(schema.find('remark_type.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
128
179
  expect(schema.find('remark_enumeration_item')).to be_instance_of(Expressir::Model::EnumerationItem)
129
180
  expect(schema.find('remark_entity')).to be_instance_of(Expressir::Model::Entity)
130
181
  expect(schema.find('remark_entity.remark_attribute')).to be_instance_of(Expressir::Model::Attribute)
@@ -133,8 +184,8 @@ RSpec.describe Expressir::Model::ModelElement do
133
184
  expect(schema.find('remark_entity.UR1')).to be_instance_of(Expressir::Model::Unique)
134
185
  expect(schema.find('remark_entity.WR1')).to be_instance_of(Expressir::Model::Where)
135
186
  expect(schema.find('remark_entity.wr:WR1')).to be_instance_of(Expressir::Model::Where)
136
- expect(schema.find('remark_entity.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
137
- expect(schema.find('remark_entity.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
187
+ expect(schema.find('remark_entity.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
188
+ expect(schema.find('remark_entity.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
138
189
  expect(schema.find('remark_subtype_constraint')).to be_instance_of(Expressir::Model::SubtypeConstraint)
139
190
  expect(schema.find('remark_function')).to be_instance_of(Expressir::Model::Function)
140
191
  expect(schema.find('remark_function.remark_parameter')).to be_instance_of(Expressir::Model::Parameter)
@@ -155,15 +206,16 @@ RSpec.describe Expressir::Model::ModelElement do
155
206
  expect(schema.find('remark_rule.remark_variable')).to be_instance_of(Expressir::Model::Variable)
156
207
  expect(schema.find('remark_rule.WR1')).to be_instance_of(Expressir::Model::Where)
157
208
  expect(schema.find('remark_rule.wr:WR1')).to be_instance_of(Expressir::Model::Where)
158
- expect(schema.find('remark_rule.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
159
- expect(schema.find('remark_rule.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
209
+ expect(schema.find('remark_rule.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
210
+ expect(schema.find('remark_rule.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
211
+ expect(schema.find('remark_item')).to be_instance_of(Expressir::Model::RemarkItem)
160
212
 
161
213
  # type scope
162
214
  type = schema.types.first
163
215
  expect(type.find('WR1')).to be_instance_of(Expressir::Model::Where)
164
216
  expect(type.find('wr:WR1')).to be_instance_of(Expressir::Model::Where)
165
- expect(type.find('IP1')).to be_instance_of(Expressir::Model::InformalProposition)
166
- expect(type.find('ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
217
+ expect(type.find('IP1')).to be_instance_of(Expressir::Model::RemarkItem)
218
+ expect(type.find('ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
167
219
 
168
220
  # entity scope
169
221
  entity = schema.entities.first
@@ -173,8 +225,8 @@ RSpec.describe Expressir::Model::ModelElement do
173
225
  expect(entity.find('UR1')).to be_instance_of(Expressir::Model::Unique)
174
226
  expect(entity.find('WR1')).to be_instance_of(Expressir::Model::Where)
175
227
  expect(entity.find('wr:WR1')).to be_instance_of(Expressir::Model::Where)
176
- expect(entity.find('IP1')).to be_instance_of(Expressir::Model::InformalProposition)
177
- expect(entity.find('ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
228
+ expect(entity.find('IP1')).to be_instance_of(Expressir::Model::RemarkItem)
229
+ expect(entity.find('ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
178
230
 
179
231
  # function scope
180
232
  function = schema.functions.first
@@ -200,15 +252,15 @@ RSpec.describe Expressir::Model::ModelElement do
200
252
  expect(rule.find('remark_variable')).to be_instance_of(Expressir::Model::Variable)
201
253
  expect(rule.find('WR1')).to be_instance_of(Expressir::Model::Where)
202
254
  expect(rule.find('wr:WR1')).to be_instance_of(Expressir::Model::Where)
203
- expect(rule.find('IP1')).to be_instance_of(Expressir::Model::InformalProposition)
204
- expect(rule.find('ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
255
+ expect(rule.find('IP1')).to be_instance_of(Expressir::Model::RemarkItem)
256
+ expect(rule.find('ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
205
257
 
206
258
  # retry search in parent scope
207
259
  expect(entity.find('remark_type')).to be_instance_of(Expressir::Model::Type)
208
260
  expect(entity.find('remark_type.WR1')).to be_instance_of(Expressir::Model::Where)
209
261
  expect(entity.find('remark_type.wr:WR1')).to be_instance_of(Expressir::Model::Where)
210
- expect(entity.find('remark_type.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
211
- expect(entity.find('remark_type.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
262
+ expect(entity.find('remark_type.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
263
+ expect(entity.find('remark_type.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
212
264
  end
213
265
  end
214
266
  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: 0.2.19
4
+ version: 0.2.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-10 00:00:00.000000000 Z
11
+ date: 2021-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -190,6 +190,7 @@ files:
190
190
  - docs/development.md
191
191
  - exe/expressir
192
192
  - exe/format
193
+ - exe/format-test
193
194
  - exe/generate-parser
194
195
  - expressir.gemspec
195
196
  - ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt
@@ -568,14 +569,18 @@ files:
568
569
  - lib/expressir/express/type_select.rb
569
570
  - lib/expressir/express/unique_rule.rb
570
571
  - lib/expressir/express/where_rule.rb
572
+ - lib/expressir/express_exp/cache.rb
571
573
  - lib/expressir/express_exp/formatter.rb
572
574
  - lib/expressir/express_exp/hyperlink_formatter.rb
575
+ - lib/expressir/express_exp/model_visitor.rb
573
576
  - lib/expressir/express_exp/parser.rb
577
+ - lib/expressir/express_exp/resolve_references_model_visitor.rb
574
578
  - lib/expressir/express_exp/schema_head_formatter.rb
575
579
  - lib/expressir/express_exp/visitor.rb
576
580
  - lib/expressir/express_parser.rb
577
581
  - lib/expressir/model.rb
578
582
  - lib/expressir/model/attribute.rb
583
+ - lib/expressir/model/cache.rb
579
584
  - lib/expressir/model/constant.rb
580
585
  - lib/expressir/model/entity.rb
581
586
  - lib/expressir/model/enumeration_item.rb
@@ -593,7 +598,6 @@ files:
593
598
  - lib/expressir/model/expressions/unary_expression.rb
594
599
  - lib/expressir/model/function.rb
595
600
  - lib/expressir/model/identifier.rb
596
- - lib/expressir/model/informal_proposition.rb
597
601
  - lib/expressir/model/interface.rb
598
602
  - lib/expressir/model/interface_item.rb
599
603
  - lib/expressir/model/interfaced_item.rb
@@ -605,9 +609,12 @@ files:
605
609
  - lib/expressir/model/model_element.rb
606
610
  - lib/expressir/model/parameter.rb
607
611
  - lib/expressir/model/procedure.rb
612
+ - lib/expressir/model/remark_item.rb
608
613
  - lib/expressir/model/repository.rb
609
614
  - lib/expressir/model/rule.rb
610
615
  - lib/expressir/model/schema.rb
616
+ - lib/expressir/model/schema_version.rb
617
+ - lib/expressir/model/schema_version_item.rb
611
618
  - lib/expressir/model/statements/alias.rb
612
619
  - lib/expressir/model/statements/assignment.rb
613
620
  - lib/expressir/model/statements/call.rb
@@ -688,6 +695,7 @@ files:
688
695
  - original/examples/syntax/syntax.exp
689
696
  - original/examples/syntax/syntax.yaml
690
697
  - original/examples/syntax/syntax_formatted.exp
698
+ - original/examples/syntax/syntax_hyperlink_formatted.exp
691
699
  - original/examples/syntax/syntax_schema_head_formatted.exp
692
700
  - original/exp2ruby.rb
693
701
  - original/expsm.rb
@@ -700,6 +708,7 @@ files:
700
708
  - spec/acceptance/express_to_owl_spec.rb
701
709
  - spec/acceptance/version_spec.rb
702
710
  - spec/expressir/express/repository_spec.rb
711
+ - spec/expressir/express_exp/cache_spec.rb
703
712
  - spec/expressir/express_exp/formatter_spec.rb
704
713
  - spec/expressir/express_exp/parser_spec.rb
705
714
  - spec/expressir/model/model_element_spec.rb
@@ -1,18 +0,0 @@
1
- module Expressir
2
- module Model
3
- class InformalProposition < ModelElement
4
- include Identifier
5
-
6
- undef :source
7
- undef :source=
8
-
9
- def initialize(options = {})
10
- @id = options[:id]
11
- @remarks = options.fetch(:remarks, [])
12
- # @source = options[:source]
13
-
14
- super
15
- end
16
- end
17
- end
18
- end