expressir 2.1.29 → 2.1.31

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 (111) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +98 -0
  3. data/.github/workflows/links.yml +100 -0
  4. data/.github/workflows/rake.yml +4 -0
  5. data/.github/workflows/release.yml +5 -0
  6. data/.github/workflows/validate_schemas.yml +1 -1
  7. data/.gitignore +3 -0
  8. data/.rubocop.yml +1 -1
  9. data/.rubocop_todo.yml +209 -55
  10. data/Gemfile +2 -1
  11. data/README.adoc +650 -83
  12. data/docs/Gemfile +12 -0
  13. data/docs/_config.yml +141 -0
  14. data/docs/_guides/changes/changes-format.adoc +778 -0
  15. data/docs/_guides/changes/importing-eengine.adoc +898 -0
  16. data/docs/_guides/changes/index.adoc +396 -0
  17. data/docs/_guides/changes/programmatic-usage.adoc +1038 -0
  18. data/docs/_guides/changes/validating-changes.adoc +681 -0
  19. data/docs/_guides/cli/benchmark-performance.adoc +834 -0
  20. data/docs/_guides/cli/coverage-analysis.adoc +921 -0
  21. data/docs/_guides/cli/format-schemas.adoc +547 -0
  22. data/docs/_guides/cli/index.adoc +8 -0
  23. data/docs/_guides/cli/managing-changes.adoc +927 -0
  24. data/docs/_guides/cli/validate-ascii.adoc +645 -0
  25. data/docs/_guides/cli/validate-schemas.adoc +534 -0
  26. data/docs/_guides/index.adoc +165 -0
  27. data/docs/_guides/ler/creating-packages.adoc +664 -0
  28. data/docs/_guides/ler/index.adoc +305 -0
  29. data/docs/_guides/ler/loading-packages.adoc +707 -0
  30. data/docs/_guides/ler/package-formats.adoc +748 -0
  31. data/docs/_guides/ler/querying-packages.adoc +826 -0
  32. data/docs/_guides/ler/validating-packages.adoc +750 -0
  33. data/docs/_guides/liquid/basic-templates.adoc +813 -0
  34. data/docs/_guides/liquid/documentation-generation.adoc +1042 -0
  35. data/docs/_guides/liquid/drops-reference.adoc +829 -0
  36. data/docs/_guides/liquid/filters-and-tags.adoc +912 -0
  37. data/docs/_guides/liquid/index.adoc +468 -0
  38. data/docs/_guides/manifests/creating-manifests.adoc +483 -0
  39. data/docs/_guides/manifests/index.adoc +307 -0
  40. data/docs/_guides/manifests/resolving-manifests.adoc +557 -0
  41. data/docs/_guides/manifests/validating-manifests.adoc +713 -0
  42. data/docs/_guides/ruby-api/formatting-schemas.adoc +605 -0
  43. data/docs/_guides/ruby-api/index.adoc +257 -0
  44. data/docs/_guides/ruby-api/parsing-files.adoc +421 -0
  45. data/docs/_guides/ruby-api/search-engine.adoc +609 -0
  46. data/docs/_guides/ruby-api/working-with-repository.adoc +577 -0
  47. data/docs/_pages/data-model.adoc +665 -0
  48. data/docs/_pages/express-language.adoc +506 -0
  49. data/docs/_pages/getting-started.adoc +414 -0
  50. data/docs/_pages/index.adoc +116 -0
  51. data/docs/_pages/introduction.adoc +256 -0
  52. data/docs/_pages/ler-packages.adoc +837 -0
  53. data/docs/_pages/parsers.adoc +683 -0
  54. data/docs/_pages/schema-manifests.adoc +431 -0
  55. data/docs/_references/index.adoc +228 -0
  56. data/docs/_tutorials/creating-ler-package.adoc +735 -0
  57. data/docs/_tutorials/documentation-coverage.adoc +795 -0
  58. data/docs/_tutorials/index.adoc +221 -0
  59. data/docs/_tutorials/liquid-templates.adoc +806 -0
  60. data/docs/_tutorials/parsing-your-first-schema.adoc +522 -0
  61. data/docs/_tutorials/querying-schemas.adoc +751 -0
  62. data/docs/_tutorials/working-with-multiple-schemas.adoc +676 -0
  63. data/docs/index.adoc +242 -0
  64. data/docs/lychee.toml +84 -0
  65. data/examples/demo_ler_usage.sh +86 -0
  66. data/examples/ler/README.md +111 -0
  67. data/examples/ler/simple_example.ler +0 -0
  68. data/examples/ler/simple_schema.exp +33 -0
  69. data/examples/ler_build.rb +75 -0
  70. data/examples/ler_cli.rb +79 -0
  71. data/examples/ler_demo_complete.rb +276 -0
  72. data/examples/ler_query.rb +91 -0
  73. data/examples/ler_query_examples.rb +305 -0
  74. data/examples/ler_stats.rb +81 -0
  75. data/examples/phase3_demo.rb +159 -0
  76. data/examples/query_demo_simple.rb +131 -0
  77. data/expressir.gemspec +2 -0
  78. data/lib/expressir/changes/schema_change.rb +32 -22
  79. data/lib/expressir/changes/{edition_change.rb → version_change.rb} +3 -3
  80. data/lib/expressir/cli.rb +12 -4
  81. data/lib/expressir/commands/changes_import_eengine.rb +2 -2
  82. data/lib/expressir/commands/changes_validate.rb +1 -1
  83. data/lib/expressir/commands/manifest.rb +427 -0
  84. data/lib/expressir/commands/package.rb +1274 -0
  85. data/lib/expressir/commands/validate.rb +70 -37
  86. data/lib/expressir/commands/validate_ascii.rb +607 -0
  87. data/lib/expressir/commands/validate_load.rb +88 -0
  88. data/lib/expressir/express/formatter.rb +5 -1
  89. data/lib/expressir/express/formatters/remark_item_formatter.rb +25 -0
  90. data/lib/expressir/express/parser.rb +33 -0
  91. data/lib/expressir/manifest/resolver.rb +213 -0
  92. data/lib/expressir/manifest/validator.rb +195 -0
  93. data/lib/expressir/model/declarations/entity.rb +6 -0
  94. data/lib/expressir/model/dependency_resolver.rb +270 -0
  95. data/lib/expressir/model/indexes/entity_index.rb +103 -0
  96. data/lib/expressir/model/indexes/reference_index.rb +148 -0
  97. data/lib/expressir/model/indexes/type_index.rb +149 -0
  98. data/lib/expressir/model/interface_validator.rb +384 -0
  99. data/lib/expressir/model/repository.rb +400 -5
  100. data/lib/expressir/model/repository_validator.rb +295 -0
  101. data/lib/expressir/model/search_engine.rb +525 -0
  102. data/lib/expressir/model.rb +4 -94
  103. data/lib/expressir/package/builder.rb +200 -0
  104. data/lib/expressir/package/metadata.rb +81 -0
  105. data/lib/expressir/package/reader.rb +165 -0
  106. data/lib/expressir/schema_manifest.rb +11 -1
  107. data/lib/expressir/version.rb +1 -1
  108. data/lib/expressir.rb +16 -3
  109. metadata +115 -5
  110. data/docs/benchmarking.adoc +0 -107
  111. data/docs/liquid_drops.adoc +0 -1547
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fbc607242e5dfe5db0276c14d37cdc1d38fc07e4f0014134b20105e443a3b96c
4
- data.tar.gz: 32ba2fe11da1f6439b7a97e30215df127aa6826ae6199f205fa4376c7624a4d2
3
+ metadata.gz: 86dddb255000efd588dcc03ff9becca7ca18c266ca9e6a8bd65d1c2ad3579a74
4
+ data.tar.gz: 328796caedfd26153efb05991dae70f174462d9a57a8dbcd4501545e7547b8e1
5
5
  SHA512:
6
- metadata.gz: 06e09081cbb49ef2d4656e8f9104c830edf8fc0427ffbcef0f6fa686884468e561370656d74b3c0f893b1786e0e9d4d4d8f335d297e9e3ddb8211d9bc26bbfd1
7
- data.tar.gz: 15350b06e45e272b7b7dbaee29c5030b794e67a30544344bf534ec2b86c89998fcb1123c1352201d4d41f217f8e11c3054f5e0ef3f94fccb96b3daa42aacda82
6
+ metadata.gz: 3333dfed5188687a946318cb8974fa686e5d1ae3bab39f4de5d17812b4087ab136fc4e5e59c71a2f8b9e01f676c7e82ac9f459140515a4c15eef25e22d179635
7
+ data.tar.gz: 374435ed70320043ec24488bc5d9cbe5e65c7faaba55b75db2382c18a1d8579bdc463a8c769fcbac435b6411c2a2023af3b87aa400f34d64911f0ba4de6ed68f
@@ -0,0 +1,98 @@
1
+ name: Deploy Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ paths:
7
+ - 'docs/**'
8
+ - '.github/workflows/docs.yml'
9
+ pull_request:
10
+ branches: [main, master]
11
+ paths:
12
+ - 'docs/**'
13
+ workflow_dispatch:
14
+
15
+ # Allow only one concurrent deployment
16
+ concurrency:
17
+ group: "pages"
18
+ cancel-in-progress: true
19
+
20
+ jobs:
21
+ build:
22
+ runs-on: ubuntu-latest
23
+
24
+ steps:
25
+ - name: Checkout repository
26
+ uses: actions/checkout@v4
27
+
28
+ - name: Setup Ruby
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: '3.2'
32
+ bundler-cache: false
33
+ working-directory: docs
34
+
35
+ - name: Cache gems
36
+ uses: actions/cache@v4
37
+ with:
38
+ path: docs/vendor/bundle
39
+ key: ${{ runner.os }}-gems-${{ hashFiles('docs/Gemfile.lock') }}
40
+ restore-keys: |
41
+ ${{ runner.os }}-gems-
42
+
43
+ - name: Install dependencies
44
+ working-directory: docs
45
+ run: |
46
+ bundle config path vendor/bundle
47
+ bundle install --jobs 4 --retry 3
48
+
49
+ - name: Build Jekyll site
50
+ working-directory: docs
51
+ run: bundle exec jekyll build --trace
52
+ env:
53
+ JEKYLL_ENV: production
54
+
55
+ - name: Test built site
56
+ working-directory: docs
57
+ run: |
58
+ if [ ! -f "_site/index.html" ]; then
59
+ echo "Error: index.html not found in _site/"
60
+ exit 1
61
+ fi
62
+ echo "Site built successfully"
63
+ echo "Site contains $(find _site -type f | wc -l) files"
64
+
65
+ - name: Upload artifact
66
+ uses: actions/upload-pages-artifact@v3
67
+ with:
68
+ path: docs/_site
69
+
70
+ deploy:
71
+ # Only deploy on push to main/master, not on PRs
72
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
73
+
74
+ needs: build
75
+
76
+ permissions:
77
+ pages: write
78
+ id-token: write
79
+
80
+ environment:
81
+ name: github-pages
82
+ url: ${{ steps.deployment.outputs.page_url }}
83
+
84
+ runs-on: ubuntu-latest
85
+
86
+ steps:
87
+ - name: Deploy to GitHub Pages
88
+ id: deployment
89
+ uses: actions/deploy-pages@v4
90
+
91
+ - name: Comment on commit
92
+ if: success()
93
+ uses: peter-evans/commit-comment@v3
94
+ with:
95
+ body: |
96
+ :white_check_mark: Documentation deployed successfully!
97
+
98
+ View at: ${{ steps.deployment.outputs.page_url }}
@@ -0,0 +1,100 @@
1
+ name: Check Links
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ paths:
7
+ - 'docs/**'
8
+ - '.github/workflows/links.yml'
9
+ - 'lychee.toml'
10
+ pull_request:
11
+ branches: [main, master]
12
+ paths:
13
+ - 'docs/**'
14
+ schedule:
15
+ # Run weekly on Monday at 9:00 UTC
16
+ - cron: '0 9 * * 1'
17
+ workflow_dispatch:
18
+
19
+ jobs:
20
+ link-check:
21
+ runs-on: ubuntu-latest
22
+
23
+ steps:
24
+ - name: Checkout repository
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Setup Ruby
28
+ uses: ruby/setup-ruby@v1
29
+ with:
30
+ ruby-version: '3.2'
31
+ bundler-cache: false
32
+ working-directory: docs
33
+
34
+ - name: Cache gems
35
+ uses: actions/cache@v4
36
+ with:
37
+ path: docs/vendor/bundle
38
+ key: ${{ runner.os }}-gems-${{ hashFiles('docs/Gemfile.lock') }}
39
+ restore-keys: |
40
+ ${{ runner.os }}-gems-
41
+
42
+ - name: Install dependencies
43
+ working-directory: docs
44
+ run: |
45
+ bundle config path vendor/bundle
46
+ bundle install --jobs 4 --retry 3
47
+
48
+ - name: Build Jekyll site
49
+ working-directory: docs
50
+ run: bundle exec jekyll build --trace
51
+ env:
52
+ JEKYLL_ENV: production
53
+
54
+ - name: Check links with lychee
55
+ uses: lycheeverse/lychee-action@v1
56
+ with:
57
+ args: |
58
+ --config docs/lychee.toml
59
+ --verbose
60
+ --no-progress
61
+ --format markdown
62
+ 'docs/_site/**/*.html'
63
+ fail: true
64
+ output: link-check-report.md
65
+
66
+ - name: Upload link check report
67
+ if: always()
68
+ uses: actions/upload-artifact@v4
69
+ with:
70
+ name: link-check-report
71
+ path: link-check-report.md
72
+ retention-days: 30
73
+
74
+ - name: Comment on PR with results
75
+ if: failure() && github.event_name == 'pull_request'
76
+ uses: marocchino/sticky-pull-request-comment@v2
77
+ with:
78
+ header: link-check
79
+ path: link-check-report.md
80
+
81
+ - name: Create issue for broken links
82
+ if: failure() && github.event_name == 'schedule'
83
+ uses: peter-evans/create-issue-from-file@v5
84
+ with:
85
+ title: Broken links detected in documentation
86
+ content-filepath: link-check-report.md
87
+ labels: |
88
+ documentation
89
+ bug
90
+ automated
91
+
92
+ - name: Summary
93
+ if: always()
94
+ run: |
95
+ echo "## Link Check Results" >> $GITHUB_STEP_SUMMARY
96
+ if [ -f "link-check-report.md" ]; then
97
+ cat link-check-report.md >> $GITHUB_STEP_SUMMARY
98
+ else
99
+ echo "No broken links found! :white_check_mark:" >> $GITHUB_STEP_SUMMARY
100
+ fi
@@ -2,6 +2,10 @@
2
2
  # See https://github.com/metanorma/cimas
3
3
  name: rake
4
4
 
5
+ permissions:
6
+ contents: read
7
+ pull-requests: write
8
+
5
9
  on:
6
10
  push:
7
11
  branches: [ master, main ]
@@ -1,5 +1,10 @@
1
1
  name: release
2
2
 
3
+ permissions:
4
+ contents: write
5
+ packages: write
6
+ pull-requests: write
7
+
3
8
  on:
4
9
  workflow_dispatch:
5
10
  inputs:
@@ -44,5 +44,5 @@ jobs:
44
44
 
45
45
  - name: Validate schemas ${{ matrix.test-group }}
46
46
  run: |
47
- yq '.schemas[].path | sub("schemas", "iso-10303/schemas")' ${{ matrix.test-group }} | xargs bundle exec ./exe/expressir validate
47
+ yq '.schemas[].path | sub("schemas", "iso-10303/schemas")' ${{ matrix.test-group }} | xargs bundle exec ./exe/expressir validate load
48
48
 
data/.gitignore CHANGED
@@ -21,3 +21,6 @@
21
21
 
22
22
  # rubocop guide
23
23
  .rubocop-https---*
24
+ _site/
25
+
26
+ Gemfile.lock
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  inherit_from:
2
- - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
2
+ - https://raw.githubusercontent.com/riboseinc/oss-guides/main/ci/rubocop.yml
3
3
  - .rubocop_todo.yml
4
4
 
5
5
  plugins:
data/.rubocop_todo.yml CHANGED
@@ -1,62 +1,86 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2025-10-15 09:12:23 UTC using RuboCop version 1.81.1.
3
+ # on 2025-12-11 03:37:20 UTC using RuboCop version 1.81.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 3
9
+ # Offense count: 2
10
10
  # This cop supports safe autocorrection (--autocorrect).
11
11
  # Configuration parameters: EnforcedStyle, IndentationWidth.
12
12
  # SupportedStyles: with_first_argument, with_fixed_indentation
13
13
  Layout/ArgumentAlignment:
14
14
  Exclude:
15
- - 'lib/expressir/commands/changes_import_eengine.rb'
15
+ - 'lib/expressir/commands/validate.rb'
16
16
 
17
- # Offense count: 4
17
+ # Offense count: 1
18
18
  # This cop supports safe autocorrection (--autocorrect).
19
19
  # Configuration parameters: EnforcedStyleAlignWith.
20
20
  # SupportedStylesAlignWith: either, start_of_block, start_of_line
21
21
  Layout/BlockAlignment:
22
22
  Exclude:
23
- - 'lib/expressir/commands/changes_import_eengine.rb'
24
- - 'spec/expressir/commands/changes_import_eengine_spec.rb'
23
+ - 'lib/expressir/commands/validate_ascii.rb'
25
24
 
26
- # Offense count: 4
25
+ # Offense count: 1
27
26
  # This cop supports safe autocorrection (--autocorrect).
28
27
  Layout/BlockEndNewline:
29
28
  Exclude:
30
- - 'lib/expressir/commands/changes_import_eengine.rb'
31
- - 'spec/expressir/commands/changes_import_eengine_spec.rb'
29
+ - 'lib/expressir/commands/validate_ascii.rb'
32
30
 
33
- # Offense count: 8
31
+ # Offense count: 2
34
32
  # This cop supports safe autocorrection (--autocorrect).
35
33
  # Configuration parameters: Width, AllowedPatterns.
36
34
  Layout/IndentationWidth:
37
35
  Exclude:
38
- - 'lib/expressir/commands/changes_import_eengine.rb'
39
- - 'spec/expressir/commands/changes_import_eengine_spec.rb'
36
+ - 'lib/expressir/commands/validate_ascii.rb'
40
37
 
41
- # Offense count: 569
38
+ # Offense count: 881
42
39
  # This cop supports safe autocorrection (--autocorrect).
43
40
  # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
44
41
  # URISchemes: http, https
45
42
  Layout/LineLength:
46
43
  Enabled: false
47
44
 
48
- # Offense count: 3
45
+ # Offense count: 1
46
+ # This cop supports safe autocorrection (--autocorrect).
47
+ # Configuration parameters: EnforcedStyle.
48
+ # SupportedStyles: final_newline, final_blank_line
49
+ Layout/TrailingEmptyLines:
50
+ Exclude:
51
+ - 'lib/expressir/commands/validate_load.rb'
52
+
53
+ # Offense count: 2
49
54
  # This cop supports safe autocorrection (--autocorrect).
50
55
  # Configuration parameters: AllowInHeredoc.
51
56
  Layout/TrailingWhitespace:
52
57
  Exclude:
53
- - 'lib/expressir/commands/changes_import_eengine.rb'
58
+ - 'lib/expressir/commands/validate.rb'
54
59
 
55
- # Offense count: 1
60
+ # Offense count: 3
56
61
  # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
57
62
  Lint/DuplicateBranch:
58
63
  Exclude:
64
+ - 'lib/expressir/commands/package.rb'
59
65
  - 'lib/expressir/coverage.rb'
66
+ - 'lib/expressir/model/search_engine.rb'
67
+
68
+ # Offense count: 1
69
+ Lint/DuplicateCaseCondition:
70
+ Exclude:
71
+ - 'lib/expressir/commands/package.rb'
72
+
73
+ # Offense count: 1
74
+ Lint/DuplicateMethods:
75
+ Exclude:
76
+ - 'lib/expressir/commands/validate_ascii.rb'
77
+
78
+ # Offense count: 2
79
+ # Configuration parameters: AllowedPatterns.
80
+ # AllowedPatterns: (?-mix:(exactly|at_least|at_most)\(\d+\)\.times)
81
+ Lint/UnreachableLoop:
82
+ Exclude:
83
+ - 'lib/expressir/model/dependency_resolver.rb'
60
84
 
61
85
  # Offense count: 2
62
86
  # This cop supports safe autocorrection (--autocorrect).
@@ -67,54 +91,58 @@ Lint/UnusedMethodArgument:
67
91
  - 'lib/expressir/express/cache.rb'
68
92
  - 'lib/expressir/express/parser.rb'
69
93
 
70
- # Offense count: 83
94
+ # Offense count: 175
71
95
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
72
96
  Metrics/AbcSize:
73
97
  Enabled: false
74
98
 
75
- # Offense count: 1
99
+ # Offense count: 5
76
100
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
77
101
  # AllowedMethods: refine
78
102
  Metrics/BlockLength:
79
103
  Max: 46
80
104
 
81
- # Offense count: 61
105
+ # Offense count: 1
106
+ # Configuration parameters: CountBlocks, CountModifierForms.
107
+ Metrics/BlockNesting:
108
+ Max: 4
109
+
110
+ # Offense count: 120
82
111
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
83
112
  Metrics/CyclomaticComplexity:
84
- Exclude:
85
- - 'lib/expressir/benchmark.rb'
86
- - 'lib/expressir/changes/schema_change.rb'
87
- - 'lib/expressir/commands/changes_import_eengine.rb'
88
- - 'lib/expressir/commands/changes_validate.rb'
89
- - 'lib/expressir/commands/coverage.rb'
90
- - 'lib/expressir/coverage.rb'
91
- - 'lib/expressir/express/formatter.rb'
92
- - 'lib/expressir/express/model_visitor.rb'
93
- - 'lib/expressir/express/parser.rb'
94
- - 'lib/expressir/express/visitor.rb'
95
- - 'lib/expressir/model/declarations/schema.rb'
96
- - 'lib/expressir/model/model_element.rb'
97
- - 'spec/support/model_element_helper.rb'
113
+ Enabled: false
98
114
 
99
- # Offense count: 113
115
+ # Offense count: 230
100
116
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
101
117
  Metrics/MethodLength:
102
- Max: 106
118
+ Max: 193
103
119
 
104
- # Offense count: 48
120
+ # Offense count: 6
121
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
122
+ Metrics/ParameterLists:
123
+ Max: 8
124
+
125
+ # Offense count: 97
105
126
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
106
127
  Metrics/PerceivedComplexity:
128
+ Enabled: false
129
+
130
+ # Offense count: 4
131
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
132
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
133
+ Naming/MethodParameterName:
107
134
  Exclude:
108
- - 'lib/expressir/benchmark.rb'
109
- - 'lib/expressir/changes/schema_change.rb'
110
- - 'lib/expressir/commands/changes_import_eengine.rb'
111
- - 'lib/expressir/commands/changes_validate.rb'
112
- - 'lib/expressir/commands/coverage.rb'
113
- - 'lib/expressir/coverage.rb'
114
- - 'lib/expressir/express/formatter.rb'
115
- - 'lib/expressir/express/visitor.rb'
116
- - 'lib/expressir/model/declarations/schema.rb'
117
- - 'lib/expressir/model/model_element.rb'
135
+ - 'lib/expressir/model/repository_validator.rb'
136
+
137
+ # Offense count: 5
138
+ # Configuration parameters: Mode, AllowedMethods, AllowedPatterns, AllowBangMethods, WaywardPredicates.
139
+ # AllowedMethods: call
140
+ # WaywardPredicates: nonzero?
141
+ Naming/PredicateMethod:
142
+ Exclude:
143
+ - 'lib/expressir/model/indexes/reference_index.rb'
144
+ - 'lib/expressir/model/search_engine.rb'
145
+ - 'scripts/validate_mapping.rb'
118
146
 
119
147
  # Offense count: 135
120
148
  # Configuration parameters: EnforcedStyle, AllowedIdentifiers, AllowedPatterns, ForbiddenIdentifiers, ForbiddenPatterns.
@@ -123,6 +151,15 @@ Naming/VariableName:
123
151
  Exclude:
124
152
  - 'lib/expressir/express/visitor.rb'
125
153
 
154
+ # Offense count: 5
155
+ # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
156
+ # SupportedStyles: snake_case, normalcase, non_integer
157
+ # AllowedIdentifiers: TLS1_1, TLS1_2, capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
158
+ Naming/VariableNumber:
159
+ Exclude:
160
+ - 'lib/expressir/commands/validate_ascii.rb'
161
+ - 'spec/expressir/commands/validate_ascii_spec.rb'
162
+
126
163
  # Offense count: 5
127
164
  Performance/FixedSize:
128
165
  Exclude:
@@ -135,12 +172,48 @@ Performance/MapMethodChain:
135
172
  - 'spec/expressir/commands/coverage_ignore_files_spec.rb'
136
173
  - 'spec/expressir/coverage_spec.rb'
137
174
 
138
- # Offense count: 126
175
+ # Offense count: 1
176
+ RSpec/AnyInstance:
177
+ Exclude:
178
+ - 'spec/expressir/commands/package_edge_cases_spec.rb'
179
+
180
+ # Offense count: 11
181
+ # Configuration parameters: Prefixes, AllowedPatterns.
182
+ # Prefixes: when, with, without
183
+ RSpec/ContextWording:
184
+ Exclude:
185
+ - 'spec/expressir/commands/manifest_spec.rb'
186
+ - 'spec/expressir/commands/package_nil_guards_spec.rb'
187
+ - 'spec/expressir/commands/validate_ascii_spec.rb'
188
+ - 'spec/expressir/model/repository_spec.rb'
189
+
190
+ # Offense count: 1
191
+ # Configuration parameters: IgnoredMetadata.
192
+ RSpec/DescribeClass:
193
+ Exclude:
194
+ - '**/spec/features/**/*'
195
+ - '**/spec/requests/**/*'
196
+ - '**/spec/routing/**/*'
197
+ - '**/spec/system/**/*'
198
+ - '**/spec/views/**/*'
199
+ - 'spec/expressir/integration/package_roundtrip_spec.rb'
200
+
201
+ # Offense count: 6
202
+ RSpec/DescribeMethod:
203
+ Exclude:
204
+ - 'spec/expressir/commands/package_edge_cases_spec.rb'
205
+ - 'spec/expressir/commands/package_fixtures_spec.rb'
206
+ - 'spec/expressir/commands/package_nil_guards_spec.rb'
207
+ - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
208
+ - 'spec/expressir/model/repository_statistics_spec.rb'
209
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
210
+
211
+ # Offense count: 431
139
212
  # Configuration parameters: CountAsOne.
140
213
  RSpec/ExampleLength:
141
214
  Max: 123
142
215
 
143
- # Offense count: 14
216
+ # Offense count: 51
144
217
  # Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
145
218
  RSpec/IndexedLet:
146
219
  Exclude:
@@ -150,29 +223,99 @@ RSpec/IndexedLet:
150
223
  - 'spec/expressir/model/data_types/real_spec.rb'
151
224
  - 'spec/expressir/model/data_types/set_spec.rb'
152
225
  - 'spec/expressir/model/data_types/string_spec.rb'
226
+ - 'spec/expressir/model/indexes/entity_index_spec.rb'
227
+ - 'spec/expressir/model/indexes/reference_index_spec.rb'
228
+ - 'spec/expressir/model/indexes/type_index_spec.rb'
229
+ - 'spec/expressir/model/repository_spec.rb'
230
+ - 'spec/expressir/model/repository_statistics_spec.rb'
231
+ - 'spec/expressir/model/repository_validator_spec.rb'
232
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
233
+
234
+ # Offense count: 1
235
+ # Configuration parameters: AssignmentOnly.
236
+ RSpec/InstanceVariable:
237
+ Exclude:
238
+ - 'spec/expressir/model/interface_validator_spec.rb'
239
+
240
+ # Offense count: 1
241
+ # This cop supports safe autocorrection (--autocorrect).
242
+ RSpec/IteratedExpectation:
243
+ Exclude:
244
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
153
245
 
154
- # Offense count: 257
246
+ # Offense count: 2
247
+ # Configuration parameters: EnforcedStyle.
248
+ # SupportedStyles: have_received, receive
249
+ RSpec/MessageSpies:
250
+ Exclude:
251
+ - 'spec/expressir/model/repository_validator_spec.rb'
252
+ - 'spec/expressir/model/search_engine_spec.rb'
253
+
254
+ # Offense count: 540
155
255
  RSpec/MultipleExpectations:
156
256
  Max: 114
157
257
 
158
- # Offense count: 21
258
+ # Offense count: 117
159
259
  # Configuration parameters: AllowSubject.
160
260
  RSpec/MultipleMemoizedHelpers:
161
- Max: 13
261
+ Max: 19
162
262
 
163
263
  # Offense count: 5
264
+ # Configuration parameters: AllowedGroups.
265
+ RSpec/NestedGroups:
266
+ Max: 4
267
+
268
+ # Offense count: 3
164
269
  RSpec/PendingWithoutReason:
165
270
  Exclude:
166
- - 'spec/expressir/model/declarations/remark_item_spec.rb'
167
271
  - 'spec/expressir/model/declarations/rule_spec.rb'
168
272
  - 'spec/expressir/model/declarations/schema_spec.rb'
169
273
 
170
- # Offense count: 2
274
+ # Offense count: 1
275
+ RSpec/RemoveConst:
276
+ Exclude:
277
+ - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
278
+
279
+ # Offense count: 20
171
280
  RSpec/RepeatedExample:
172
281
  Exclude:
282
+ - 'spec/expressir/commands/package_fixtures_spec.rb'
173
283
  - 'spec/expressir/model/data_types/logical_spec.rb'
284
+ - 'spec/expressir/model/indexes/entity_index_spec.rb'
285
+ - 'spec/expressir/model/indexes/type_index_spec.rb'
286
+ - 'spec/expressir/model/interface_validator_spec.rb'
174
287
 
175
288
  # Offense count: 6
289
+ # Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata.
290
+ RSpec/SpecFilePathFormat:
291
+ Exclude:
292
+ - '**/spec/routing/**/*'
293
+ - 'spec/expressir/commands/package_edge_cases_spec.rb'
294
+ - 'spec/expressir/commands/package_fixtures_spec.rb'
295
+ - 'spec/expressir/commands/package_nil_guards_spec.rb'
296
+ - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
297
+ - 'spec/expressir/model/repository_statistics_spec.rb'
298
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
299
+
300
+ # Offense count: 171
301
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
302
+ RSpec/VerifiedDoubles:
303
+ Exclude:
304
+ - 'spec/expressir/commands/package_nil_guards_spec.rb'
305
+ - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
306
+ - 'spec/expressir/model/indexes/entity_index_spec.rb'
307
+ - 'spec/expressir/model/indexes/reference_index_spec.rb'
308
+ - 'spec/expressir/model/indexes/type_index_spec.rb'
309
+ - 'spec/expressir/model/repository_statistics_spec.rb'
310
+ - 'spec/expressir/model/repository_validator_spec.rb'
311
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
312
+
313
+ # Offense count: 4
314
+ Security/MarshalLoad:
315
+ Exclude:
316
+ - 'lib/expressir/package/reader.rb'
317
+
318
+ # Offense count: 1
176
319
  # This cop supports safe autocorrection (--autocorrect).
177
320
  # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
178
321
  # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
@@ -181,8 +324,7 @@ RSpec/RepeatedExample:
181
324
  # AllowedMethods: lambda, proc, it
182
325
  Style/BlockDelimiters:
183
326
  Exclude:
184
- - 'lib/expressir/commands/changes_import_eengine.rb'
185
- - 'spec/expressir/commands/changes_import_eengine_spec.rb'
327
+ - 'lib/expressir/commands/validate_ascii.rb'
186
328
 
187
329
  # Offense count: 1
188
330
  # This cop supports safe autocorrection (--autocorrect).
@@ -192,7 +334,19 @@ Style/EmptyElse:
192
334
  Exclude:
193
335
  - 'lib/expressir/commands/changes_validate.rb'
194
336
 
337
+ # Offense count: 4
338
+ # This cop supports safe autocorrection (--autocorrect).
339
+ # Configuration parameters: MaxUnannotatedPlaceholdersAllowed, Mode, AllowedMethods, AllowedPatterns.
340
+ # SupportedStyles: annotated, template, unannotated
341
+ Style/FormatStringToken:
342
+ EnforcedStyle: unannotated
343
+
195
344
  # Offense count: 1
196
345
  Style/MissingRespondToMissing:
197
346
  Exclude:
198
347
  - 'lib/expressir/express/visitor.rb'
348
+
349
+ # Offense count: 1
350
+ Style/OpenStructUse:
351
+ Exclude:
352
+ - 'spec/expressir/commands/package_tree_spec.rb'
data/Gemfile CHANGED
@@ -6,7 +6,8 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "canon"
9
- gem "pry"
9
+ gem "lutaml-model", github: "lutaml/lutaml-model", branch: "main"
10
+ gem "openssl"
10
11
  gem "rake"
11
12
  gem "rspec"
12
13
  gem "rubocop"