expressir 0.2.17 → 0.2.25

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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +5 -0
  3. data/.github/workflows/release.yml +31 -3
  4. data/README.adoc +3 -3
  5. data/exe/format +45 -29
  6. data/ext/express-parser/extconf.rb +2 -0
  7. data/lib/expressir/express_exp/cache.rb +48 -0
  8. data/lib/expressir/express_exp/formatter.rb +2 -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 +18 -3
  12. data/lib/expressir/express_exp/resolve_references_model_visitor.rb +33 -0
  13. data/lib/expressir/express_exp/visitor.rb +19 -18
  14. data/lib/expressir/model.rb +3 -1
  15. data/lib/expressir/model/attribute.rb +12 -5
  16. data/lib/expressir/model/cache.rb +13 -0
  17. data/lib/expressir/model/constant.rb +9 -2
  18. data/lib/expressir/model/entity.rb +10 -8
  19. data/lib/expressir/model/enumeration_item.rb +7 -0
  20. data/lib/expressir/model/expressions/aggregate_initializer.rb +1 -1
  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 +2 -2
  25. data/lib/expressir/model/expressions/entity_constructor.rb +2 -2
  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 +5 -3
  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 +13 -11
  33. data/lib/expressir/model/identifier.rb +6 -3
  34. data/lib/expressir/model/interface.rb +3 -3
  35. data/lib/expressir/model/interface_item.rb +2 -2
  36. data/lib/expressir/model/interfaced_item.rb +9 -8
  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 +46 -21
  43. data/lib/expressir/model/parameter.rb +9 -2
  44. data/lib/expressir/model/procedure.rb +12 -10
  45. data/lib/expressir/model/{informal_proposition.rb → remark_item.rb} +3 -6
  46. data/lib/expressir/model/repository.rb +1 -1
  47. data/lib/expressir/model/rule.rb +14 -12
  48. data/lib/expressir/model/schema.rb +13 -11
  49. data/lib/expressir/model/statements/alias.rb +5 -3
  50. data/lib/expressir/model/statements/assignment.rb +2 -2
  51. data/lib/expressir/model/statements/call.rb +2 -2
  52. data/lib/expressir/model/statements/case.rb +3 -3
  53. data/lib/expressir/model/statements/case_action.rb +2 -2
  54. data/lib/expressir/model/statements/compound.rb +1 -1
  55. data/lib/expressir/model/statements/if.rb +3 -3
  56. data/lib/expressir/model/statements/repeat.rb +9 -7
  57. data/lib/expressir/model/statements/return.rb +1 -1
  58. data/lib/expressir/model/subtype_constraint.rb +11 -4
  59. data/lib/expressir/model/type.rb +6 -4
  60. data/lib/expressir/model/types/aggregate.rb +8 -1
  61. data/lib/expressir/model/types/array.rb +5 -5
  62. data/lib/expressir/model/types/bag.rb +3 -3
  63. data/lib/expressir/model/types/binary.rb +2 -2
  64. data/lib/expressir/model/types/enumeration.rb +4 -4
  65. data/lib/expressir/model/types/generic.rb +7 -0
  66. data/lib/expressir/model/types/generic_entity.rb +7 -0
  67. data/lib/expressir/model/types/list.rb +4 -4
  68. data/lib/expressir/model/types/real.rb +1 -1
  69. data/lib/expressir/model/types/select.rb +5 -5
  70. data/lib/expressir/model/types/set.rb +3 -3
  71. data/lib/expressir/model/types/string.rb +2 -2
  72. data/lib/expressir/model/unique.rb +8 -1
  73. data/lib/expressir/model/variable.rb +9 -2
  74. data/lib/expressir/model/where.rb +8 -1
  75. data/lib/expressir/version.rb +1 -1
  76. data/original/examples/syntax/multiple.yaml +18 -0
  77. data/original/examples/syntax/remark.exp +12 -10
  78. data/original/examples/syntax/remark.yaml +24 -3
  79. data/original/examples/syntax/remark_formatted.exp +3 -1
  80. data/original/examples/syntax/single.exp +1 -0
  81. data/original/examples/syntax/single.yaml +7 -0
  82. data/original/examples/syntax/single_formatted.exp +4 -0
  83. data/original/examples/syntax/single_formatted.yaml +15 -0
  84. data/original/examples/syntax/syntax.yaml +82 -0
  85. data/original/examples/syntax/syntax_hyperlink_formatted.exp +902 -0
  86. data/spec/expressir/express_exp/cache_spec.rb +64 -0
  87. data/spec/expressir/express_exp/formatter_spec.rb +17 -0
  88. data/spec/expressir/express_exp/parser_spec.rb +9 -9
  89. data/spec/expressir/model/model_element_spec.rb +32 -29
  90. metadata +9 -3
@@ -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
@@ -1,3 +1,4 @@
1
+ require "yaml"
1
2
  require "spec_helper"
2
3
  require "expressir/express_exp/parser"
3
4
  require "expressir/express_exp/formatter"
@@ -74,6 +75,22 @@ RSpec.describe Expressir::ExpressExp::Formatter do
74
75
  expect(result).to eq(expected_result)
75
76
  end
76
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
+
77
94
  it "exports an object with hyperlink formatter (multiple.exp)" do
78
95
  exp_file = Expressir.root_path.join("original", "examples", "syntax", "multiple.exp")
79
96
  formatted_exp_file = Expressir.root_path.join("original", "examples", "syntax", "multiple_hyperlink_formatted.exp")
@@ -9,7 +9,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
9
9
  yaml_file = Expressir.root_path.join("original", "examples", "syntax", "single.yaml")
10
10
 
11
11
  repo = Expressir::ExpressExp::Parser.from_file(exp_file)
12
- result = YAML.dump(repo.to_hash(skip_empty: true))
12
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, skip_empty: true))
13
13
  # File.write(yaml_file, result)
14
14
  expected_result = File.read(yaml_file)
15
15
 
@@ -21,7 +21,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
21
21
  yaml_file = Expressir.root_path.join("original", "examples", "syntax", "multiple.yaml")
22
22
 
23
23
  repo = Expressir::ExpressExp::Parser.from_file(exp_file)
24
- result = YAML.dump(repo.to_hash(skip_empty: true))
24
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, skip_empty: true))
25
25
  # File.write(yaml_file, result)
26
26
  expected_result = File.read(yaml_file)
27
27
 
@@ -33,7 +33,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
33
33
  yaml_file = Expressir.root_path.join("original", "examples", "syntax", "syntax.yaml")
34
34
 
35
35
  repo = Expressir::ExpressExp::Parser.from_file(exp_file)
36
- result = YAML.dump(repo.to_hash(skip_empty: true))
36
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, skip_empty: true))
37
37
  # File.write(yaml_file, result)
38
38
  expected_result = File.read(yaml_file)
39
39
 
@@ -45,7 +45,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
45
45
  yaml_file = Expressir.root_path.join("original", "examples", "syntax", "remark.yaml")
46
46
 
47
47
  repo = Expressir::ExpressExp::Parser.from_file(exp_file)
48
- result = YAML.dump(repo.to_hash(skip_empty: true))
48
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, skip_empty: true))
49
49
  # File.write(yaml_file, result)
50
50
  expected_result = File.read(yaml_file)
51
51
 
@@ -83,15 +83,15 @@ RSpec.describe Expressir::ExpressExp::Parser do
83
83
 
84
84
  schemas = repo.schemas
85
85
  expect(schemas.count).to eq(5)
86
- expect(schemas[0].file).to eq(exp_files[0])
86
+ expect(schemas[0].file).to eq(exp_files[0].to_s)
87
87
  expect(schemas[0].id).to eq("single_schema")
88
- expect(schemas[1].file).to eq(exp_files[1])
88
+ expect(schemas[1].file).to eq(exp_files[1].to_s)
89
89
  expect(schemas[1].id).to eq("multiple_schema1")
90
- expect(schemas[2].file).to eq(exp_files[1])
90
+ expect(schemas[2].file).to eq(exp_files[1].to_s)
91
91
  expect(schemas[2].id).to eq("multiple_schema2")
92
- expect(schemas[3].file).to eq(exp_files[1])
92
+ expect(schemas[3].file).to eq(exp_files[1].to_s)
93
93
  expect(schemas[3].id).to eq("multiple_schema3")
94
- expect(schemas[4].file).to eq(exp_files[1])
94
+ expect(schemas[4].file).to eq(exp_files[1].to_s)
95
95
  expect(schemas[4].id).to eq("multiple_schema4")
96
96
  end
97
97
  end
@@ -1,5 +1,8 @@
1
+
2
+ require "yaml"
1
3
  require "spec_helper"
2
4
  require "expressir/express_exp/parser"
5
+ require "expressir/express_exp/formatter"
3
6
 
4
7
  RSpec.describe Expressir::Model::ModelElement do
5
8
  describe ".to_hash" do
@@ -9,7 +12,7 @@ RSpec.describe Expressir::Model::ModelElement do
9
12
 
10
13
  repo = Expressir::ExpressExp::Parser.from_file(exp_file)
11
14
 
12
- result = YAML.dump(repo.to_hash(skip_empty: true, formatter: Expressir::ExpressExp::Formatter))
15
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, formatter: Expressir::ExpressExp::Formatter, skip_empty: true))
13
16
  # File.write(yaml_file, result)
14
17
  expected_result = File.read(yaml_file)
15
18
 
@@ -22,9 +25,9 @@ RSpec.describe Expressir::Model::ModelElement do
22
25
  yaml_file = Expressir.root_path.join("original", "examples", "syntax", "single.yaml")
23
26
 
24
27
  input = YAML.load(File.read(yaml_file))
25
- repo = Expressir::Model::ModelElement.from_hash(input)
28
+ repo = Expressir::Model::ModelElement.from_hash(input, root_path: Expressir.root_path)
26
29
 
27
- result = YAML.dump(repo.to_hash(skip_empty: true))
30
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, skip_empty: true))
28
31
  expected_result = File.read(yaml_file)
29
32
 
30
33
  expect(result).to eq(expected_result)
@@ -34,9 +37,9 @@ RSpec.describe Expressir::Model::ModelElement do
34
37
  yaml_file = Expressir.root_path.join("original", "examples", "syntax", "multiple.yaml")
35
38
 
36
39
  input = YAML.load(File.read(yaml_file))
37
- repo = Expressir::Model::ModelElement.from_hash(input)
40
+ repo = Expressir::Model::ModelElement.from_hash(input, root_path: Expressir.root_path)
38
41
 
39
- result = YAML.dump(repo.to_hash(skip_empty: true))
42
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, skip_empty: true))
40
43
  expected_result = File.read(yaml_file)
41
44
 
42
45
  expect(result).to eq(expected_result)
@@ -46,9 +49,9 @@ RSpec.describe Expressir::Model::ModelElement do
46
49
  yaml_file = Expressir.root_path.join("original", "examples", "syntax", "syntax.yaml")
47
50
 
48
51
  input = YAML.load(File.read(yaml_file))
49
- repo = Expressir::Model::ModelElement.from_hash(input)
52
+ repo = Expressir::Model::ModelElement.from_hash(input, root_path: Expressir.root_path)
50
53
 
51
- result = YAML.dump(repo.to_hash(skip_empty: true))
54
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, skip_empty: true))
52
55
  expected_result = File.read(yaml_file)
53
56
 
54
57
  expect(result).to eq(expected_result)
@@ -58,9 +61,9 @@ RSpec.describe Expressir::Model::ModelElement do
58
61
  yaml_file = Expressir.root_path.join("original", "examples", "syntax", "remark.yaml")
59
62
 
60
63
  input = YAML.load(File.read(yaml_file))
61
- repo = Expressir::Model::ModelElement.from_hash(input)
64
+ repo = Expressir::Model::ModelElement.from_hash(input, root_path: Expressir.root_path)
62
65
 
63
- result = YAML.dump(repo.to_hash(skip_empty: true))
66
+ result = YAML.dump(repo.to_hash(root_path: Expressir.root_path, skip_empty: true))
64
67
  expected_result = File.read(yaml_file)
65
68
 
66
69
  expect(result).to eq(expected_result)
@@ -79,8 +82,8 @@ RSpec.describe Expressir::Model::ModelElement do
79
82
  expect(repo.find('remark_schema.remark_type')).to be_instance_of(Expressir::Model::Type)
80
83
  expect(repo.find('remark_schema.remark_type.WR1')).to be_instance_of(Expressir::Model::Where)
81
84
  expect(repo.find('remark_schema.remark_type.wr:WR1')).to be_instance_of(Expressir::Model::Where)
82
- expect(repo.find('remark_schema.remark_type.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
83
- expect(repo.find('remark_schema.remark_type.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
85
+ expect(repo.find('remark_schema.remark_type.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
86
+ expect(repo.find('remark_schema.remark_type.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
84
87
  expect(repo.find('remark_schema.remark_enumeration_item')).to be_instance_of(Expressir::Model::EnumerationItem)
85
88
  expect(repo.find('remark_schema.remark_entity')).to be_instance_of(Expressir::Model::Entity)
86
89
  expect(repo.find('remark_schema.remark_entity.remark_attribute')).to be_instance_of(Expressir::Model::Attribute)
@@ -89,8 +92,8 @@ RSpec.describe Expressir::Model::ModelElement do
89
92
  expect(repo.find('remark_schema.remark_entity.UR1')).to be_instance_of(Expressir::Model::Unique)
90
93
  expect(repo.find('remark_schema.remark_entity.WR1')).to be_instance_of(Expressir::Model::Where)
91
94
  expect(repo.find('remark_schema.remark_entity.wr:WR1')).to be_instance_of(Expressir::Model::Where)
92
- expect(repo.find('remark_schema.remark_entity.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
93
- expect(repo.find('remark_schema.remark_entity.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
95
+ expect(repo.find('remark_schema.remark_entity.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
96
+ expect(repo.find('remark_schema.remark_entity.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
94
97
  expect(repo.find('remark_schema.remark_subtype_constraint')).to be_instance_of(Expressir::Model::SubtypeConstraint)
95
98
  expect(repo.find('remark_schema.remark_function')).to be_instance_of(Expressir::Model::Function)
96
99
  expect(repo.find('remark_schema.remark_function.remark_parameter')).to be_instance_of(Expressir::Model::Parameter)
@@ -111,8 +114,8 @@ RSpec.describe Expressir::Model::ModelElement do
111
114
  expect(repo.find('remark_schema.remark_rule.remark_variable')).to be_instance_of(Expressir::Model::Variable)
112
115
  expect(repo.find('remark_schema.remark_rule.WR1')).to be_instance_of(Expressir::Model::Where)
113
116
  expect(repo.find('remark_schema.remark_rule.wr:WR1')).to be_instance_of(Expressir::Model::Where)
114
- expect(repo.find('remark_schema.remark_rule.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
115
- expect(repo.find('remark_schema.remark_rule.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
117
+ expect(repo.find('remark_schema.remark_rule.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
118
+ expect(repo.find('remark_schema.remark_rule.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
116
119
 
117
120
  # schema scope
118
121
  schema = repo.schemas.first
@@ -120,8 +123,8 @@ RSpec.describe Expressir::Model::ModelElement do
120
123
  expect(schema.find('remark_type')).to be_instance_of(Expressir::Model::Type)
121
124
  expect(schema.find('remark_type.WR1')).to be_instance_of(Expressir::Model::Where)
122
125
  expect(schema.find('remark_type.wr:WR1')).to be_instance_of(Expressir::Model::Where)
123
- expect(schema.find('remark_type.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
124
- expect(schema.find('remark_type.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
126
+ expect(schema.find('remark_type.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
127
+ expect(schema.find('remark_type.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
125
128
  expect(schema.find('remark_enumeration_item')).to be_instance_of(Expressir::Model::EnumerationItem)
126
129
  expect(schema.find('remark_entity')).to be_instance_of(Expressir::Model::Entity)
127
130
  expect(schema.find('remark_entity.remark_attribute')).to be_instance_of(Expressir::Model::Attribute)
@@ -130,8 +133,8 @@ RSpec.describe Expressir::Model::ModelElement do
130
133
  expect(schema.find('remark_entity.UR1')).to be_instance_of(Expressir::Model::Unique)
131
134
  expect(schema.find('remark_entity.WR1')).to be_instance_of(Expressir::Model::Where)
132
135
  expect(schema.find('remark_entity.wr:WR1')).to be_instance_of(Expressir::Model::Where)
133
- expect(schema.find('remark_entity.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
134
- expect(schema.find('remark_entity.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
136
+ expect(schema.find('remark_entity.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
137
+ expect(schema.find('remark_entity.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
135
138
  expect(schema.find('remark_subtype_constraint')).to be_instance_of(Expressir::Model::SubtypeConstraint)
136
139
  expect(schema.find('remark_function')).to be_instance_of(Expressir::Model::Function)
137
140
  expect(schema.find('remark_function.remark_parameter')).to be_instance_of(Expressir::Model::Parameter)
@@ -152,15 +155,15 @@ RSpec.describe Expressir::Model::ModelElement do
152
155
  expect(schema.find('remark_rule.remark_variable')).to be_instance_of(Expressir::Model::Variable)
153
156
  expect(schema.find('remark_rule.WR1')).to be_instance_of(Expressir::Model::Where)
154
157
  expect(schema.find('remark_rule.wr:WR1')).to be_instance_of(Expressir::Model::Where)
155
- expect(schema.find('remark_rule.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
156
- expect(schema.find('remark_rule.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
158
+ expect(schema.find('remark_rule.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
159
+ expect(schema.find('remark_rule.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
157
160
 
158
161
  # type scope
159
162
  type = schema.types.first
160
163
  expect(type.find('WR1')).to be_instance_of(Expressir::Model::Where)
161
164
  expect(type.find('wr:WR1')).to be_instance_of(Expressir::Model::Where)
162
- expect(type.find('IP1')).to be_instance_of(Expressir::Model::InformalProposition)
163
- expect(type.find('ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
165
+ expect(type.find('IP1')).to be_instance_of(Expressir::Model::RemarkItem)
166
+ expect(type.find('ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
164
167
 
165
168
  # entity scope
166
169
  entity = schema.entities.first
@@ -170,8 +173,8 @@ RSpec.describe Expressir::Model::ModelElement do
170
173
  expect(entity.find('UR1')).to be_instance_of(Expressir::Model::Unique)
171
174
  expect(entity.find('WR1')).to be_instance_of(Expressir::Model::Where)
172
175
  expect(entity.find('wr:WR1')).to be_instance_of(Expressir::Model::Where)
173
- expect(entity.find('IP1')).to be_instance_of(Expressir::Model::InformalProposition)
174
- expect(entity.find('ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
176
+ expect(entity.find('IP1')).to be_instance_of(Expressir::Model::RemarkItem)
177
+ expect(entity.find('ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
175
178
 
176
179
  # function scope
177
180
  function = schema.functions.first
@@ -197,15 +200,15 @@ RSpec.describe Expressir::Model::ModelElement do
197
200
  expect(rule.find('remark_variable')).to be_instance_of(Expressir::Model::Variable)
198
201
  expect(rule.find('WR1')).to be_instance_of(Expressir::Model::Where)
199
202
  expect(rule.find('wr:WR1')).to be_instance_of(Expressir::Model::Where)
200
- expect(rule.find('IP1')).to be_instance_of(Expressir::Model::InformalProposition)
201
- expect(rule.find('ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
203
+ expect(rule.find('IP1')).to be_instance_of(Expressir::Model::RemarkItem)
204
+ expect(rule.find('ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
202
205
 
203
206
  # retry search in parent scope
204
207
  expect(entity.find('remark_type')).to be_instance_of(Expressir::Model::Type)
205
208
  expect(entity.find('remark_type.WR1')).to be_instance_of(Expressir::Model::Where)
206
209
  expect(entity.find('remark_type.wr:WR1')).to be_instance_of(Expressir::Model::Where)
207
- expect(entity.find('remark_type.IP1')).to be_instance_of(Expressir::Model::InformalProposition)
208
- expect(entity.find('remark_type.ip:IP1')).to be_instance_of(Expressir::Model::InformalProposition)
210
+ expect(entity.find('remark_type.IP1')).to be_instance_of(Expressir::Model::RemarkItem)
211
+ expect(entity.find('remark_type.ip:IP1')).to be_instance_of(Expressir::Model::RemarkItem)
209
212
  end
210
213
  end
211
214
  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.17
4
+ version: 0.2.25
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-09 00:00:00.000000000 Z
11
+ date: 2021-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -568,14 +568,18 @@ files:
568
568
  - lib/expressir/express/type_select.rb
569
569
  - lib/expressir/express/unique_rule.rb
570
570
  - lib/expressir/express/where_rule.rb
571
+ - lib/expressir/express_exp/cache.rb
571
572
  - lib/expressir/express_exp/formatter.rb
572
573
  - lib/expressir/express_exp/hyperlink_formatter.rb
574
+ - lib/expressir/express_exp/model_visitor.rb
573
575
  - lib/expressir/express_exp/parser.rb
576
+ - lib/expressir/express_exp/resolve_references_model_visitor.rb
574
577
  - lib/expressir/express_exp/schema_head_formatter.rb
575
578
  - lib/expressir/express_exp/visitor.rb
576
579
  - lib/expressir/express_parser.rb
577
580
  - lib/expressir/model.rb
578
581
  - lib/expressir/model/attribute.rb
582
+ - lib/expressir/model/cache.rb
579
583
  - lib/expressir/model/constant.rb
580
584
  - lib/expressir/model/entity.rb
581
585
  - lib/expressir/model/enumeration_item.rb
@@ -593,7 +597,6 @@ files:
593
597
  - lib/expressir/model/expressions/unary_expression.rb
594
598
  - lib/expressir/model/function.rb
595
599
  - lib/expressir/model/identifier.rb
596
- - lib/expressir/model/informal_proposition.rb
597
600
  - lib/expressir/model/interface.rb
598
601
  - lib/expressir/model/interface_item.rb
599
602
  - lib/expressir/model/interfaced_item.rb
@@ -605,6 +608,7 @@ files:
605
608
  - lib/expressir/model/model_element.rb
606
609
  - lib/expressir/model/parameter.rb
607
610
  - lib/expressir/model/procedure.rb
611
+ - lib/expressir/model/remark_item.rb
608
612
  - lib/expressir/model/repository.rb
609
613
  - lib/expressir/model/rule.rb
610
614
  - lib/expressir/model/schema.rb
@@ -688,6 +692,7 @@ files:
688
692
  - original/examples/syntax/syntax.exp
689
693
  - original/examples/syntax/syntax.yaml
690
694
  - original/examples/syntax/syntax_formatted.exp
695
+ - original/examples/syntax/syntax_hyperlink_formatted.exp
691
696
  - original/examples/syntax/syntax_schema_head_formatted.exp
692
697
  - original/exp2ruby.rb
693
698
  - original/expsm.rb
@@ -700,6 +705,7 @@ files:
700
705
  - spec/acceptance/express_to_owl_spec.rb
701
706
  - spec/acceptance/version_spec.rb
702
707
  - spec/expressir/express/repository_spec.rb
708
+ - spec/expressir/express_exp/cache_spec.rb
703
709
  - spec/expressir/express_exp/formatter_spec.rb
704
710
  - spec/expressir/express_exp/parser_spec.rb
705
711
  - spec/expressir/model/model_element_spec.rb