ast-merge 4.0.6 → 7.1.1

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 (176) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/LICENSE.md +13 -0
  4. data/README.md +222 -635
  5. data/lib/ast/merge/ast_node.rb +25 -13
  6. data/lib/ast/merge/block_directive.rb +109 -0
  7. data/lib/ast/merge/comment/README.md +110 -0
  8. data/lib/ast/merge/comment/attachment.rb +128 -0
  9. data/lib/ast/merge/comment/augmenter.rb +414 -0
  10. data/lib/ast/merge/comment/block.rb +40 -18
  11. data/lib/ast/merge/comment/c_style_tracker_base.rb +446 -0
  12. data/lib/ast/merge/comment/capability.rb +162 -0
  13. data/lib/ast/merge/comment/empty.rb +4 -4
  14. data/lib/ast/merge/comment/hash_tracker_base.rb +516 -0
  15. data/lib/ast/merge/comment/line.rb +28 -9
  16. data/lib/ast/merge/comment/parser.rb +18 -22
  17. data/lib/ast/merge/comment/quoted_hash_line_parser.rb +127 -0
  18. data/lib/ast/merge/comment/region.rb +173 -0
  19. data/lib/ast/merge/comment/region_merge_policy.rb +117 -0
  20. data/lib/ast/merge/comment/style.rb +25 -27
  21. data/lib/ast/merge/comment/support_style.rb +152 -0
  22. data/lib/ast/merge/comment/tracked_hash_adapter.rb +139 -0
  23. data/lib/ast/merge/comment.rb +15 -5
  24. data/lib/ast/merge/comment_layout_emission_support.rb +376 -0
  25. data/lib/ast/merge/composite_match_refiner.rb +95 -0
  26. data/lib/ast/merge/conflict_resolver_base.rb +30 -27
  27. data/lib/ast/merge/content_match_refiner.rb +8 -10
  28. data/lib/ast/merge/debug_logger.rb +38 -22
  29. data/lib/ast/merge/detector/README.md +126 -0
  30. data/lib/ast/merge/detector/base.rb +13 -13
  31. data/lib/ast/merge/detector/fenced_code_block.rb +24 -24
  32. data/lib/ast/merge/detector/mergeable.rb +12 -11
  33. data/lib/ast/merge/detector/toml_frontmatter.rb +2 -2
  34. data/lib/ast/merge/detector/yaml_frontmatter.rb +2 -2
  35. data/lib/ast/merge/diff_mapper_base.rb +23 -23
  36. data/lib/ast/merge/emitter_base.rb +287 -4
  37. data/lib/ast/merge/emitter_line_metadata_support.rb +46 -0
  38. data/lib/ast/merge/file_aligner_base.rb +271 -0
  39. data/lib/ast/merge/file_analyzable.rb +506 -58
  40. data/lib/ast/merge/freeze_node_base.rb +24 -14
  41. data/lib/ast/merge/healer.rb +64 -0
  42. data/lib/ast/merge/jaccard_similarity.rb +96 -0
  43. data/lib/ast/merge/key_path_partial_template_merger_base.rb +230 -0
  44. data/lib/ast/merge/layout/README.md +138 -0
  45. data/lib/ast/merge/layout/attachment.rb +48 -0
  46. data/lib/ast/merge/layout/augmenter.rb +182 -0
  47. data/lib/ast/merge/layout/gap.rb +241 -0
  48. data/lib/ast/merge/layout/policy.rb +59 -0
  49. data/lib/ast/merge/layout.rb +40 -0
  50. data/lib/ast/merge/line_range_support.rb +43 -0
  51. data/lib/ast/merge/match_refiner_base.rb +4 -4
  52. data/lib/ast/merge/match_score_base.rb +1 -1
  53. data/lib/ast/merge/merge_result_base.rb +374 -4
  54. data/lib/ast/merge/merger_config.rb +60 -11
  55. data/lib/ast/merge/navigable/injection_point.rb +3 -3
  56. data/lib/ast/merge/navigable/injection_point_finder.rb +6 -4
  57. data/lib/ast/merge/navigable/statement.rb +8 -9
  58. data/lib/ast/merge/navigable.rb +3 -3
  59. data/lib/ast/merge/node_typing/normalizer.rb +4 -0
  60. data/lib/ast/merge/node_typing.rb +12 -14
  61. data/lib/ast/merge/node_wrapper_base.rb +89 -7
  62. data/lib/ast/merge/owner_selection.rb +62 -0
  63. data/lib/ast/merge/partial_template_merger_base.rb +139 -22
  64. data/lib/ast/merge/recipe/README.md +233 -0
  65. data/lib/ast/merge/recipe/config.rb +311 -27
  66. data/lib/ast/merge/recipe/preset.rb +37 -19
  67. data/lib/ast/merge/recipe/runner.rb +522 -91
  68. data/lib/ast/merge/recipe/script_loader.rb +22 -11
  69. data/lib/ast/merge/recipe.rb +4 -4
  70. data/lib/ast/merge/rspec/README.md +251 -0
  71. data/lib/ast/merge/rspec/comment_behavior_matrix_adapters.rb +79 -0
  72. data/lib/ast/merge/rspec/conformance_fixtures.rb +67 -0
  73. data/lib/ast/merge/rspec/dependency_tags.rb +9 -2
  74. data/lib/ast/merge/rspec/dependency_tags_config.rb +15 -4
  75. data/lib/ast/merge/rspec/dependency_tags_helpers.rb +1 -1
  76. data/lib/ast/merge/rspec/merge_gem_registry.rb +52 -119
  77. data/lib/ast/merge/rspec/setup.rb +12 -6
  78. data/lib/ast/merge/rspec/shared_examples/comment_attachment.rb +35 -0
  79. data/lib/ast/merge/rspec/shared_examples/comment_augmenter.rb +36 -0
  80. data/lib/ast/merge/rspec/shared_examples/comment_behavior_matrix.rb +680 -0
  81. data/lib/ast/merge/rspec/shared_examples/comment_region.rb +32 -0
  82. data/lib/ast/merge/rspec/shared_examples/conflict_resolver_base.rb +103 -102
  83. data/lib/ast/merge/rspec/shared_examples/debug_logger.rb +55 -55
  84. data/lib/ast/merge/rspec/shared_examples/feature_profile.rb +88 -0
  85. data/lib/ast/merge/rspec/shared_examples/file_analyzable.rb +95 -37
  86. data/lib/ast/merge/rspec/shared_examples/freeze_node_base.rb +62 -62
  87. data/lib/ast/merge/rspec/shared_examples/layout_attachment.rb +33 -0
  88. data/lib/ast/merge/rspec/shared_examples/layout_augmenter.rb +33 -0
  89. data/lib/ast/merge/rspec/shared_examples/merge_result_base.rb +27 -27
  90. data/lib/ast/merge/rspec/shared_examples/merger_config.rb +114 -50
  91. data/lib/ast/merge/rspec/shared_examples/recipe_preset_contract.rb +71 -0
  92. data/lib/ast/merge/rspec/shared_examples/recursive_retained_blank_gap_compliance.rb +44 -0
  93. data/lib/ast/merge/rspec/shared_examples/removal_mode_compliance.rb +66 -0
  94. data/lib/ast/merge/rspec/shared_examples/reproducible_merge.rb +13 -13
  95. data/lib/ast/merge/rspec/shared_examples/reproducible_partial_merge.rb +63 -0
  96. data/lib/ast/merge/rspec/shared_examples/retained_blank_gap_compliance.rb +44 -0
  97. data/lib/ast/merge/rspec/shared_examples/runtime_debug_contract.rb +63 -0
  98. data/lib/ast/merge/rspec/shared_examples/tree_haver_backend_contract.rb +19 -0
  99. data/lib/ast/merge/rspec/shared_examples/unresolved_helper_contract.rb +157 -0
  100. data/lib/ast/merge/rspec/shared_examples/unresolved_review_state_transport_contract.rb +102 -0
  101. data/lib/ast/merge/rspec/shared_examples/unresolved_runtime_contract.rb +58 -0
  102. data/lib/ast/merge/rspec/shared_examples/unresolved_runtime_debug_contract.rb +33 -0
  103. data/lib/ast/merge/rspec/shared_examples.rb +44 -7
  104. data/lib/ast/merge/rspec.rb +11 -4
  105. data/lib/ast/merge/ruleset/config.rb +125 -0
  106. data/lib/ast/merge/ruleset/delegation_policy.rb +26 -0
  107. data/lib/ast/merge/ruleset/feature_profile.rb +194 -0
  108. data/lib/ast/merge/ruleset/logical_owner_policy.rb +53 -0
  109. data/lib/ast/merge/ruleset/parser.rb +261 -0
  110. data/lib/ast/merge/ruleset/profile_vocabulary.rb +128 -0
  111. data/lib/ast/merge/ruleset/repair_policy.rb +26 -0
  112. data/lib/ast/merge/ruleset/runtime_declaration.rb +67 -0
  113. data/lib/ast/merge/ruleset/runtime_translator.rb +60 -0
  114. data/lib/ast/merge/ruleset/support_style_resolver.rb +37 -0
  115. data/lib/ast/merge/ruleset/surface_declaration.rb +26 -0
  116. data/lib/ast/merge/ruleset.rb +20 -0
  117. data/lib/ast/merge/runtime/child_result.rb +60 -0
  118. data/lib/ast/merge/runtime/delegate.rb +125 -0
  119. data/lib/ast/merge/runtime/delegation_registry.rb +52 -0
  120. data/lib/ast/merge/runtime/diagnostic.rb +40 -0
  121. data/lib/ast/merge/runtime/frame.rb +41 -0
  122. data/lib/ast/merge/runtime/operation.rb +116 -0
  123. data/lib/ast/merge/runtime/resolution_case.rb +94 -0
  124. data/lib/ast/merge/runtime/root_session_support.rb +108 -0
  125. data/lib/ast/merge/runtime/session.rb +122 -0
  126. data/lib/ast/merge/runtime/surface.rb +68 -0
  127. data/lib/ast/merge/runtime.rb +20 -0
  128. data/lib/ast/merge/section_typing.rb +12 -9
  129. data/lib/ast/merge/smart_merger_base.rb +37 -9
  130. data/lib/ast/merge/source_region_report_support.rb +243 -0
  131. data/lib/ast/merge/structural_edit/README.md +145 -0
  132. data/lib/ast/merge/structural_edit/boundary.rb +75 -0
  133. data/lib/ast/merge/structural_edit/boundary_support.rb +90 -0
  134. data/lib/ast/merge/structural_edit/plan_set.rb +135 -0
  135. data/lib/ast/merge/structural_edit/rehome_plan.rb +141 -0
  136. data/lib/ast/merge/structural_edit/remove_plan.rb +297 -0
  137. data/lib/ast/merge/structural_edit/remove_plan_support.rb +59 -0
  138. data/lib/ast/merge/structural_edit/splice_plan.rb +179 -0
  139. data/lib/ast/merge/structural_edit.rb +20 -0
  140. data/lib/ast/merge/structured_emitter_provenance_support.rb +44 -0
  141. data/lib/ast/merge/structured_review_apply_support.rb +80 -0
  142. data/lib/ast/merge/text/README.md +127 -0
  143. data/lib/ast/merge/text/conflict_resolver.rb +116 -27
  144. data/lib/ast/merge/text/file_analysis.rb +33 -10
  145. data/lib/ast/merge/text/line_node.rb +5 -5
  146. data/lib/ast/merge/text/merge_result.rb +1 -1
  147. data/lib/ast/merge/text/section.rb +7 -4
  148. data/lib/ast/merge/text/section_splitter.rb +15 -12
  149. data/lib/ast/merge/text/smart_merger.rb +11 -2
  150. data/lib/ast/merge/text/word_node.rb +3 -3
  151. data/lib/ast/merge/text.rb +10 -10
  152. data/lib/ast/merge/token_match_refiner.rb +98 -0
  153. data/lib/ast/merge/trailing_groups/alignment_sort.rb +96 -0
  154. data/lib/ast/merge/trailing_groups/core.rb +167 -0
  155. data/lib/ast/merge/trailing_groups/dest_iterate.rb +129 -0
  156. data/lib/ast/merge/trailing_groups.rb +66 -0
  157. data/lib/ast/merge/unresolved_policy.rb +78 -0
  158. data/lib/ast/merge/unresolved_review_state.rb +58 -0
  159. data/lib/ast/merge/unresolved_support.rb +149 -0
  160. data/lib/ast/merge/version.rb +5 -4
  161. data/lib/ast/merge.rb +6340 -137
  162. data/lib/ast-merge.rb +9 -4
  163. data/sig/ast/merge.rbs +3 -628
  164. data.tar.gz.sig +0 -0
  165. metadata +193 -98
  166. metadata.gz.sig +0 -0
  167. data/CHANGELOG.md +0 -824
  168. data/CITATION.cff +0 -20
  169. data/CODE_OF_CONDUCT.md +0 -134
  170. data/CONTRIBUTING.md +0 -227
  171. data/FUNDING.md +0 -74
  172. data/LICENSE.txt +0 -21
  173. data/REEK +0 -0
  174. data/RUBOCOP.md +0 -71
  175. data/SECURITY.md +0 -21
  176. data/exe/ast-merge-recipe +0 -396
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c6195a4da7564ab37a990e096c2ad2a95647293a113cd6a9c0a25da9c9e175a
4
- data.tar.gz: 38fc39a0789a921e7495dce2df0f5c3667676cf1d6906fb4a14dc91d1c45e9df
3
+ metadata.gz: 53af222230e0da319b5ce6c90f04ef191a056cbd9b315a7a401ccec334ad63dc
4
+ data.tar.gz: 325aef3c7cd4d4f4d3828a298077f735e82a9548ec0c0e278f94d7735e4d46da
5
5
  SHA512:
6
- metadata.gz: 605604e5393c89ef63c96d37480fe221a53592f830faea7671cbb39cfeb85393a5412dcbabfff8ec573cb1192c820027deb004ab83f41d2cb4045bb0b520333d
7
- data.tar.gz: 482144a4ae025abf33c210fab227a261fc408e93ed3068f913e3fe1b56a6f1e2789c83fdf3bf4bcb95587d1b1f5a344b878dfd3eccc765125210e6624298ccfa
6
+ metadata.gz: 53212145e26102bc9820d9c435ae916fcb60405ae41e7cb7d5ccb86153d4ad2c28c5d849edce6f3f3e5ff5b0a6e5959cdff554801a34d1316364c04d65e4630a
7
+ data.tar.gz: 5bf7767dfc083a96c0857589647cf1046d904338dd77c44193286300f501e55827235dd4a12f0fd90baed5125faf4c89afd220f64a49187fa88f65c66e8b5b46
checksums.yaml.gz.sig CHANGED
Binary file
data/LICENSE.md ADDED
@@ -0,0 +1,13 @@
1
+ # License
2
+
3
+ This project is made available under the following licenses.
4
+ Choose the option that best fits your use case:
5
+
6
+ - [AGPL-3.0-only](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/AGPL-3.0-only.md)
7
+ - [PolyForm-Small-Business-1.0.0](https://github.com/structuredmerge/structuredmerge-ruby/blob/main/PolyForm-Small-Business-1.0.0.md)
8
+
9
+ If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
10
+
11
+ ## Copyright Notice
12
+
13
+ - Required Notice: Copyright (c) 2026 Peter H. Boling