expressir 2.2.0 → 2.3.0

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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.rubocop_todo.yml +254 -77
  4. data/Gemfile +4 -1
  5. data/README.adoc +63 -26
  6. data/benchmark/srl_benchmark.rb +386 -0
  7. data/benchmark/srl_native_benchmark.rb +142 -0
  8. data/benchmark/srl_ruby_benchmark.rb +130 -0
  9. data/expressir.gemspec +4 -2
  10. data/lib/expressir/benchmark.rb +1 -1
  11. data/lib/expressir/changes/item_change.rb +0 -1
  12. data/lib/expressir/changes/mapping_change.rb +0 -1
  13. data/lib/expressir/changes/schema_change.rb +0 -2
  14. data/lib/expressir/changes/version_change.rb +0 -3
  15. data/lib/expressir/changes.rb +5 -6
  16. data/lib/expressir/cli.rb +10 -24
  17. data/lib/expressir/commands/base.rb +2 -9
  18. data/lib/expressir/commands/changes.rb +0 -2
  19. data/lib/expressir/commands/changes_import_eengine.rb +0 -3
  20. data/lib/expressir/commands/changes_validate.rb +0 -2
  21. data/lib/expressir/commands/format.rb +5 -3
  22. data/lib/expressir/commands/manifest.rb +0 -7
  23. data/lib/expressir/commands/package.rb +93 -101
  24. data/lib/expressir/commands/validate.rb +0 -2
  25. data/lib/expressir/commands/validate_ascii.rb +2 -4
  26. data/lib/expressir/commands/validate_load.rb +8 -5
  27. data/lib/expressir/commands.rb +20 -0
  28. data/lib/expressir/config.rb +0 -2
  29. data/lib/expressir/coverage.rb +11 -4
  30. data/lib/expressir/eengine/arm_compare_report.rb +1 -4
  31. data/lib/expressir/eengine/changes_section.rb +1 -3
  32. data/lib/expressir/eengine/compare_report.rb +1 -13
  33. data/lib/expressir/eengine/mim_compare_report.rb +1 -4
  34. data/lib/expressir/eengine/modified_object.rb +1 -2
  35. data/lib/expressir/eengine.rb +9 -0
  36. data/lib/expressir/errors.rb +113 -0
  37. data/lib/expressir/express/builder.rb +22 -7
  38. data/lib/expressir/express/builder_registry.rb +411 -0
  39. data/lib/expressir/express/builders/attribute_decl_builder.rb +0 -6
  40. data/lib/expressir/express/builders/built_in_builder.rb +1 -16
  41. data/lib/expressir/express/builders/constant_builder.rb +4 -19
  42. data/lib/expressir/express/builders/declaration_builder.rb +0 -4
  43. data/lib/expressir/express/builders/derive_clause_builder.rb +0 -2
  44. data/lib/expressir/express/builders/derived_attr_builder.rb +0 -2
  45. data/lib/expressir/express/builders/domain_rule_builder.rb +0 -2
  46. data/lib/expressir/express/builders/entity_decl_builder.rb +7 -13
  47. data/lib/expressir/express/builders/explicit_attr_builder.rb +5 -8
  48. data/lib/expressir/express/builders/expression_builder.rb +31 -67
  49. data/lib/expressir/express/builders/function_decl_builder.rb +20 -18
  50. data/lib/expressir/express/builders/interface_builder.rb +0 -20
  51. data/lib/expressir/express/builders/inverse_attr_builder.rb +0 -2
  52. data/lib/expressir/express/builders/inverse_attr_type_builder.rb +0 -6
  53. data/lib/expressir/express/builders/inverse_clause_builder.rb +0 -2
  54. data/lib/expressir/express/builders/literal_builder.rb +1 -15
  55. data/lib/expressir/express/builders/procedure_decl_builder.rb +20 -19
  56. data/lib/expressir/express/builders/qualifier_builder.rb +0 -27
  57. data/lib/expressir/express/builders/reference_builder.rb +1 -10
  58. data/lib/expressir/express/builders/rule_decl_builder.rb +21 -19
  59. data/lib/expressir/express/builders/schema_body_decl_builder.rb +0 -4
  60. data/lib/expressir/express/builders/schema_decl_builder.rb +7 -13
  61. data/lib/expressir/express/builders/schema_version_builder.rb +0 -6
  62. data/lib/expressir/express/builders/simple_id_builder.rb +1 -10
  63. data/lib/expressir/express/builders/statement_builder.rb +4 -32
  64. data/lib/expressir/express/builders/subtype_constraint_builder.rb +6 -30
  65. data/lib/expressir/express/builders/syntax_builder.rb +60 -7
  66. data/lib/expressir/express/builders/type_builder.rb +3 -45
  67. data/lib/expressir/express/builders/type_decl_builder.rb +1 -7
  68. data/lib/expressir/express/builders/unique_clause_builder.rb +1 -3
  69. data/lib/expressir/express/builders/unique_rule_builder.rb +0 -2
  70. data/lib/expressir/express/builders/where_clause_builder.rb +1 -3
  71. data/lib/expressir/express/builders.rb +47 -35
  72. data/lib/expressir/express/error.rb +0 -3
  73. data/lib/expressir/express/formatter.rb +17 -19
  74. data/lib/expressir/express/formatters/data_types_formatter.rb +295 -293
  75. data/lib/expressir/express/formatters/declarations_formatter.rb +617 -615
  76. data/lib/expressir/express/formatters/expressions_formatter.rb +146 -144
  77. data/lib/expressir/express/formatters/literals_formatter.rb +35 -33
  78. data/lib/expressir/express/formatters/references_formatter.rb +34 -32
  79. data/lib/expressir/express/formatters/remark_formatter.rb +176 -209
  80. data/lib/expressir/express/formatters/remark_item_formatter.rb +18 -16
  81. data/lib/expressir/express/formatters/statements_formatter.rb +190 -188
  82. data/lib/expressir/express/formatters/supertype_expressions_formatter.rb +41 -39
  83. data/lib/expressir/express/formatters.rb +22 -0
  84. data/lib/expressir/express/parser.rb +40 -41
  85. data/lib/expressir/express/pretty_formatter.rb +68 -47
  86. data/lib/expressir/express/remark_attacher.rb +210 -147
  87. data/lib/expressir/express/streaming_builder.rb +0 -3
  88. data/lib/expressir/express/transformer/remark_handling.rb +1 -2
  89. data/lib/expressir/express.rb +29 -0
  90. data/lib/expressir/manifest/resolver.rb +0 -3
  91. data/lib/expressir/manifest/validator.rb +0 -3
  92. data/lib/expressir/manifest.rb +6 -0
  93. data/lib/expressir/model/cache.rb +1 -1
  94. data/lib/expressir/model/concerns.rb +19 -0
  95. data/lib/expressir/model/data_types/aggregate.rb +1 -1
  96. data/lib/expressir/model/data_types/array.rb +1 -1
  97. data/lib/expressir/model/data_types/bag.rb +1 -1
  98. data/lib/expressir/model/data_types/binary.rb +1 -1
  99. data/lib/expressir/model/data_types/boolean.rb +1 -1
  100. data/lib/expressir/model/data_types/enumeration.rb +1 -1
  101. data/lib/expressir/model/data_types/enumeration_item.rb +1 -1
  102. data/lib/expressir/model/data_types/generic.rb +1 -1
  103. data/lib/expressir/model/data_types/generic_entity.rb +1 -1
  104. data/lib/expressir/model/data_types/integer.rb +1 -1
  105. data/lib/expressir/model/data_types/list.rb +1 -1
  106. data/lib/expressir/model/data_types/logical.rb +1 -1
  107. data/lib/expressir/model/data_types/number.rb +1 -1
  108. data/lib/expressir/model/data_types/real.rb +1 -1
  109. data/lib/expressir/model/data_types/select.rb +1 -1
  110. data/lib/expressir/model/data_types/set.rb +1 -1
  111. data/lib/expressir/model/data_types/string.rb +1 -1
  112. data/lib/expressir/model/data_types.rb +25 -0
  113. data/lib/expressir/model/declarations/attribute.rb +1 -1
  114. data/lib/expressir/model/declarations/constant.rb +1 -1
  115. data/lib/expressir/model/declarations/derived_attribute.rb +1 -1
  116. data/lib/expressir/model/declarations/entity.rb +4 -1
  117. data/lib/expressir/model/declarations/function.rb +3 -1
  118. data/lib/expressir/model/declarations/informal_proposition_rule.rb +2 -1
  119. data/lib/expressir/model/declarations/interface.rb +1 -1
  120. data/lib/expressir/model/declarations/interface_item.rb +1 -1
  121. data/lib/expressir/model/declarations/interfaced_item.rb +1 -1
  122. data/lib/expressir/model/declarations/inverse_attribute.rb +1 -1
  123. data/lib/expressir/model/declarations/parameter.rb +1 -1
  124. data/lib/expressir/model/declarations/procedure.rb +3 -1
  125. data/lib/expressir/model/declarations/remark_item.rb +1 -1
  126. data/lib/expressir/model/declarations/rule.rb +4 -1
  127. data/lib/expressir/model/declarations/schema.rb +2 -1
  128. data/lib/expressir/model/declarations/schema_version.rb +1 -1
  129. data/lib/expressir/model/declarations/schema_version_item.rb +1 -1
  130. data/lib/expressir/model/declarations/subtype_constraint.rb +1 -1
  131. data/lib/expressir/model/declarations/type.rb +4 -1
  132. data/lib/expressir/model/declarations/unique_rule.rb +1 -1
  133. data/lib/expressir/model/declarations/variable.rb +1 -1
  134. data/lib/expressir/model/declarations/where_rule.rb +1 -1
  135. data/lib/expressir/model/declarations.rb +31 -0
  136. data/lib/expressir/model/dependency_resolver.rb +0 -2
  137. data/lib/expressir/model/exp_file.rb +38 -0
  138. data/lib/expressir/model/expressions/aggregate_initializer.rb +1 -1
  139. data/lib/expressir/model/expressions/aggregate_initializer_item.rb +1 -1
  140. data/lib/expressir/model/expressions/binary_expression.rb +1 -1
  141. data/lib/expressir/model/expressions/entity_constructor.rb +1 -1
  142. data/lib/expressir/model/expressions/function_call.rb +1 -1
  143. data/lib/expressir/model/expressions/interval.rb +1 -1
  144. data/lib/expressir/model/expressions/query_expression.rb +1 -1
  145. data/lib/expressir/model/expressions/unary_expression.rb +1 -1
  146. data/lib/expressir/model/expressions.rb +18 -0
  147. data/lib/expressir/model/identifier.rb +5 -1
  148. data/lib/expressir/model/indexes.rb +11 -0
  149. data/lib/expressir/model/literals/binary.rb +1 -1
  150. data/lib/expressir/model/literals/integer.rb +1 -1
  151. data/lib/expressir/model/literals/logical.rb +1 -1
  152. data/lib/expressir/model/literals/real.rb +1 -1
  153. data/lib/expressir/model/literals/string.rb +1 -1
  154. data/lib/expressir/model/literals.rb +13 -0
  155. data/lib/expressir/model/model_element.rb +7 -15
  156. data/lib/expressir/model/references/attribute_reference.rb +1 -1
  157. data/lib/expressir/model/references/group_reference.rb +1 -1
  158. data/lib/expressir/model/references/index_reference.rb +1 -1
  159. data/lib/expressir/model/references/simple_reference.rb +1 -1
  160. data/lib/expressir/model/references.rb +12 -0
  161. data/lib/expressir/model/remark_info.rb +1 -7
  162. data/lib/expressir/model/repository.rb +72 -36
  163. data/lib/expressir/model/repository_validator.rb +0 -2
  164. data/lib/expressir/model/search_engine.rb +6 -30
  165. data/lib/expressir/model/statements/alias.rb +1 -1
  166. data/lib/expressir/model/statements/assignment.rb +1 -1
  167. data/lib/expressir/model/statements/case.rb +1 -1
  168. data/lib/expressir/model/statements/case_action.rb +1 -1
  169. data/lib/expressir/model/statements/compound.rb +1 -1
  170. data/lib/expressir/model/statements/escape.rb +1 -1
  171. data/lib/expressir/model/statements/if.rb +1 -1
  172. data/lib/expressir/model/statements/null.rb +1 -1
  173. data/lib/expressir/model/statements/procedure_call.rb +1 -1
  174. data/lib/expressir/model/statements/repeat.rb +1 -1
  175. data/lib/expressir/model/statements/return.rb +1 -1
  176. data/lib/expressir/model/statements/skip.rb +1 -1
  177. data/lib/expressir/model/statements.rb +20 -0
  178. data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +1 -1
  179. data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +1 -1
  180. data/lib/expressir/model/supertype_expressions.rb +12 -0
  181. data/lib/expressir/model.rb +28 -4
  182. data/lib/expressir/package/builder.rb +33 -4
  183. data/lib/expressir/package/metadata.rb +0 -1
  184. data/lib/expressir/package/reader.rb +0 -1
  185. data/lib/expressir/package.rb +8 -0
  186. data/lib/expressir/schema_manifest.rb +5 -6
  187. data/lib/expressir/schema_manifest_entry.rb +3 -4
  188. data/lib/expressir/transformer.rb +7 -0
  189. data/lib/expressir/version.rb +1 -1
  190. data/lib/expressir.rb +23 -173
  191. metadata +64 -9
  192. data/lib/expressir/express/builders/token_builder.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50f641491331a6faa4d3d4f1e85ad279e97b3aeb98bedb93d323feff1cb8ac51
4
- data.tar.gz: 1fd6c283f17387d978a8af4b425fcbef8cbb90e6515d8c56a8841a70310317dc
3
+ metadata.gz: 4b32c44114e4573e68289d6b2a06e77fdc366cecf318842875c235183c605b4d
4
+ data.tar.gz: f95594cf05cca193baaf3977f5b3e1c87b5f23b35d4e2617eeaab6977c945322
5
5
  SHA512:
6
- metadata.gz: 95330409badd0fd0991db258eca184f0e4e2c08c53bd6356f01b7cedbd6a8500972509bc235c896d3ca5e25329251c492dbea5b13138a20c85beeb29ad607bee
7
- data.tar.gz: b009c202b816d473e80ffc326ff3f0ca9d4841a754313f8332dc8dde8fcc8add7f0025af9a3ad1ed1009e3cf32da4b3c1bcbbfd76298a0e6e25236af21c52307
6
+ metadata.gz: 06b27d3e6ba1f132a07d67f48a23846caeb6625ed50135a4fd46ba29812d70bdfff5458d8e62e74ea87fb39aed1ba8a14592710d3e124129178710cc70924778
7
+ data.tar.gz: d5c15a2505e5fe8c0caff2e22f9080926775d28a16fad62861a372a3f61997773429fe8ed7e6e9dc3b8c6c0ed29bc5b9e5b4afdd46785fdd2fdaa30da4e20d71
data/.rubocop.yml CHANGED
@@ -8,7 +8,7 @@ plugins:
8
8
  - rubocop-rspec
9
9
 
10
10
  AllCops:
11
- TargetRubyVersion: 3.0
11
+ TargetRubyVersion: 3.2
12
12
  NewCops: enable
13
13
  Exclude:
14
14
  - 'vendor/**/*'
data/.rubocop_todo.yml CHANGED
@@ -1,31 +1,126 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2026-03-05 05:14:10 UTC using RuboCop version 1.85.0.
3
+ # on 2026-03-24 12:59:48 UTC using RuboCop version 1.86.0.
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
9
  # Offense count: 1
10
- Gemspec/RequiredRubyVersion:
10
+ # This cop supports safe autocorrection (--autocorrect).
11
+ # Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation.
12
+ Gemspec/OrderedDependencies:
11
13
  Exclude:
12
14
  - 'expressir.gemspec'
13
15
 
16
+ # Offense count: 2
17
+ # This cop supports safe autocorrection (--autocorrect).
18
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
19
+ # SupportedStyles: with_first_argument, with_fixed_indentation
20
+ Layout/ArgumentAlignment:
21
+ Exclude:
22
+ - 'lib/expressir/express/parser.rb'
23
+
24
+ # Offense count: 1
25
+ # This cop supports safe autocorrection (--autocorrect).
26
+ # Configuration parameters: AllowForAlignment.
27
+ Layout/CommentIndentation:
28
+ Exclude:
29
+ - 'spec/expressir/model/indexes/reference_index_spec.rb'
30
+
31
+ # Offense count: 6
32
+ # This cop supports safe autocorrection (--autocorrect).
33
+ Layout/ElseAlignment:
34
+ Exclude:
35
+ - 'lib/expressir/express/builders/function_decl_builder.rb'
36
+ - 'lib/expressir/express/builders/procedure_decl_builder.rb'
37
+ - 'lib/expressir/express/builders/rule_decl_builder.rb'
38
+
39
+ # Offense count: 3
40
+ # This cop supports safe autocorrection (--autocorrect).
41
+ Layout/EmptyLineAfterGuardClause:
42
+ Exclude:
43
+ - 'lib/expressir/express/builder.rb'
44
+ - 'lib/expressir/model/repository.rb'
45
+ - 'lib/expressir/model/search_engine.rb'
46
+
47
+ # Offense count: 1
48
+ # This cop supports safe autocorrection (--autocorrect).
49
+ # Configuration parameters: EmptyLineBetweenMethodDefs, EmptyLineBetweenClassDefs, EmptyLineBetweenModuleDefs, DefLikeMacros, AllowAdjacentOneLineDefs, NumberOfEmptyLines.
50
+ Layout/EmptyLineBetweenDefs:
51
+ Exclude:
52
+ - 'lib/expressir/express/remark_attacher.rb'
53
+
54
+ # Offense count: 11
55
+ # This cop supports safe autocorrection (--autocorrect).
56
+ Layout/EmptyLines:
57
+ Exclude:
58
+ - 'lib/expressir/changes/item_change.rb'
59
+ - 'lib/expressir/changes/mapping_change.rb'
60
+ - 'lib/expressir/changes/schema_change.rb'
61
+ - 'lib/expressir/changes/version_change.rb'
62
+ - 'lib/expressir/eengine/arm_compare_report.rb'
63
+ - 'lib/expressir/eengine/changes_section.rb'
64
+ - 'lib/expressir/eengine/mim_compare_report.rb'
65
+ - 'lib/expressir/eengine/modified_object.rb'
66
+ - 'lib/expressir/package/metadata.rb'
67
+ - 'lib/expressir/schema_manifest.rb'
68
+ - 'lib/expressir/schema_manifest_entry.rb'
69
+
70
+ # Offense count: 6
71
+ # This cop supports safe autocorrection (--autocorrect).
72
+ # Configuration parameters: EnforcedStyleAlignWith.
73
+ # SupportedStylesAlignWith: keyword, variable, start_of_line
74
+ Layout/EndAlignment:
75
+ Exclude:
76
+ - 'lib/expressir/express/builders/function_decl_builder.rb'
77
+ - 'lib/expressir/express/builders/procedure_decl_builder.rb'
78
+ - 'lib/expressir/express/builders/rule_decl_builder.rb'
79
+
14
80
  # Offense count: 1
15
81
  # This cop supports safe autocorrection (--autocorrect).
16
82
  # Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
17
83
  Layout/ExtraSpacing:
18
84
  Exclude:
19
- - 'lib/expressir/benchmark.rb'
85
+ - 'benchmark/srl_benchmark.rb'
20
86
 
21
- # Offense count: 993
87
+ # Offense count: 3
88
+ # This cop supports safe autocorrection (--autocorrect).
89
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
90
+ # SupportedHashRocketStyles: key, separator, table
91
+ # SupportedColonStyles: key, separator, table
92
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
93
+ Layout/HashAlignment:
94
+ Exclude:
95
+ - 'lib/expressir/express/parser.rb'
96
+
97
+ # Offense count: 6
98
+ # This cop supports safe autocorrection (--autocorrect).
99
+ # Configuration parameters: Width, EnforcedStyleAlignWith, AllowedPatterns.
100
+ # SupportedStylesAlignWith: start_of_line, relative_to_receiver
101
+ Layout/IndentationWidth:
102
+ Exclude:
103
+ - 'lib/expressir/express/builders/function_decl_builder.rb'
104
+ - 'lib/expressir/express/builders/procedure_decl_builder.rb'
105
+ - 'lib/expressir/express/builders/rule_decl_builder.rb'
106
+
107
+ # Offense count: 1056
22
108
  # This cop supports safe autocorrection (--autocorrect).
23
109
  # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
24
110
  # URISchemes: http, https
25
111
  Layout/LineLength:
26
112
  Enabled: false
27
113
 
28
- # Offense count: 8
114
+ # Offense count: 1
115
+ # This cop supports safe autocorrection (--autocorrect).
116
+ # Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator, EnforcedStyleForRationalLiterals.
117
+ # SupportedStylesForExponentOperator: space, no_space
118
+ # SupportedStylesForRationalLiterals: space, no_space
119
+ Layout/SpaceAroundOperators:
120
+ Exclude:
121
+ - 'benchmark/srl_benchmark.rb'
122
+
123
+ # Offense count: 9
29
124
  # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
30
125
  Lint/DuplicateBranch:
31
126
  Exclude:
@@ -47,11 +142,29 @@ Lint/DuplicateMethods:
47
142
  Exclude:
48
143
  - 'lib/expressir/commands/validate_ascii.rb'
49
144
 
50
- # Offense count: 1
145
+ # Offense count: 3
146
+ # This cop supports unsafe autocorrection (--autocorrect-all).
147
+ Lint/RedundantDirGlobSort:
148
+ Exclude:
149
+ - 'benchmark/srl_benchmark.rb'
150
+ - 'benchmark/srl_native_benchmark.rb'
151
+ - 'benchmark/srl_ruby_benchmark.rb'
152
+
153
+ # Offense count: 3
154
+ # This cop supports safe autocorrection (--autocorrect).
155
+ Lint/RedundantRequireStatement:
156
+ Exclude:
157
+ - 'lib/expressir/commands/validate_ascii.rb'
158
+ - 'lib/expressir/express/remark_attacher.rb'
159
+ - 'lib/expressir/express/transformer/remark_handling.rb'
160
+
161
+ # Offense count: 3
51
162
  # This cop supports safe autocorrection (--autocorrect).
52
163
  Lint/ScriptPermission:
53
164
  Exclude:
54
- - 'regenerate_yaml.rb'
165
+ - 'benchmark/srl_benchmark.rb'
166
+ - 'benchmark/srl_native_benchmark.rb'
167
+ - 'benchmark/srl_ruby_benchmark.rb'
55
168
 
56
169
  # Offense count: 2
57
170
  # Configuration parameters: AllowedPatterns.
@@ -60,51 +173,68 @@ Lint/UnreachableLoop:
60
173
  Exclude:
61
174
  - 'lib/expressir/model/dependency_resolver.rb'
62
175
 
63
- # Offense count: 2
176
+ # Offense count: 3
64
177
  # This cop supports safe autocorrection (--autocorrect).
65
178
  # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
66
179
  # NotImplementedExceptions: NotImplementedError
67
180
  Lint/UnusedMethodArgument:
68
181
  Exclude:
182
+ - 'benchmark/srl_benchmark.rb'
69
183
  - 'lib/expressir/express/cache.rb'
70
184
  - 'lib/expressir/express/parser.rb'
71
185
 
72
- # Offense count: 227
186
+ # Offense count: 3
187
+ # This cop supports safe autocorrection (--autocorrect).
188
+ Lint/UselessAssignment:
189
+ Exclude:
190
+ - 'benchmark/srl_benchmark.rb'
191
+ - 'spec/expressir/express/pretty_formatter_spec.rb'
192
+ - 'spec/expressir/model/indexes/type_index_spec.rb'
193
+
194
+ # Offense count: 235
73
195
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
74
196
  Metrics/AbcSize:
75
197
  Enabled: false
76
198
 
77
- # Offense count: 8
199
+ # Offense count: 10
78
200
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
79
201
  # AllowedMethods: refine
80
202
  Metrics/BlockLength:
81
- Max: 98
203
+ Max: 105
82
204
 
83
- # Offense count: 11
205
+ # Offense count: 15
84
206
  # Configuration parameters: CountBlocks, CountModifierForms.
85
207
  Metrics/BlockNesting:
86
208
  Max: 6
87
209
 
88
- # Offense count: 189
210
+ # Offense count: 194
89
211
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
90
212
  Metrics/CyclomaticComplexity:
91
213
  Enabled: false
92
214
 
93
- # Offense count: 276
215
+ # Offense count: 281
94
216
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
95
217
  Metrics/MethodLength:
96
- Max: 193
218
+ Max: 167
97
219
 
98
220
  # Offense count: 6
99
221
  # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
100
222
  Metrics/ParameterLists:
101
223
  Max: 8
102
224
 
103
- # Offense count: 162
225
+ # Offense count: 167
104
226
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
105
227
  Metrics/PerceivedComplexity:
106
228
  Enabled: false
107
229
 
230
+ # Offense count: 4
231
+ # This cop supports safe autocorrection (--autocorrect).
232
+ # Configuration parameters: EnforcedStyle, BlockForwardingName.
233
+ # SupportedStyles: anonymous, explicit
234
+ Naming/BlockForwarding:
235
+ Exclude:
236
+ - 'lib/expressir/model/repository.rb'
237
+
108
238
  # Offense count: 4
109
239
  # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
110
240
  # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
@@ -131,10 +261,11 @@ Naming/VariableNumber:
131
261
  - 'spec/expressir/commands/validate_ascii_spec.rb'
132
262
  - 'spec/expressir/express/pretty_formatter_spec.rb'
133
263
 
134
- # Offense count: 2
264
+ # Offense count: 3
135
265
  # Configuration parameters: MinSize.
136
266
  Performance/CollectionLiteralInLoop:
137
267
  Exclude:
268
+ - 'lib/expressir/express/remark_attacher.rb'
138
269
  - 'lib/expressir/express/streaming_builder.rb'
139
270
 
140
271
  # Offense count: 5
@@ -186,12 +317,21 @@ RSpec/DescribeMethod:
186
317
  - 'spec/expressir/model/repository_statistics_spec.rb'
187
318
  - 'spec/expressir/model/search_engine_advanced_spec.rb'
188
319
 
189
- # Offense count: 465
320
+ # Offense count: 2
321
+ # This cop supports unsafe autocorrection (--autocorrect-all).
322
+ # Configuration parameters: SkipBlocks, EnforcedStyle, OnlyStaticConstants.
323
+ # SupportedStyles: described_class, explicit
324
+ RSpec/DescribedClass:
325
+ Exclude:
326
+ - 'spec/expressir/model/model_element_spec.rb'
327
+ - 'spec/expressir/model/repository_spec.rb'
328
+
329
+ # Offense count: 451
190
330
  # Configuration parameters: CountAsOne.
191
331
  RSpec/ExampleLength:
192
- Max: 123
332
+ Max: 122
193
333
 
194
- # Offense count: 51
334
+ # Offense count: 44
195
335
  # Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
196
336
  RSpec/IndexedLet:
197
337
  Exclude:
@@ -221,57 +361,36 @@ RSpec/IteratedExpectation:
221
361
  Exclude:
222
362
  - 'spec/expressir/model/search_engine_advanced_spec.rb'
223
363
 
224
- # Offense count: 2
225
- # Configuration parameters: EnforcedStyle.
364
+ # Offense count: 1
365
+ # Configuration parameters: .
226
366
  # SupportedStyles: have_received, receive
227
367
  RSpec/MessageSpies:
228
- Exclude:
229
- - 'spec/expressir/model/repository_validator_spec.rb'
230
- - 'spec/expressir/model/search_engine_spec.rb'
368
+ EnforcedStyle: receive
231
369
 
232
- # Offense count: 580
370
+ # Offense count: 582
233
371
  RSpec/MultipleExpectations:
234
372
  Max: 114
235
373
 
236
- # Offense count: 117
374
+ # Offense count: 111
237
375
  # Configuration parameters: AllowSubject.
238
376
  RSpec/MultipleMemoizedHelpers:
239
- Max: 19
377
+ Max: 18
240
378
 
241
379
  # Offense count: 5
242
380
  # Configuration parameters: AllowedGroups.
243
381
  RSpec/NestedGroups:
244
382
  Max: 4
245
383
 
246
- # Offense count: 35
247
- # This cop supports unsafe autocorrection (--autocorrect-all).
248
- RSpec/Output:
249
- Exclude:
250
- - 'spec/acceptance/version_spec.rb'
251
- - 'spec/expressir/express/cache_spec.rb'
252
- - 'spec/expressir/express/formatter_spec.rb'
253
- - 'spec/expressir/express/parser_spec.rb'
254
- - 'spec/expressir/model/model_element_spec.rb'
255
- - 'spec/spec_helper.rb'
256
-
257
- # Offense count: 28
258
- # This cop supports unsafe autocorrection (--autocorrect-all).
259
- RSpec/ReceiveMessages:
260
- Exclude:
261
- - 'spec/expressir/model/search_engine_advanced_spec.rb'
262
-
263
384
  # Offense count: 1
264
385
  RSpec/RemoveConst:
265
386
  Exclude:
266
387
  - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
267
388
 
268
- # Offense count: 20
389
+ # Offense count: 12
269
390
  RSpec/RepeatedExample:
270
391
  Exclude:
271
392
  - 'spec/expressir/commands/package_fixtures_spec.rb'
272
393
  - 'spec/expressir/model/data_types/logical_spec.rb'
273
- - 'spec/expressir/model/indexes/entity_index_spec.rb'
274
- - 'spec/expressir/model/indexes/type_index_spec.rb'
275
394
  - 'spec/expressir/model/interface_validator_spec.rb'
276
395
 
277
396
  # Offense count: 7
@@ -288,20 +407,29 @@ RSpec/SpecFilePathFormat:
288
407
  - 'spec/expressir/model/repository_statistics_spec.rb'
289
408
  - 'spec/expressir/model/search_engine_advanced_spec.rb'
290
409
 
291
- # Offense count: 48
292
- # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
293
- RSpec/VerifiedDoubles:
294
- Exclude:
295
- - 'spec/expressir/commands/package_nil_guards_spec.rb'
296
- - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
297
- - 'spec/expressir/express/pretty_formatter_spec.rb'
298
- - 'spec/expressir/model/search_engine_advanced_spec.rb'
299
-
300
410
  # Offense count: 4
301
411
  Security/MarshalLoad:
302
412
  Exclude:
303
413
  - 'lib/expressir/package/reader.rb'
304
414
 
415
+ # Offense count: 16
416
+ # This cop supports safe autocorrection (--autocorrect).
417
+ # Configuration parameters: AllowOnlyRestArgument, UseAnonymousForwarding, RedundantRestArgumentNames, RedundantKeywordRestArgumentNames, RedundantBlockArgumentNames.
418
+ # RedundantRestArgumentNames: args, arguments
419
+ # RedundantKeywordRestArgumentNames: kwargs, options, opts
420
+ # RedundantBlockArgumentNames: blk, block, proc
421
+ Style/ArgumentsForwarding:
422
+ Exclude:
423
+ - 'lib/expressir/commands/changes_import_eengine.rb'
424
+ - 'lib/expressir/model/repository.rb'
425
+ - 'lib/expressir/model/search_engine.rb'
426
+
427
+ # Offense count: 2
428
+ # This cop supports unsafe autocorrection (--autocorrect-all).
429
+ Style/ConcatArrayLiterals:
430
+ Exclude:
431
+ - 'lib/expressir/express/builders/entity_decl_builder.rb'
432
+
305
433
  # Offense count: 1
306
434
  # This cop supports safe autocorrection (--autocorrect).
307
435
  # Configuration parameters: EnforcedStyle, AllowComments.
@@ -317,6 +445,14 @@ Style/EmptyElse:
317
445
  Style/FormatStringToken:
318
446
  EnforcedStyle: unannotated
319
447
 
448
+ # Offense count: 1
449
+ # This cop supports unsafe autocorrection (--autocorrect-all).
450
+ # Configuration parameters: AllowedReceivers.
451
+ # AllowedReceivers: Thread.current
452
+ Style/HashEachMethods:
453
+ Exclude:
454
+ - 'lib/expressir/express/builders/syntax_builder.rb'
455
+
320
456
  # Offense count: 1
321
457
  # Configuration parameters: MinBranchesCount.
322
458
  Style/HashLikeCase:
@@ -324,38 +460,79 @@ Style/HashLikeCase:
324
460
  - 'lib/expressir/express/remark_attacher.rb'
325
461
 
326
462
  # Offense count: 1
327
- Style/OpenStructUse:
463
+ Style/MixinUsage:
328
464
  Exclude:
329
- - 'spec/expressir/commands/package_tree_spec.rb'
465
+ - 'benchmark/srl_benchmark.rb'
330
466
 
331
- # Offense count: 2
467
+ # Offense count: 7
332
468
  # This cop supports unsafe autocorrection (--autocorrect-all).
333
- Style/PartitionInsteadOfDoubleSelect:
469
+ # Configuration parameters: EnforcedStyle, AllowedMethods, AllowedPatterns.
470
+ # SupportedStyles: predicate, comparison
471
+ Style/NumericPredicate:
334
472
  Exclude:
335
- - 'lib/expressir/express/transformer/remark_handling.rb'
336
- - 'spec/expressir/model/search_engine_advanced_spec.rb'
473
+ - 'spec/**/*'
474
+ - 'benchmark/srl_benchmark.rb'
475
+ - 'benchmark/srl_native_benchmark.rb'
476
+ - 'benchmark/srl_ruby_benchmark.rb'
477
+
478
+ # Offense count: 3
479
+ # Configuration parameters: AllowedClasses.
480
+ Style/OneClassPerFile:
481
+ Exclude:
482
+ - 'benchmark/srl_benchmark.rb'
337
483
 
338
484
  # Offense count: 2
339
485
  # This cop supports safe autocorrection (--autocorrect).
340
- Style/RedundantParentheses:
486
+ Style/RedundantStringEscape:
341
487
  Exclude:
342
- - 'lib/expressir/express/parser.rb'
488
+ - 'benchmark/srl_benchmark.rb'
489
+
490
+ # Offense count: 1
491
+ # This cop supports safe autocorrection (--autocorrect).
492
+ Style/RescueModifier:
493
+ Exclude:
494
+ - 'benchmark/srl_benchmark.rb'
343
495
 
344
- # Offense count: 33
496
+ # Offense count: 7
497
+ # This cop supports safe autocorrection (--autocorrect).
498
+ # Configuration parameters: EnforcedStyle.
499
+ # SupportedStyles: implicit, explicit
500
+ Style/RescueStandardError:
501
+ Exclude:
502
+ - 'benchmark/srl_benchmark.rb'
503
+ - 'benchmark/srl_native_benchmark.rb'
504
+ - 'benchmark/srl_ruby_benchmark.rb'
505
+
506
+ # Offense count: 1
507
+ # This cop supports unsafe autocorrection (--autocorrect-all).
508
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
509
+ # AllowedMethods: present?, blank?, presence, try, try!
510
+ Style/SafeNavigation:
511
+ Exclude:
512
+ - 'lib/expressir/model/repository.rb'
513
+
514
+ # Offense count: 2
345
515
  # This cop supports unsafe autocorrection (--autocorrect-all).
346
516
  Style/SelectByKind:
347
517
  Exclude:
348
- - 'lib/expressir/express/builders/function_decl_builder.rb'
349
- - 'lib/expressir/express/builders/procedure_decl_builder.rb'
350
- - 'lib/expressir/express/builders/rule_decl_builder.rb'
351
- - 'lib/expressir/express/builders/schema_decl_builder.rb'
352
- - 'lib/expressir/model/search_engine.rb'
353
- - 'spec/expressir/coverage_spec.rb'
354
- - 'spec/expressir/model/declarations/schema_spec.rb'
518
+ - 'lib/expressir/express/formatters/remark_formatter.rb'
519
+ - 'lib/expressir/model/model_element.rb'
355
520
 
356
- # Offense count: 1
521
+ # Offense count: 25
357
522
  # This cop supports safe autocorrection (--autocorrect).
358
- # Configuration parameters: AllowModifier.
359
- Style/SoleNestedConditional:
523
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
524
+ # SupportedStyles: single_quotes, double_quotes
525
+ Style/StringLiterals:
360
526
  Exclude:
361
- - 'lib/expressir/model/search_engine.rb'
527
+ - 'benchmark/srl_benchmark.rb'
528
+ - 'benchmark/srl_native_benchmark.rb'
529
+ - 'benchmark/srl_ruby_benchmark.rb'
530
+
531
+ # Offense count: 3
532
+ # This cop supports safe autocorrection (--autocorrect).
533
+ # Configuration parameters: EnforcedStyleForMultiline.
534
+ # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
535
+ Style/TrailingCommaInArguments:
536
+ Exclude:
537
+ - 'benchmark/srl_benchmark.rb'
538
+ - 'spec/expressir/express/pretty_formatter_spec.rb'
data/Gemfile CHANGED
@@ -2,10 +2,13 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- # Specify your gem's dependencies in reeper.gemspec
6
5
  gemspec
7
6
 
7
+ # Use released parsanol for native extension
8
+ gem "parsanol", "~> 1.3.5"
9
+
8
10
  gem "canon"
11
+ gem "irb"
9
12
  gem "lutaml-model", github: "lutaml/lutaml-model", branch: "main"
10
13
  gem "openssl", "~> 3.0"
11
14
  gem "rake"