ast-merge 7.0.0 → 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 (169) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +3 -3
  3. data/LICENSE.md +13 -0
  4. data/README.md +689 -0
  5. data/lib/ast/merge/ast_node.rb +295 -0
  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 +220 -0
  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 +82 -0
  14. data/lib/ast/merge/comment/hash_tracker_base.rb +516 -0
  15. data/lib/ast/merge/comment/line.rb +160 -0
  16. data/lib/ast/merge/comment/parser.rb +271 -0
  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 +280 -0
  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 +46 -0
  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 +455 -0
  27. data/lib/ast/merge/content_match_refiner.rb +265 -0
  28. data/lib/ast/merge/debug_logger.rb +291 -0
  29. data/lib/ast/merge/detector/README.md +126 -0
  30. data/lib/ast/merge/detector/base.rb +193 -0
  31. data/lib/ast/merge/detector/fenced_code_block.rb +227 -0
  32. data/lib/ast/merge/detector/mergeable.rb +370 -0
  33. data/lib/ast/merge/detector/toml_frontmatter.rb +82 -0
  34. data/lib/ast/merge/detector/yaml_frontmatter.rb +82 -0
  35. data/lib/ast/merge/diff_mapper_base.rb +245 -0
  36. data/lib/ast/merge/emitter_base.rb +406 -0
  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 +759 -0
  40. data/lib/ast/merge/freezable.rb +82 -0
  41. data/lib/ast/merge/freeze_node_base.rb +451 -0
  42. data/lib/ast/merge/healer.rb +64 -0
  43. data/lib/ast/merge/jaccard_similarity.rb +96 -0
  44. data/lib/ast/merge/key_path_partial_template_merger_base.rb +230 -0
  45. data/lib/ast/merge/layout/README.md +138 -0
  46. data/lib/ast/merge/layout/attachment.rb +48 -0
  47. data/lib/ast/merge/layout/augmenter.rb +182 -0
  48. data/lib/ast/merge/layout/gap.rb +241 -0
  49. data/lib/ast/merge/layout/policy.rb +59 -0
  50. data/lib/ast/merge/layout.rb +40 -0
  51. data/lib/ast/merge/line_range_support.rb +43 -0
  52. data/lib/ast/merge/match_refiner_base.rb +312 -0
  53. data/lib/ast/merge/match_score_base.rb +135 -0
  54. data/lib/ast/merge/merge_result_base.rb +542 -0
  55. data/lib/ast/merge/merger_config.rb +309 -0
  56. data/lib/ast/merge/navigable/injection_point.rb +132 -0
  57. data/lib/ast/merge/navigable/injection_point_finder.rb +100 -0
  58. data/lib/ast/merge/navigable/statement.rb +379 -0
  59. data/lib/ast/merge/navigable.rb +20 -0
  60. data/lib/ast/merge/node_typing/frozen_wrapper.rb +99 -0
  61. data/lib/ast/merge/node_typing/normalizer.rb +201 -0
  62. data/lib/ast/merge/node_typing/wrapper.rb +77 -0
  63. data/lib/ast/merge/node_typing.rb +235 -0
  64. data/lib/ast/merge/node_wrapper_base.rb +349 -0
  65. data/lib/ast/merge/owner_selection.rb +62 -0
  66. data/lib/ast/merge/partial_template_merger_base.rb +465 -0
  67. data/lib/ast/merge/recipe/README.md +233 -0
  68. data/lib/ast/merge/recipe/config.rb +481 -0
  69. data/lib/ast/merge/recipe/preset.rb +220 -0
  70. data/lib/ast/merge/recipe/runner.rb +724 -0
  71. data/lib/ast/merge/recipe/script_loader.rb +192 -0
  72. data/lib/ast/merge/recipe.rb +26 -0
  73. data/lib/ast/merge/rspec/README.md +251 -0
  74. data/lib/ast/merge/rspec/comment_behavior_matrix_adapters.rb +79 -0
  75. data/lib/ast/merge/rspec/conformance_fixtures.rb +67 -0
  76. data/lib/ast/merge/rspec/dependency_tags.rb +42 -0
  77. data/lib/ast/merge/rspec/dependency_tags_config.rb +85 -0
  78. data/lib/ast/merge/rspec/dependency_tags_helpers.rb +56 -0
  79. data/lib/ast/merge/rspec/merge_gem_registry.rb +387 -0
  80. data/lib/ast/merge/rspec/setup.rb +30 -0
  81. data/lib/ast/merge/rspec/shared_examples/comment_attachment.rb +35 -0
  82. data/lib/ast/merge/rspec/shared_examples/comment_augmenter.rb +36 -0
  83. data/lib/ast/merge/rspec/shared_examples/comment_behavior_matrix.rb +680 -0
  84. data/lib/ast/merge/rspec/shared_examples/comment_region.rb +32 -0
  85. data/lib/ast/merge/rspec/shared_examples/conflict_resolver_base.rb +491 -0
  86. data/lib/ast/merge/rspec/shared_examples/debug_logger.rb +180 -0
  87. data/lib/ast/merge/rspec/shared_examples/feature_profile.rb +88 -0
  88. data/lib/ast/merge/rspec/shared_examples/file_analyzable.rb +251 -0
  89. data/lib/ast/merge/rspec/shared_examples/freeze_node_base.rb +219 -0
  90. data/lib/ast/merge/rspec/shared_examples/layout_attachment.rb +33 -0
  91. data/lib/ast/merge/rspec/shared_examples/layout_augmenter.rb +33 -0
  92. data/lib/ast/merge/rspec/shared_examples/merge_result_base.rb +106 -0
  93. data/lib/ast/merge/rspec/shared_examples/merger_config.rb +266 -0
  94. data/lib/ast/merge/rspec/shared_examples/recipe_preset_contract.rb +71 -0
  95. data/lib/ast/merge/rspec/shared_examples/recursive_retained_blank_gap_compliance.rb +44 -0
  96. data/lib/ast/merge/rspec/shared_examples/removal_mode_compliance.rb +66 -0
  97. data/lib/ast/merge/rspec/shared_examples/reproducible_merge.rb +116 -0
  98. data/lib/ast/merge/rspec/shared_examples/reproducible_partial_merge.rb +63 -0
  99. data/lib/ast/merge/rspec/shared_examples/retained_blank_gap_compliance.rb +44 -0
  100. data/lib/ast/merge/rspec/shared_examples/runtime_debug_contract.rb +63 -0
  101. data/lib/ast/merge/rspec/shared_examples/tree_haver_backend_contract.rb +19 -0
  102. data/lib/ast/merge/rspec/shared_examples/unresolved_helper_contract.rb +157 -0
  103. data/lib/ast/merge/rspec/shared_examples/unresolved_review_state_transport_contract.rb +102 -0
  104. data/lib/ast/merge/rspec/shared_examples/unresolved_runtime_contract.rb +58 -0
  105. data/lib/ast/merge/rspec/shared_examples/unresolved_runtime_debug_contract.rb +33 -0
  106. data/lib/ast/merge/rspec/shared_examples.rb +63 -0
  107. data/lib/ast/merge/rspec.rb +42 -0
  108. data/lib/ast/merge/ruleset/config.rb +125 -0
  109. data/lib/ast/merge/ruleset/delegation_policy.rb +26 -0
  110. data/lib/ast/merge/ruleset/feature_profile.rb +194 -0
  111. data/lib/ast/merge/ruleset/logical_owner_policy.rb +53 -0
  112. data/lib/ast/merge/ruleset/parser.rb +261 -0
  113. data/lib/ast/merge/ruleset/profile_vocabulary.rb +128 -0
  114. data/lib/ast/merge/ruleset/repair_policy.rb +26 -0
  115. data/lib/ast/merge/ruleset/runtime_declaration.rb +67 -0
  116. data/lib/ast/merge/ruleset/runtime_translator.rb +60 -0
  117. data/lib/ast/merge/ruleset/support_style_resolver.rb +37 -0
  118. data/lib/ast/merge/ruleset/surface_declaration.rb +26 -0
  119. data/lib/ast/merge/ruleset.rb +20 -0
  120. data/lib/ast/merge/runtime/child_result.rb +60 -0
  121. data/lib/ast/merge/runtime/delegate.rb +125 -0
  122. data/lib/ast/merge/runtime/delegation_registry.rb +52 -0
  123. data/lib/ast/merge/runtime/diagnostic.rb +40 -0
  124. data/lib/ast/merge/runtime/frame.rb +41 -0
  125. data/lib/ast/merge/runtime/operation.rb +116 -0
  126. data/lib/ast/merge/runtime/resolution_case.rb +94 -0
  127. data/lib/ast/merge/runtime/root_session_support.rb +108 -0
  128. data/lib/ast/merge/runtime/session.rb +122 -0
  129. data/lib/ast/merge/runtime/surface.rb +68 -0
  130. data/lib/ast/merge/runtime.rb +20 -0
  131. data/lib/ast/merge/section_typing.rb +308 -0
  132. data/lib/ast/merge/smart_merger_base.rb +528 -0
  133. data/lib/ast/merge/source_region_report_support.rb +243 -0
  134. data/lib/ast/merge/structural_edit/README.md +145 -0
  135. data/lib/ast/merge/structural_edit/boundary.rb +75 -0
  136. data/lib/ast/merge/structural_edit/boundary_support.rb +90 -0
  137. data/lib/ast/merge/structural_edit/plan_set.rb +135 -0
  138. data/lib/ast/merge/structural_edit/rehome_plan.rb +141 -0
  139. data/lib/ast/merge/structural_edit/remove_plan.rb +297 -0
  140. data/lib/ast/merge/structural_edit/remove_plan_support.rb +59 -0
  141. data/lib/ast/merge/structural_edit/splice_plan.rb +179 -0
  142. data/lib/ast/merge/structural_edit.rb +20 -0
  143. data/lib/ast/merge/structured_emitter_provenance_support.rb +44 -0
  144. data/lib/ast/merge/structured_review_apply_support.rb +80 -0
  145. data/lib/ast/merge/text/README.md +127 -0
  146. data/lib/ast/merge/text/conflict_resolver.rb +250 -0
  147. data/lib/ast/merge/text/file_analysis.rb +188 -0
  148. data/lib/ast/merge/text/line_node.rb +173 -0
  149. data/lib/ast/merge/text/merge_result.rb +42 -0
  150. data/lib/ast/merge/text/section.rb +96 -0
  151. data/lib/ast/merge/text/section_splitter.rb +402 -0
  152. data/lib/ast/merge/text/smart_merger.rb +150 -0
  153. data/lib/ast/merge/text/word_node.rb +117 -0
  154. data/lib/ast/merge/text.rb +35 -0
  155. data/lib/ast/merge/token_match_refiner.rb +98 -0
  156. data/lib/ast/merge/trailing_groups/alignment_sort.rb +96 -0
  157. data/lib/ast/merge/trailing_groups/core.rb +167 -0
  158. data/lib/ast/merge/trailing_groups/dest_iterate.rb +129 -0
  159. data/lib/ast/merge/trailing_groups.rb +66 -0
  160. data/lib/ast/merge/unresolved_policy.rb +78 -0
  161. data/lib/ast/merge/unresolved_review_state.rb +58 -0
  162. data/lib/ast/merge/unresolved_support.rb +149 -0
  163. data/lib/ast/merge/version.rb +5 -3
  164. data/lib/ast/merge.rb +3455 -534
  165. data/lib/ast-merge.rb +7 -1
  166. data/sig/ast/merge.rbs +8 -0
  167. data.tar.gz.sig +0 -0
  168. metadata +441 -13
  169. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9ee71d3c3f1723576862f481b20af69998b4177ecf17ec267dcc566fa60d868
4
- data.tar.gz: e91cfb839d090f658e78afeab553c5e974ae7db97c7a912e3372899b99ae44a3
3
+ metadata.gz: 53af222230e0da319b5ce6c90f04ef191a056cbd9b315a7a401ccec334ad63dc
4
+ data.tar.gz: 325aef3c7cd4d4f4d3828a298077f735e82a9548ec0c0e278f94d7735e4d46da
5
5
  SHA512:
6
- metadata.gz: 0cf70ff73936d8a73d013856accc5478a5326d4a3fe315f7d2e80ca6634f0c3aae11ddd9b141412a9cdc9f20cb3efcf79182774f3e07fda18eddd93452740278
7
- data.tar.gz: eb7b9e2185356659428e3c2685c11c0b03d7ce638b7a849d8fc47dbdfef1a28ad96564f046d1fd0688fc1dfb02b7a73872322ff5da2d951b4fdbcd203d39c55a
6
+ metadata.gz: 53212145e26102bc9820d9c435ae916fcb60405ae41e7cb7d5ccb86153d4ad2c28c5d849edce6f3f3e5ff5b0a6e5959cdff554801a34d1316364c04d65e4630a
7
+ data.tar.gz: 5bf7767dfc083a96c0857589647cf1046d904338dd77c44193286300f501e55827235dd4a12f0fd90baed5125faf4c89afd220f64a49187fa88f65c66e8b5b46
checksums.yaml.gz.sig CHANGED
@@ -1,3 +1,3 @@
1
- tか�C��
2
- `|.�&�_�O�):����G�
3
- ߳��c[�����;�=�*���,U��J3[lѮ%oTp��}����Dwl&KZ.ܧ�C3 ������/�ᵤ-8s���׉ț�B�4kT�.�&k %��1��b
1
+ e-љ���vW#o��x�or�%[�^q� J4����ЊbI0b�C�ɉze��w�k�A“.+��$��Z8��IeAT��Č�X�� (�}1�Q��$�y�>�TI�2�]��Q�F�EO���I��%�n9�Q=X�U��/~���p<���+Z�fбGkp,Mr�Iil��*
2
+ W�N1rM�
3
+ TKOtÉ�"���)j�Y�)ޑ�Im8^���=�Z�@���~��p&^1=��cȧ+:�H��hQ ��ߧ��N�=�ެ�'$
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