expressir 0.2.17 → 0.2.25

Sign up to get free protection for your applications and to get access to all the features.
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