expressir 0.2.16-x86-linux → 0.2.17-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/exe/format +51 -13
  3. data/lib/expressir/express_exp/formatter.rb +185 -135
  4. data/lib/expressir/express_exp/parser.rb +29 -29
  5. data/lib/expressir/express_exp/schema_head_formatter.rb +1 -4
  6. data/lib/expressir/express_exp/visitor.rb +11 -6
  7. data/lib/expressir/model/entity.rb +6 -6
  8. data/lib/expressir/model/expressions/query_expression.rb +3 -3
  9. data/lib/expressir/model/function.rb +15 -11
  10. data/lib/expressir/model/informal_proposition.rb +4 -1
  11. data/lib/expressir/model/interfaced_item.rb +4 -1
  12. data/lib/expressir/model/model_element.rb +20 -7
  13. data/lib/expressir/model/procedure.rb +15 -11
  14. data/lib/expressir/model/repository.rb +3 -3
  15. data/lib/expressir/model/rule.rb +16 -12
  16. data/lib/expressir/model/schema.rb +52 -45
  17. data/lib/expressir/model/statements/alias.rb +3 -3
  18. data/lib/expressir/model/statements/repeat.rb +3 -3
  19. data/lib/expressir/model/subtype_constraint.rb +1 -6
  20. data/lib/expressir/model/type.rb +9 -5
  21. data/lib/expressir/version.rb +1 -1
  22. data/original/examples/syntax/{hyperlink.exp → multiple.exp} +8 -8
  23. data/original/examples/syntax/multiple.yaml +180 -0
  24. data/original/examples/syntax/multiple_formatted.exp +71 -0
  25. data/original/examples/syntax/multiple_hyperlink_formatted.exp +71 -0
  26. data/original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp +13 -0
  27. data/original/examples/syntax/remark.exp +41 -41
  28. data/original/examples/syntax/remark.yaml +445 -0
  29. data/original/examples/syntax/remark_formatted.exp +62 -50
  30. data/original/examples/syntax/{simple.exp → single.exp} +1 -1
  31. data/original/examples/syntax/single.yaml +8 -0
  32. data/original/examples/syntax/single_formatted.exp +6 -0
  33. data/original/examples/syntax/single_formatted.yaml +18 -0
  34. data/original/examples/syntax/syntax.exp +29 -19
  35. data/original/examples/syntax/syntax.yaml +3438 -0
  36. data/original/examples/syntax/syntax_formatted.exp +271 -131
  37. data/original/examples/syntax/syntax_schema_head_formatted.exp +18 -0
  38. data/spec/expressir/express_exp/formatter_spec.rb +110 -0
  39. data/spec/expressir/express_exp/parser_spec.rb +98 -0
  40. data/spec/expressir/model/{model_element/find_spec.rb → model_element_spec.rb} +93 -10
  41. metadata +17 -16
  42. data/original/examples/syntax/hyperlink_formatted.exp +0 -51
  43. data/original/examples/syntax/source.exp +0 -16
  44. data/spec/expressir/express_exp/formatter/remark_spec.rb +0 -28
  45. data/spec/expressir/express_exp/formatter/syntax_spec.rb +0 -28
  46. data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +0 -28
  47. data/spec/expressir/express_exp/parser/multiple_spec.rb +0 -37
  48. data/spec/expressir/express_exp/parser/remark_spec.rb +0 -411
  49. data/spec/expressir/express_exp/parser/source_spec.rb +0 -29
  50. data/spec/expressir/express_exp/parser/syntax_spec.rb +0 -3086
  51. data/spec/expressir/express_exp/schema_head_formatter_spec.rb +0 -40
  52. data/spec/expressir/model/model_element/hash_spec.rb +0 -66
@@ -1,40 +0,0 @@
1
- require "spec_helper"
2
- require "expressir/express_exp/parser"
3
- require "expressir/express_exp/formatter"
4
- require "expressir/express_exp/schema_head_formatter"
5
-
6
- RSpec.describe Expressir::ExpressExp::SchemaHeadFormatter do
7
- describe ".format" do
8
- it "formats schema head" do
9
- repo = Expressir::ExpressExp::Parser.from_file(sample_file)
10
-
11
- class CustomFormatter < Expressir::ExpressExp::Formatter
12
- include Expressir::ExpressExp::SchemaHeadFormatter
13
- end
14
- result = CustomFormatter.format(repo)
15
-
16
- expect(result).to eq(<<~EXP.strip
17
- SCHEMA syntax_schema 'version';
18
- USE FROM contract_schema;
19
- USE FROM contract_schema
20
- (contract);
21
- USE FROM contract_schema
22
- (contract, contract2);
23
- USE FROM contract_schema
24
- (contract AS contract2);
25
- REFERENCE FROM contract_schema;
26
- REFERENCE FROM contract_schema
27
- (contract);
28
- REFERENCE FROM contract_schema
29
- (contract, contract2);
30
- REFERENCE FROM contract_schema
31
- (contract AS contract2);
32
- EXP
33
- )
34
- end
35
- end
36
-
37
- def sample_file
38
- @sample_file ||= Expressir.root_path.join("original", "examples", "syntax", "syntax.exp")
39
- end
40
- end
@@ -1,66 +0,0 @@
1
- require "spec_helper"
2
- require "expressir/express_exp/parser"
3
- require "expressir/express_exp/formatter"
4
-
5
- RSpec.describe Expressir::Model::ModelElement do
6
- describe ".from_hash" do
7
- it "parses an object from a hash" do
8
- input = {
9
- "_class" => "Expressir::Model::Repository",
10
- "schemas" => [{
11
- "_class" => "Expressir::Model::Schema",
12
- "id" => "simple_schema",
13
- "entities" => [{
14
- "_class" => "Expressir::Model::Entity",
15
- "id" => "empty_entity"
16
- }]
17
- }]
18
- }
19
-
20
- repo = Expressir::Model::ModelElement.from_hash(input)
21
-
22
- expect(repo).to be_instance_of(Expressir::Model::Repository)
23
- expect(repo.schemas).to be_instance_of(Array)
24
- expect(repo.schemas.count).to eq(1)
25
- expect(repo.schemas.first).to be_instance_of(Expressir::Model::Schema)
26
- expect(repo.schemas.first.id).to eq("simple_schema")
27
- expect(repo.schemas.first.entities).to be_instance_of(Array)
28
- expect(repo.schemas.first.entities.count).to eq(1)
29
- expect(repo.schemas.first.entities.first).to be_instance_of(Expressir::Model::Entity)
30
- expect(repo.schemas.first.entities.first.id).to eq("empty_entity")
31
- end
32
- end
33
-
34
- describe ".to_hash" do
35
- it "exports an object to a hash" do
36
- repo = Expressir::ExpressExp::Parser.from_file(sample_file)
37
-
38
- class CustomFormatter < Expressir::ExpressExp::Formatter
39
- def format_schema(node)
40
- "Oook."
41
- end
42
- end
43
- result = repo.to_hash(formatter: CustomFormatter)
44
-
45
- expect(result).to be_instance_of(Hash)
46
- expect(result["_class"]).to eq("Expressir::Model::Repository")
47
- expect(result["schemas"]).to be_instance_of(Array)
48
- expect(result["schemas"].count).to eq(1)
49
- expect(result["schemas"].first).to be_instance_of(Hash)
50
- expect(result["schemas"].first["_class"]).to eq("Expressir::Model::Schema")
51
- expect(result["schemas"].first["id"]).to eq("simple_schema")
52
- expect(result["schemas"].first["entities"]).to be_instance_of(Array)
53
- expect(result["schemas"].first["entities"].count).to eq(1)
54
- expect(result["schemas"].first["entities"].first).to be_instance_of(Hash)
55
- expect(result["schemas"].first["entities"].first["_class"]).to eq("Expressir::Model::Entity")
56
- expect(result["schemas"].first["entities"].first["id"]).to eq("empty_entity")
57
- expect(result["schemas"].first["source"]).to eq("Oook.")
58
- end
59
- end
60
-
61
- def sample_file
62
- @sample_file ||= Expressir.root_path.join(
63
- "original", "examples", "syntax", "simple.exp"
64
- )
65
- end
66
- end