canon 0.1.5 → 0.1.7

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 (136) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +163 -67
  3. data/README.adoc +400 -7
  4. data/docs/Gemfile +9 -0
  5. data/docs/INDEX.adoc +99 -182
  6. data/docs/_config.yml +100 -0
  7. data/docs/advanced/diff-classification.adoc +547 -0
  8. data/docs/advanced/diff-pipeline.adoc +358 -0
  9. data/docs/advanced/index.adoc +214 -0
  10. data/docs/advanced/semantic-diff-report.adoc +390 -0
  11. data/docs/{VERBOSE.adoc → advanced/verbose-mode-architecture.adoc} +51 -53
  12. data/docs/features/diff-formatting/algorithm-specific-output.adoc +533 -0
  13. data/docs/{CHARACTER_VISUALIZATION.adoc → features/diff-formatting/character-visualization.adoc} +23 -62
  14. data/docs/features/diff-formatting/colors-and-symbols.adoc +606 -0
  15. data/docs/features/diff-formatting/context-and-grouping.adoc +490 -0
  16. data/docs/features/diff-formatting/display-filtering.adoc +472 -0
  17. data/docs/features/diff-formatting/index.adoc +140 -0
  18. data/docs/features/environment-configuration/index.adoc +327 -0
  19. data/docs/features/environment-configuration/override-system.adoc +436 -0
  20. data/docs/features/environment-configuration/size-limits.adoc +273 -0
  21. data/docs/features/index.adoc +173 -0
  22. data/docs/features/input-validation/index.adoc +521 -0
  23. data/docs/features/match-options/algorithm-specific-behavior.adoc +365 -0
  24. data/docs/features/match-options/html-policies.adoc +312 -0
  25. data/docs/features/match-options/index.adoc +621 -0
  26. data/docs/getting-started/index.adoc +83 -0
  27. data/docs/getting-started/quick-start.adoc +76 -0
  28. data/docs/guides/choosing-configuration.adoc +689 -0
  29. data/docs/guides/index.adoc +181 -0
  30. data/docs/{CLI.adoc → interfaces/cli/index.adoc} +18 -13
  31. data/docs/interfaces/index.adoc +101 -0
  32. data/docs/{RSPEC.adoc → interfaces/rspec/index.adoc} +242 -31
  33. data/docs/{RUBY_API.adoc → interfaces/ruby-api/index.adoc} +118 -16
  34. data/docs/lychee.toml +65 -0
  35. data/docs/reference/cli-options.adoc +418 -0
  36. data/docs/reference/environment-variables.adoc +375 -0
  37. data/docs/reference/index.adoc +204 -0
  38. data/docs/reference/options-across-interfaces.adoc +417 -0
  39. data/docs/understanding/algorithms/dom-diff.adoc +389 -0
  40. data/docs/understanding/algorithms/index.adoc +314 -0
  41. data/docs/understanding/algorithms/semantic-tree-diff.adoc +533 -0
  42. data/docs/understanding/architecture.adoc +447 -0
  43. data/docs/understanding/comparison-pipeline.adoc +317 -0
  44. data/docs/understanding/formats/html.adoc +380 -0
  45. data/docs/understanding/formats/index.adoc +261 -0
  46. data/docs/understanding/formats/json.adoc +390 -0
  47. data/docs/understanding/formats/xml.adoc +366 -0
  48. data/docs/understanding/formats/yaml.adoc +504 -0
  49. data/docs/understanding/index.adoc +130 -0
  50. data/lib/canon/cli.rb +42 -1
  51. data/lib/canon/commands/diff_command.rb +108 -23
  52. data/lib/canon/comparison/compare_profile.rb +101 -0
  53. data/lib/canon/comparison/comparison_result.rb +41 -2
  54. data/lib/canon/comparison/html_comparator.rb +292 -71
  55. data/lib/canon/comparison/html_compare_profile.rb +117 -0
  56. data/lib/canon/comparison/match_options.rb +42 -4
  57. data/lib/canon/comparison/strategies/base_match_strategy.rb +99 -0
  58. data/lib/canon/comparison/strategies/match_strategy_factory.rb +74 -0
  59. data/lib/canon/comparison/strategies/semantic_tree_match_strategy.rb +220 -0
  60. data/lib/canon/comparison/xml_comparator.rb +695 -91
  61. data/lib/canon/comparison.rb +207 -2
  62. data/lib/canon/config/env_provider.rb +71 -0
  63. data/lib/canon/config/env_schema.rb +58 -0
  64. data/lib/canon/config/override_resolver.rb +55 -0
  65. data/lib/canon/config/type_converter.rb +59 -0
  66. data/lib/canon/config.rb +158 -29
  67. data/lib/canon/data_model.rb +29 -0
  68. data/lib/canon/diff/diff_classifier.rb +74 -14
  69. data/lib/canon/diff/diff_context_builder.rb +41 -0
  70. data/lib/canon/diff/diff_line.rb +18 -2
  71. data/lib/canon/diff/diff_node.rb +18 -3
  72. data/lib/canon/diff/diff_node_mapper.rb +71 -12
  73. data/lib/canon/diff/formatting_detector.rb +53 -0
  74. data/lib/canon/diff_formatter/by_line/base_formatter.rb +60 -5
  75. data/lib/canon/diff_formatter/by_line/html_formatter.rb +68 -16
  76. data/lib/canon/diff_formatter/by_line/json_formatter.rb +0 -37
  77. data/lib/canon/diff_formatter/by_line/simple_formatter.rb +0 -42
  78. data/lib/canon/diff_formatter/by_line/xml_formatter.rb +116 -31
  79. data/lib/canon/diff_formatter/by_line/yaml_formatter.rb +0 -37
  80. data/lib/canon/diff_formatter/by_object/base_formatter.rb +126 -19
  81. data/lib/canon/diff_formatter/by_object/xml_formatter.rb +30 -1
  82. data/lib/canon/diff_formatter/debug_output.rb +7 -1
  83. data/lib/canon/diff_formatter/diff_detail_formatter.rb +674 -57
  84. data/lib/canon/diff_formatter/legend.rb +42 -0
  85. data/lib/canon/diff_formatter.rb +78 -9
  86. data/lib/canon/errors.rb +56 -0
  87. data/lib/canon/formatters/html_formatter_base.rb +35 -1
  88. data/lib/canon/formatters/json_formatter.rb +3 -0
  89. data/lib/canon/formatters/yaml_formatter.rb +3 -0
  90. data/lib/canon/html/data_model.rb +229 -0
  91. data/lib/canon/html.rb +9 -0
  92. data/lib/canon/options/cli_generator.rb +70 -0
  93. data/lib/canon/options/registry.rb +234 -0
  94. data/lib/canon/rspec_matchers.rb +34 -13
  95. data/lib/canon/tree_diff/adapters/html_adapter.rb +316 -0
  96. data/lib/canon/tree_diff/adapters/json_adapter.rb +204 -0
  97. data/lib/canon/tree_diff/adapters/xml_adapter.rb +285 -0
  98. data/lib/canon/tree_diff/adapters/yaml_adapter.rb +213 -0
  99. data/lib/canon/tree_diff/core/attribute_comparator.rb +84 -0
  100. data/lib/canon/tree_diff/core/matching.rb +241 -0
  101. data/lib/canon/tree_diff/core/node_signature.rb +164 -0
  102. data/lib/canon/tree_diff/core/node_weight.rb +135 -0
  103. data/lib/canon/tree_diff/core/tree_node.rb +450 -0
  104. data/lib/canon/tree_diff/matchers/hash_matcher.rb +258 -0
  105. data/lib/canon/tree_diff/matchers/similarity_matcher.rb +168 -0
  106. data/lib/canon/tree_diff/matchers/structural_propagator.rb +242 -0
  107. data/lib/canon/tree_diff/matchers/universal_matcher.rb +220 -0
  108. data/lib/canon/tree_diff/operation_converter.rb +631 -0
  109. data/lib/canon/tree_diff/operations/operation.rb +92 -0
  110. data/lib/canon/tree_diff/operations/operation_detector.rb +626 -0
  111. data/lib/canon/tree_diff/tree_diff_integrator.rb +140 -0
  112. data/lib/canon/tree_diff.rb +33 -0
  113. data/lib/canon/validators/json_validator.rb +3 -1
  114. data/lib/canon/validators/yaml_validator.rb +3 -1
  115. data/lib/canon/version.rb +1 -1
  116. data/lib/canon/xml/data_model.rb +22 -23
  117. data/lib/canon/xml/element_matcher.rb +128 -20
  118. data/lib/canon/xml/namespace_helper.rb +110 -0
  119. data/lib/canon.rb +3 -0
  120. metadata +81 -23
  121. data/_config.yml +0 -116
  122. data/docs/ADVANCED_TOPICS.adoc +0 -20
  123. data/docs/BASIC_USAGE.adoc +0 -16
  124. data/docs/CUSTOMIZING_BEHAVIOR.adoc +0 -19
  125. data/docs/DIFF_ARCHITECTURE.adoc +0 -435
  126. data/docs/DIFF_FORMATTING.adoc +0 -540
  127. data/docs/FORMATS.adoc +0 -447
  128. data/docs/INPUT_VALIDATION.adoc +0 -477
  129. data/docs/MATCH_ARCHITECTURE.adoc +0 -463
  130. data/docs/MATCH_OPTIONS.adoc +0 -719
  131. data/docs/MODES.adoc +0 -432
  132. data/docs/NORMATIVE_INFORMATIVE_DIFFS.adoc +0 -219
  133. data/docs/OPTIONS.adoc +0 -1387
  134. data/docs/PREPROCESSING.adoc +0 -491
  135. data/docs/SEMANTIC_DIFF_REPORT.adoc +0 -528
  136. data/docs/UNDERSTANDING_CANON.adoc +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 05ef38f14f368ca16897f4975fcba636b2245bcaa293837b68bc1983c1541275
4
- data.tar.gz: d2ec278c78f311f76b1d924033421cb70ce6863cea609efc5a1c445f4f871df3
3
+ metadata.gz: 74adcfa8d9b6ab7cc95fba2557dcfecbfa0dbd134e90497a30195fb476de6b42
4
+ data.tar.gz: dab1ef7a6c5fe852b6935561ddb85e2ffdde6edf4463b36cbe2f9deb5251b4f2
5
5
  SHA512:
6
- metadata.gz: d90f20d6139c8b26a6ccdc743e3bc8cb0fe3148e5eac88c02b6e0c1c030b2e459b13df3e024b9087a621fc8976bf04ac948ef629da1055b3e6423612f5628b10
7
- data.tar.gz: c3d36b09194f1d485c09bf570730a544d8ebc6cfcc20780db0a5afa07988caed8b0ba773cdfcf6eaaed68c9ba72ed5a21920dd924eac42f599037f9b52198184
6
+ metadata.gz: 98b8e102b110e5a85363a3ccceb28ffb87082f9695ad0c39b182a1f9f3bca7fc652c471a2134cc621b84d9acfaa858f10aea5c9ddb6a90f5e098ed5b3cd795c5
7
+ data.tar.gz: 1db527549bde5c60b0f45a8d34a59c877ed9b880a9ea80f076b2501319886e1300d036fd5502820d361d06d9a4957a9b648d479aaf98dcf0bc55bb26f9673066
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2025-10-22 14:03:51 UTC using RuboCop version 1.81.6.
3
+ # on 2025-12-22 03:34:50 UTC using RuboCop version 1.81.7.
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
@@ -14,35 +14,94 @@ Gemspec/RequiredRubyVersion:
14
14
 
15
15
  # Offense count: 1
16
16
  # This cop supports safe autocorrection (--autocorrect).
17
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
18
+ # SupportedStyles: with_first_argument, with_fixed_indentation
19
+ Layout/ArgumentAlignment:
20
+ Exclude:
21
+ - 'spec/canon/comparison/multiple_differences_spec.rb'
22
+
23
+ # Offense count: 2
24
+ # This cop supports safe autocorrection (--autocorrect).
17
25
  # Configuration parameters: EnforcedStyleAlignWith.
18
26
  # SupportedStylesAlignWith: either, start_of_block, start_of_line
19
27
  Layout/BlockAlignment:
20
28
  Exclude:
21
29
  - 'lib/canon/diff_formatter/by_line/html_formatter.rb'
30
+ - 'spec/canon/diff/diff_node_mapper_granularity_spec.rb'
31
+
32
+ # Offense count: 1
33
+ # This cop supports safe autocorrection (--autocorrect).
34
+ Layout/BlockEndNewline:
35
+ Exclude:
36
+ - 'spec/canon/diff/diff_node_mapper_granularity_spec.rb'
37
+
38
+ # Offense count: 1
39
+ # This cop supports safe autocorrection (--autocorrect).
40
+ Layout/ElseAlignment:
41
+ Exclude:
42
+ - 'lib/canon/diff_formatter/by_object/base_formatter.rb'
43
+
44
+ # Offense count: 1
45
+ # This cop supports safe autocorrection (--autocorrect).
46
+ # Configuration parameters: EnforcedStyleAlignWith, Severity.
47
+ # SupportedStylesAlignWith: keyword, variable, start_of_line
48
+ Layout/EndAlignment:
49
+ Exclude:
50
+ - 'lib/canon/diff_formatter/by_object/base_formatter.rb'
51
+
52
+ # Offense count: 1
53
+ # This cop supports safe autocorrection (--autocorrect).
54
+ # Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
55
+ Layout/ExtraSpacing:
56
+ Exclude:
57
+ - 'lib/canon/commands/diff_command.rb'
58
+
59
+ # Offense count: 3
60
+ # This cop supports safe autocorrection (--autocorrect).
61
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
62
+ # SupportedHashRocketStyles: key, separator, table
63
+ # SupportedColonStyles: key, separator, table
64
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
65
+ Layout/HashAlignment:
66
+ Exclude:
67
+ - 'spec/canon/comparison/multiple_differences_spec.rb'
22
68
 
23
- # Offense count: 314
69
+ # Offense count: 4
70
+ # This cop supports safe autocorrection (--autocorrect).
71
+ # Configuration parameters: Width, AllowedPatterns.
72
+ Layout/IndentationWidth:
73
+ Exclude:
74
+ - 'lib/canon/diff_formatter/by_object/base_formatter.rb'
75
+ - 'spec/canon/diff/diff_node_mapper_granularity_spec.rb'
76
+
77
+ # Offense count: 654
24
78
  # This cop supports safe autocorrection (--autocorrect).
25
79
  # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
26
80
  # URISchemes: http, https
27
81
  Layout/LineLength:
28
82
  Enabled: false
29
83
 
30
- # Offense count: 29
84
+ # Offense count: 3
85
+ # This cop supports safe autocorrection (--autocorrect).
86
+ # Configuration parameters: EnforcedStyle.
87
+ # SupportedStyles: final_newline, final_blank_line
88
+ Layout/TrailingEmptyLines:
89
+ Exclude:
90
+ - 'spec/canon/commands/diff_command_spec.rb'
91
+ - 'spec/canon/comparison/multiple_differences_spec.rb'
92
+ - 'spec/canon/diff/diff_classifier_spec.rb'
93
+
94
+ # Offense count: 10
95
+ # This cop supports safe autocorrection (--autocorrect).
96
+ # Configuration parameters: AllowInHeredoc.
97
+ Layout/TrailingWhitespace:
98
+ Exclude:
99
+ - 'spec/canon/comparison/multiple_differences_spec.rb'
100
+
101
+ # Offense count: 46
31
102
  # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
32
103
  Lint/DuplicateBranch:
33
- Exclude:
34
- - 'lib/canon/commands/diff_command.rb'
35
- - 'lib/canon/comparison.rb'
36
- - 'lib/canon/comparison/html_comparator.rb'
37
- - 'lib/canon/comparison/xml_comparator.rb'
38
- - 'lib/canon/diff_formatter/by_line/base_formatter.rb'
39
- - 'lib/canon/diff_formatter/by_line/json_formatter.rb'
40
- - 'lib/canon/diff_formatter/by_line/xml_formatter.rb'
41
- - 'lib/canon/diff_formatter/by_line/yaml_formatter.rb'
42
- - 'lib/canon/diff_formatter/by_object/json_formatter.rb'
43
- - 'lib/canon/diff_formatter/debug_output.rb'
44
- - 'lib/canon/diff_formatter/legend.rb'
45
- - 'spec/canon/diff/diff_report_builder_spec.rb'
104
+ Enabled: false
46
105
 
47
106
  # Offense count: 2
48
107
  Lint/DuplicateMethods:
@@ -73,56 +132,63 @@ Lint/UnreachableCode:
73
132
  Exclude:
74
133
  - 'lib/canon/diff_formatter/debug_output.rb'
75
134
 
76
- # Offense count: 4
135
+ # Offense count: 7
77
136
  # This cop supports safe autocorrection (--autocorrect).
78
137
  # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
79
138
  # NotImplementedExceptions: NotImplementedError
80
139
  Lint/UnusedMethodArgument:
81
140
  Exclude:
82
141
  - 'lib/canon/comparison/match_options.rb'
142
+ - 'lib/canon/diff_formatter/by_line/base_formatter.rb'
83
143
  - 'lib/canon/diff_formatter/by_line/xml_formatter.rb'
84
144
  - 'lib/canon/diff_formatter/by_object/base_formatter.rb'
85
145
 
86
- # Offense count: 114
146
+ # Offense count: 219
87
147
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
88
148
  Metrics/AbcSize:
89
149
  Enabled: false
90
150
 
91
- # Offense count: 14
151
+ # Offense count: 27
92
152
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
93
153
  # AllowedMethods: refine
94
154
  Metrics/BlockLength:
95
- Max: 38
155
+ Max: 84
96
156
 
97
- # Offense count: 96
157
+ # Offense count: 2
158
+ # Configuration parameters: CountBlocks, CountModifierForms.
159
+ Metrics/BlockNesting:
160
+ Max: 4
161
+
162
+ # Offense count: 180
98
163
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
99
164
  Metrics/CyclomaticComplexity:
100
165
  Enabled: false
101
166
 
102
- # Offense count: 184
167
+ # Offense count: 347
103
168
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
104
169
  Metrics/MethodLength:
105
- Max: 81
170
+ Max: 107
106
171
 
107
- # Offense count: 17
172
+ # Offense count: 23
108
173
  # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
109
174
  Metrics/ParameterLists:
110
175
  Max: 9
111
176
 
112
- # Offense count: 77
177
+ # Offense count: 142
113
178
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
114
179
  Metrics/PerceivedComplexity:
115
180
  Enabled: false
116
181
 
117
- # Offense count: 24
182
+ # Offense count: 29
118
183
  # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
119
184
  # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
120
185
  Naming/MethodParameterName:
121
186
  Exclude:
122
187
  - 'lib/canon/comparison/xml_comparator.rb'
123
188
  - 'lib/canon/xml/namespace_handler.rb'
189
+ - 'scripts/investigate_all_false_positives.rb'
124
190
 
125
- # Offense count: 1
191
+ # Offense count: 2
126
192
  # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros, UseSorbetSigs.
127
193
  # NamePrefix: is_, has_, have_, does_
128
194
  # ForbiddenPrefixes: is_, has_, have_, does_
@@ -131,6 +197,7 @@ Naming/MethodParameterName:
131
197
  Naming/PredicatePrefix:
132
198
  Exclude:
133
199
  - 'lib/canon/comparison/html_comparator.rb'
200
+ - 'lib/canon/comparison/xml_comparator.rb'
134
201
 
135
202
  # Offense count: 2
136
203
  # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
@@ -140,53 +207,32 @@ Naming/VariableNumber:
140
207
  Exclude:
141
208
  - 'lib/canon/comparison/json_comparator.rb'
142
209
 
143
- # Offense count: 2
210
+ # Offense count: 4
144
211
  # Configuration parameters: MinSize.
145
212
  Performance/CollectionLiteralInLoop:
146
213
  Exclude:
214
+ - 'lib/canon/comparison/html_comparator.rb'
147
215
  - 'lib/canon/diff_formatter/diff_detail_formatter.rb'
148
216
  - 'lib/canon/xml/xml_base_handler.rb'
149
217
 
150
- # Offense count: 29
218
+ # Offense count: 58
151
219
  # Configuration parameters: Prefixes, AllowedPatterns.
152
220
  # Prefixes: when, with, without
153
221
  RSpec/ContextWording:
154
- Exclude:
155
- - 'spec/canon/comparison/match_options_spec.rb'
156
- - 'spec/canon/comparison/yaml_comparator_spec.rb'
157
- - 'spec/canon/comparison_spec.rb'
158
- - 'spec/canon/diff/diff_context_builder_spec.rb'
159
- - 'spec/canon/diff/diff_report_builder_spec.rb'
160
- - 'spec/canon/fixtures_integrity_spec.rb'
161
- - 'spec/canon/informative_diffs_debug_spec.rb'
162
- - 'spec/canon/match_profiles_integration_spec.rb'
163
- - 'spec/canon/rspec_matchers_spec.rb'
164
- - 'spec/canon/xml/c14n_spec.rb'
165
- - 'spec/canon/xml/c14n_w3c_examples_spec.rb'
222
+ Enabled: false
166
223
 
167
- # Offense count: 12
224
+ # Offense count: 24
168
225
  # Configuration parameters: IgnoredMetadata.
169
226
  RSpec/DescribeClass:
170
- Exclude:
171
- - 'spec/canon/compressed_multiline_bug_spec.rb'
172
- - 'spec/canon/context_grouping_spec.rb'
173
- - 'spec/canon/fixtures_integrity_spec.rb'
174
- - 'spec/canon/html/matcher_spec.rb'
175
- - 'spec/canon/html/rendered_whitespace_spec.rb'
176
- - 'spec/canon/informative_diffs_debug_spec.rb'
177
- - 'spec/canon/isodoc_attribute_order_spec.rb'
178
- - 'spec/canon/isodoc_blockquotes_spec.rb'
179
- - 'spec/canon/match_profiles_integration_spec.rb'
180
- - 'spec/canon/match_scenarios_spec.rb'
181
- - 'spec/canon/string_matcher_spec.rb'
182
- - 'spec/canon/xml_isodoc_spec.rb'
227
+ Enabled: false
183
228
 
184
- # Offense count: 1
229
+ # Offense count: 2
185
230
  RSpec/DescribeMethod:
186
231
  Exclude:
232
+ - 'spec/canon/comparison/multiple_differences_spec.rb'
187
233
  - 'spec/canon/diff_formatter/character_map_customization_spec.rb'
188
234
 
189
- # Offense count: 306
235
+ # Offense count: 592
190
236
  # Configuration parameters: CountAsOne.
191
237
  RSpec/ExampleLength:
192
238
  Max: 67
@@ -200,14 +246,22 @@ RSpec/ExpectActual:
200
246
  - 'spec/canon/rspec_matchers_spec.rb'
201
247
  - 'spec/canon/string_matcher_spec.rb'
202
248
 
203
- # Offense count: 97
249
+ # Offense count: 171
204
250
  # Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
205
251
  RSpec/IndexedLet:
206
252
  Exclude:
253
+ - 'spec/canon/comparison/multiple_differences_spec.rb'
254
+ - 'spec/canon/comparison/namespace_equivalence_spec.rb'
207
255
  - 'spec/canon/diff/diff_context_spec.rb'
208
256
  - 'spec/canon/diff/diff_report_spec.rb'
209
257
  - 'spec/canon/diff_formatter/character_map_customization_spec.rb'
258
+ - 'spec/canon/diff_formatter/informative_diff_visualization_spec.rb'
259
+ - 'spec/canon/diff_formatter/namespace_rendering_spec.rb'
260
+ - 'spec/canon/diff_formatter/show_diffs_filtering_spec.rb'
210
261
  - 'spec/canon/rspec_matchers_spec.rb'
262
+ - 'spec/canon/semantic_diff_integration_spec.rb'
263
+ - 'spec/canon/tree_diff/matchers/universal_matcher_spec.rb'
264
+ - 'spec/canon/tree_diff/operations/operation_detector_spec.rb'
211
265
 
212
266
  # Offense count: 4
213
267
  # Configuration parameters: AssignmentOnly.
@@ -215,22 +269,26 @@ RSpec/InstanceVariable:
215
269
  Exclude:
216
270
  - 'spec/canon/rspec_matchers_spec.rb'
217
271
 
218
- # Offense count: 15
219
- # Configuration parameters: .
272
+ # Offense count: 16
273
+ # Configuration parameters: EnforcedStyle.
220
274
  # SupportedStyles: have_received, receive
221
275
  RSpec/MessageSpies:
222
- EnforcedStyle: receive
276
+ Exclude:
277
+ - 'spec/canon/comparison/yaml_comparator_spec.rb'
278
+ - 'spec/canon/diff/diff_classifier_spec.rb'
279
+ - 'spec/canon_spec.rb'
280
+ - 'spec/xml_c14n_spec.rb'
223
281
 
224
282
  # Offense count: 1
225
283
  RSpec/MultipleDescribes:
226
284
  Exclude:
227
285
  - 'spec/canon/comparison/match_options_spec.rb'
228
286
 
229
- # Offense count: 251
287
+ # Offense count: 489
230
288
  RSpec/MultipleExpectations:
231
289
  Max: 15
232
290
 
233
- # Offense count: 61
291
+ # Offense count: 66
234
292
  # Configuration parameters: AllowSubject.
235
293
  RSpec/MultipleMemoizedHelpers:
236
294
  Max: 13
@@ -244,7 +302,7 @@ RSpec/NamedSubject:
244
302
  - 'spec/canon/pretty_printer/json_spec.rb'
245
303
  - 'spec/canon/pretty_printer/xml_spec.rb'
246
304
 
247
- # Offense count: 24
305
+ # Offense count: 29
248
306
  # Configuration parameters: AllowedGroups.
249
307
  RSpec/NestedGroups:
250
308
  Max: 4
@@ -259,10 +317,12 @@ RSpec/NoExpectationExample:
259
317
  - 'spec/canon/isodoc_blockquotes_spec.rb'
260
318
  - 'spec/canon/match_scenarios_spec.rb'
261
319
 
262
- # Offense count: 6
263
- # Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata.
320
+ # Offense count: 7
321
+ # Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector.
322
+ # SupportedInflectors: default, active_support
264
323
  RSpec/SpecFilePathFormat:
265
324
  Exclude:
325
+ - 'spec/canon/comparison/multiple_differences_spec.rb'
266
326
  - 'spec/canon/html/formatter_spec.rb'
267
327
  - 'spec/canon/json/formatter_spec.rb'
268
328
  - 'spec/canon/rspec_matchers_spec.rb'
@@ -270,6 +330,32 @@ RSpec/SpecFilePathFormat:
270
330
  - 'spec/canon/yaml/formatter_spec.rb'
271
331
  - 'spec/xml_c14n_spec.rb'
272
332
 
333
+ # Offense count: 68
334
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
335
+ RSpec/VerifiedDoubles:
336
+ Exclude:
337
+ - 'spec/canon/diff/diff_classifier_spec.rb'
338
+ - 'spec/canon/tree_diff/operation_converter_spec.rb'
339
+
340
+ # Offense count: 1
341
+ # This cop supports safe autocorrection (--autocorrect).
342
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
343
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
344
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
345
+ # FunctionalMethods: let, let!, subject, watch
346
+ # AllowedMethods: lambda, proc, it
347
+ Style/BlockDelimiters:
348
+ Exclude:
349
+ - 'spec/canon/diff/diff_node_mapper_granularity_spec.rb'
350
+
351
+ # Offense count: 1
352
+ # This cop supports safe autocorrection (--autocorrect).
353
+ # Configuration parameters: EnforcedStyle, AllowComments.
354
+ # SupportedStyles: empty, nil, both
355
+ Style/EmptyElse:
356
+ Exclude:
357
+ - 'lib/canon/diff_formatter/diff_detail_formatter.rb'
358
+
273
359
  # Offense count: 3
274
360
  # Configuration parameters: MinBranchesCount.
275
361
  Style/HashLikeCase:
@@ -277,10 +363,11 @@ Style/HashLikeCase:
277
363
  - 'lib/canon/diff/diff_block_builder.rb'
278
364
  - 'lib/canon/xml/character_encoder.rb'
279
365
 
280
- # Offense count: 2
366
+ # Offense count: 4
281
367
  # This cop supports unsafe autocorrection (--autocorrect-all).
282
368
  Style/IdenticalConditionalBranches:
283
369
  Exclude:
370
+ - 'lib/canon/diff_formatter/by_object/base_formatter.rb'
284
371
  - 'lib/canon/diff_formatter/legend.rb'
285
372
 
286
373
  # Offense count: 1
@@ -296,3 +383,12 @@ Style/OptionalBooleanParameter:
296
383
  Style/StringConcatenation:
297
384
  Exclude:
298
385
  - 'lib/canon/diff_formatter/diff_detail_formatter.rb'
386
+
387
+ # Offense count: 6
388
+ # This cop supports safe autocorrection (--autocorrect).
389
+ # Configuration parameters: EnforcedStyleForMultiline.
390
+ # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
391
+ Style/TrailingCommaInArguments:
392
+ Exclude:
393
+ - 'lib/canon/commands/diff_command.rb'
394
+ - 'spec/canon/commands/diff_command_spec.rb'