prism-merge 7.1.3 → 7.1.4
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +1 -1
- data/lib/prism/merge/version.rb +1 -1
- data/lib/prism/merge.rb +42 -91
- data.tar.gz.sig +0 -0
- metadata +30 -27
- metadata.gz.sig +0 -0
- data/lib/ruby/merge/block_binding_support.rb +0 -22
- data/lib/ruby/merge/block_directive_detector.rb +0 -208
- data/lib/ruby/merge/doc_comment_support.rb +0 -97
- data/lib/ruby/merge/gemspec_support.rb +0 -32
- data/lib/ruby/merge/magic_comment_support.rb +0 -128
- data/lib/ruby/merge/method_similarity.rb +0 -75
- data/lib/ruby/merge/nocov_node_base.rb +0 -75
- data/lib/ruby/merge/nocov_wrapper_base.rb +0 -46
- data/lib/ruby/merge/rescue_semantics.rb +0 -209
- data/lib/ruby/merge/scaffold_chunk_support.rb +0 -74
- data/lib/ruby/merge/signature_support.rb +0 -97
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7d32fbdcd833e576a54414849501db40ddacd349498c05e4d233159f2e5521c1
|
|
4
|
+
data.tar.gz: 063f4adb55b355f984f09eb376652dded9e8a8d2451d993ebc4a954eb403ca0c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 291ed360148759fb7f32d3c28da2d0c8da02733022b60b9ada62781cd0cfc61d0295164e43f84985816d2416f92f433862e04010ec2ac59c200f953918e8c540
|
|
7
|
+
data.tar.gz: 75c2f6a59e5910332a80945f0f12426d5a019872d4e128834cebabfc496db6c30d2ab389940a7bc10910a084694bf68d59e9bcd81281dbbc173857d86b6a59a5
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/README.md
CHANGED
|
@@ -1244,7 +1244,7 @@ If none of the available licenses suit your use case, please [contact us](mailto
|
|
|
1244
1244
|
[📌gitmoji]: https://gitmoji.dev
|
|
1245
1245
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1246
1246
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1247
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.
|
|
1247
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.550-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1248
1248
|
[🔐security]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/SECURITY.md
|
|
1249
1249
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1250
1250
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/lib/prism/merge/version.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Prism
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = '7.1.
|
|
8
|
+
VERSION = '7.1.4'
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
data/lib/prism/merge.rb
CHANGED
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'prism'
|
|
4
|
+
require 'ruby-merge'
|
|
4
5
|
require 'ast/merge'
|
|
5
6
|
require 'tree_haver'
|
|
6
|
-
require_relative '../ruby/merge/block_directive_detector'
|
|
7
|
-
require_relative '../ruby/merge/block_binding_support'
|
|
8
|
-
require_relative '../ruby/merge/doc_comment_support'
|
|
9
|
-
require_relative '../ruby/merge/gemspec_support'
|
|
10
|
-
require_relative '../ruby/merge/magic_comment_support'
|
|
11
|
-
require_relative '../ruby/merge/method_similarity'
|
|
12
|
-
require_relative '../ruby/merge/nocov_node_base'
|
|
13
|
-
require_relative '../ruby/merge/nocov_wrapper_base'
|
|
14
|
-
require_relative '../ruby/merge/rescue_semantics'
|
|
15
|
-
require_relative '../ruby/merge/scaffold_chunk_support'
|
|
16
|
-
require_relative '../ruby/merge/signature_support'
|
|
17
7
|
require_relative 'merge/version'
|
|
18
8
|
|
|
19
9
|
module Prism
|
|
10
|
+
# This public facade keeps provider protocol and backend registration
|
|
11
|
+
# entrypoints together; implementation details live in autoloaded files.
|
|
12
|
+
# rubocop:disable Metrics/ModuleLength
|
|
20
13
|
module Merge
|
|
21
14
|
module_function
|
|
22
15
|
|
|
23
16
|
PACKAGE_NAME = 'prism-merge'
|
|
24
|
-
DESTINATION_WINS_ARRAY_POLICY = { surface: 'array', name: 'destination_wins_array' }.freeze
|
|
25
17
|
BACKEND_REFERENCE = TreeHaver::BackendReference.new(id: 'prism', family: 'native').freeze
|
|
26
18
|
BACKEND_REGISTRY = Struct.new(:registered, :mutex).new(false, Mutex.new)
|
|
27
19
|
TreeHaver::BackendRegistry.register(BACKEND_REFERENCE)
|
|
@@ -99,11 +91,7 @@ module Prism
|
|
|
99
91
|
end
|
|
100
92
|
|
|
101
93
|
def ruby_feature_profile
|
|
102
|
-
|
|
103
|
-
family: 'ruby',
|
|
104
|
-
supported_dialects: ['ruby'],
|
|
105
|
-
supported_policies: [DESTINATION_WINS_ARRAY_POLICY]
|
|
106
|
-
}
|
|
94
|
+
Ruby::Merge.ruby_feature_profile
|
|
107
95
|
end
|
|
108
96
|
|
|
109
97
|
def merge_provider
|
|
@@ -324,6 +312,8 @@ module Prism
|
|
|
324
312
|
}
|
|
325
313
|
end
|
|
326
314
|
|
|
315
|
+
# This projection mirrors the nested public schema intentionally.
|
|
316
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
327
317
|
def ruby_structured_edit_batch_report_projection
|
|
328
318
|
content = "class App\n # managed snippet\n old_call\n\n anchor_call\n\n # obsolete snippet\n obsolete_call\nend\n"
|
|
329
319
|
{
|
|
@@ -465,7 +455,10 @@ module Prism
|
|
|
465
455
|
)
|
|
466
456
|
}
|
|
467
457
|
end
|
|
458
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
|
468
459
|
|
|
460
|
+
# Keep parser validation and diagnostics in one boundary method.
|
|
461
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
469
462
|
def parse_ruby(source, dialect, backend: nil)
|
|
470
463
|
requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
|
|
471
464
|
return unsupported_feature_result("Unsupported Ruby dialect #{dialect}.") unless dialect == 'ruby'
|
|
@@ -493,6 +486,7 @@ module Prism
|
|
|
493
486
|
policies: []
|
|
494
487
|
}
|
|
495
488
|
end
|
|
489
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
|
496
490
|
|
|
497
491
|
def analyze_ruby_document(source, parse_result)
|
|
498
492
|
normalized_source = prism_ruby_normalize_source(source)
|
|
@@ -509,6 +503,8 @@ module Prism
|
|
|
509
503
|
}
|
|
510
504
|
end
|
|
511
505
|
|
|
506
|
+
# Normalization builds the complete TreeHaver contract in one pass.
|
|
507
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
|
512
508
|
def parse_ruby_normalized(source, dialect = 'ruby', backend: nil)
|
|
513
509
|
requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
|
|
514
510
|
return unsupported_feature_result("Unsupported Ruby dialect #{dialect}.") unless dialect == 'ruby'
|
|
@@ -590,7 +586,10 @@ module Prism
|
|
|
590
586
|
metadata: prism_normalized_metadata
|
|
591
587
|
).to_h
|
|
592
588
|
end
|
|
589
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
|
593
590
|
|
|
591
|
+
# This adapter validates, edits, reparses, and reports one projection atomically.
|
|
592
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
|
594
593
|
def apply_edit_projection(request)
|
|
595
594
|
source = request.fetch(:source)
|
|
596
595
|
provider_id = request.fetch(:provider_id)
|
|
@@ -662,9 +661,10 @@ module Prism
|
|
|
662
661
|
[]
|
|
663
662
|
).to_h
|
|
664
663
|
end
|
|
664
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
|
665
665
|
|
|
666
666
|
def match_ruby_owners(template, destination)
|
|
667
|
-
|
|
667
|
+
Ruby::Merge.match_ruby_owners(template, destination)
|
|
668
668
|
end
|
|
669
669
|
|
|
670
670
|
def merge_ruby(
|
|
@@ -699,7 +699,7 @@ module Prism
|
|
|
699
699
|
ok: true,
|
|
700
700
|
diagnostics: [],
|
|
701
701
|
output: merger.merge.to_s,
|
|
702
|
-
policies: ruby_feature_profile.fetch(:supported_policies)
|
|
702
|
+
policies: Ruby::Merge.ruby_feature_profile.fetch(:supported_policies)
|
|
703
703
|
}
|
|
704
704
|
rescue Prism::Merge::ParseError => e
|
|
705
705
|
{
|
|
@@ -745,6 +745,8 @@ module Prism
|
|
|
745
745
|
end
|
|
746
746
|
end
|
|
747
747
|
|
|
748
|
+
# Alias normalization intentionally handles the supported input shapes inline.
|
|
749
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
|
|
748
750
|
def normalize_ruby_require_aliases(require_aliases)
|
|
749
751
|
Array(require_aliases).each_with_object({}) do |entry, aliases|
|
|
750
752
|
case entry
|
|
@@ -765,6 +767,7 @@ module Prism
|
|
|
765
767
|
aliases[to] = canonical
|
|
766
768
|
end
|
|
767
769
|
end
|
|
770
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
|
|
768
771
|
|
|
769
772
|
def ruby_dsl_call_node(node)
|
|
770
773
|
return node if node.is_a?(::Prism::CallNode)
|
|
@@ -789,6 +792,8 @@ module Prism
|
|
|
789
792
|
end
|
|
790
793
|
end
|
|
791
794
|
|
|
795
|
+
# The reviewed merge boundary must retain all protocol roles for replay.
|
|
796
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/ParameterLists
|
|
792
797
|
def merge_ruby_with_reviewed_nested_outputs(template_source, destination_source, dialect, review_state,
|
|
793
798
|
applied_children, backend: nil)
|
|
794
799
|
requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
|
|
@@ -812,7 +817,7 @@ module Prism
|
|
|
812
817
|
}
|
|
813
818
|
},
|
|
814
819
|
apply_resolved_outputs: lambda { |merged_output, operations, apply_plan, resolved_children|
|
|
815
|
-
apply_ruby_delegated_child_outputs(
|
|
820
|
+
Ruby::Merge.apply_ruby_delegated_child_outputs(
|
|
816
821
|
merged_output,
|
|
817
822
|
operations,
|
|
818
823
|
apply_plan,
|
|
@@ -821,6 +826,7 @@ module Prism
|
|
|
821
826
|
}
|
|
822
827
|
)
|
|
823
828
|
end
|
|
829
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/ParameterLists
|
|
824
830
|
|
|
825
831
|
def merge_ruby_with_reviewed_nested_outputs_from_replay_bundle(template_source, destination_source, dialect,
|
|
826
832
|
replay_bundle, backend: nil)
|
|
@@ -913,83 +919,15 @@ module Prism
|
|
|
913
919
|
end
|
|
914
920
|
|
|
915
921
|
def ruby_discovered_surfaces(analysis)
|
|
916
|
-
analysis
|
|
922
|
+
Ruby::Merge.ruby_discovered_surfaces(analysis)
|
|
917
923
|
end
|
|
918
924
|
|
|
919
925
|
def ruby_delegated_child_operations(analysis, parent_operation_id: 'ruby-document-0')
|
|
920
|
-
|
|
921
|
-
doc_operation_ids = {}
|
|
922
|
-
operations = []
|
|
923
|
-
|
|
924
|
-
surfaces.each_with_index do |surface, index|
|
|
925
|
-
next unless surface[:surface_kind] == 'ruby_doc_comment'
|
|
926
|
-
|
|
927
|
-
operation_id = "ruby-doc-comment-#{index}"
|
|
928
|
-
doc_operation_ids[surface[:address]] = operation_id
|
|
929
|
-
operations << Ast::Merge.delegated_child_operation(
|
|
930
|
-
operation_id: operation_id,
|
|
931
|
-
parent_operation_id: parent_operation_id,
|
|
932
|
-
requested_strategy: 'delegate_child_surface',
|
|
933
|
-
language_chain: ['ruby', surface[:effective_language]],
|
|
934
|
-
surface: surface
|
|
935
|
-
)
|
|
936
|
-
end
|
|
937
|
-
|
|
938
|
-
example_index = 0
|
|
939
|
-
surfaces.each do |surface|
|
|
940
|
-
next unless surface[:surface_kind] == 'yard_example_block'
|
|
941
|
-
|
|
942
|
-
operations << Ast::Merge.delegated_child_operation(
|
|
943
|
-
operation_id: "yard-example-#{example_index}",
|
|
944
|
-
parent_operation_id: doc_operation_ids.fetch(surface[:parent_address], parent_operation_id),
|
|
945
|
-
requested_strategy: 'delegate_child_surface',
|
|
946
|
-
language_chain: ['ruby', 'yard', surface[:effective_language]],
|
|
947
|
-
surface: surface
|
|
948
|
-
)
|
|
949
|
-
example_index += 1
|
|
950
|
-
end
|
|
951
|
-
|
|
952
|
-
operations
|
|
953
|
-
end
|
|
954
|
-
|
|
955
|
-
def apply_ruby_delegated_child_outputs(source, delegated_operations, apply_plan, applied_children)
|
|
956
|
-
lines = prism_ruby_normalize_source(source).split("\n")
|
|
957
|
-
operations_by_id = delegated_operations.to_h { |operation| [operation[:operation_id], operation] }
|
|
958
|
-
outputs_by_id = applied_children.to_h { |entry| [entry[:operation_id], entry[:output]] }
|
|
959
|
-
|
|
960
|
-
replacements = apply_plan[:entries].filter_map do |entry|
|
|
961
|
-
operation = operations_by_id[entry.dig(:delegated_group, :child_operation_id)]
|
|
962
|
-
output = outputs_by_id[entry.dig(:delegated_group, :child_operation_id)]
|
|
963
|
-
span = operation&.dig(:surface, :span)
|
|
964
|
-
next if operation.nil? || output.nil? || span.nil?
|
|
965
|
-
|
|
966
|
-
{ start: span[:start_line] - 1, finish: span[:end_line] - 1, output: output }
|
|
967
|
-
end
|
|
968
|
-
|
|
969
|
-
replacements.sort_by { |entry| -entry[:start] }.each do |entry|
|
|
970
|
-
prefix = Ruby::Merge::DocCommentSupport.comment_prefix_for(lines[entry[:start]])
|
|
971
|
-
replacement_lines = if entry[:output].empty?
|
|
972
|
-
[]
|
|
973
|
-
else
|
|
974
|
-
entry[:output].sub(/\n\z/, '').split("\n").map { |line| "#{prefix}#{line}" }
|
|
975
|
-
end
|
|
976
|
-
lines[entry[:start]..entry[:finish]] = replacement_lines
|
|
977
|
-
end
|
|
978
|
-
|
|
979
|
-
{
|
|
980
|
-
ok: true,
|
|
981
|
-
diagnostics: [],
|
|
982
|
-
output: "#{lines.join("\n").sub(/\n+\z/, '')}\n",
|
|
983
|
-
policies: [DESTINATION_WINS_ARRAY_POLICY]
|
|
984
|
-
}
|
|
926
|
+
Ruby::Merge.ruby_delegated_child_operations(analysis, parent_operation_id: parent_operation_id)
|
|
985
927
|
end
|
|
986
928
|
|
|
987
929
|
def unsupported_feature_result(message)
|
|
988
|
-
|
|
989
|
-
ok: false,
|
|
990
|
-
diagnostics: [{ severity: 'error', category: 'unsupported_feature', message: message }],
|
|
991
|
-
policies: []
|
|
992
|
-
}
|
|
930
|
+
Ruby::Merge.unsupported_feature_result(message)
|
|
993
931
|
end
|
|
994
932
|
|
|
995
933
|
def prism_ruby_analysis_owners(body)
|
|
@@ -1016,6 +954,8 @@ module Prism
|
|
|
1016
954
|
end.sort_by { |owner| owner[:path] }
|
|
1017
955
|
end
|
|
1018
956
|
|
|
957
|
+
# Surface discovery intentionally keeps line ownership and comment state together.
|
|
958
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
1019
959
|
def prism_ruby_discovered_surfaces(source, body)
|
|
1020
960
|
owners_by_line = body.filter_map do |node|
|
|
1021
961
|
name = prism_ruby_declaration_name(node)
|
|
@@ -1046,7 +986,10 @@ module Prism
|
|
|
1046
986
|
|
|
1047
987
|
surfaces
|
|
1048
988
|
end
|
|
989
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
|
1049
990
|
|
|
991
|
+
# A surface record is assembled as one schema-shaped value.
|
|
992
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
1050
993
|
def prism_ruby_surfaces_for_owner(owner_name, comment_entries)
|
|
1051
994
|
filtered_entries = comment_entries.filter { |entry| prism_ruby_doc_comment_content?(entry.fetch(:raw)) }
|
|
1052
995
|
return [] if filtered_entries.empty?
|
|
@@ -1071,7 +1014,10 @@ module Prism
|
|
|
1071
1014
|
|
|
1072
1015
|
[doc_surface] + prism_ruby_example_surfaces(doc_surface)
|
|
1073
1016
|
end
|
|
1017
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
|
1074
1018
|
|
|
1019
|
+
# Example surfaces preserve the complete delegated-child metadata contract.
|
|
1020
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
1075
1021
|
def prism_ruby_example_surfaces(surface)
|
|
1076
1022
|
entries = Array(surface.dig(:metadata, :entries))
|
|
1077
1023
|
Ruby::Merge::DocCommentSupport.example_blocks(entries).map do |block|
|
|
@@ -1096,6 +1042,7 @@ module Prism
|
|
|
1096
1042
|
)
|
|
1097
1043
|
end
|
|
1098
1044
|
end
|
|
1045
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
|
1099
1046
|
|
|
1100
1047
|
def prism_ruby_declaration_name(node)
|
|
1101
1048
|
case node
|
|
@@ -1254,6 +1201,8 @@ module Prism
|
|
|
1254
1201
|
end
|
|
1255
1202
|
end
|
|
1256
1203
|
|
|
1204
|
+
# Comment nodes retain backend metadata in a single normalized schema value.
|
|
1205
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
1257
1206
|
def prism_comment_node(source, comment, index, magic_comment, parent_id:)
|
|
1258
1207
|
directive = prism_comment_directive(
|
|
1259
1208
|
source.byteslice(comment.location.start_offset...comment.location.end_offset), magic_comment
|
|
@@ -1284,6 +1233,7 @@ module Prism
|
|
|
1284
1233
|
}
|
|
1285
1234
|
)
|
|
1286
1235
|
end
|
|
1236
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
|
1287
1237
|
|
|
1288
1238
|
def prism_comment_directive(comment_text, magic_comment)
|
|
1289
1239
|
if comment_text.strip.match?(/\A#\s*smorg:freeze\b/)
|
|
@@ -1422,6 +1372,7 @@ module Prism
|
|
|
1422
1372
|
:source_span_for_location
|
|
1423
1373
|
)
|
|
1424
1374
|
end
|
|
1375
|
+
# rubocop:enable Metrics/ModuleLength
|
|
1425
1376
|
end
|
|
1426
1377
|
|
|
1427
1378
|
Prism::Merge.register_backend!
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: prism-merge
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.1.
|
|
4
|
+
version: 7.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -43,14 +43,14 @@ dependencies:
|
|
|
43
43
|
requirements:
|
|
44
44
|
- - '='
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 7.1.
|
|
46
|
+
version: 7.1.4
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - '='
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 7.1.
|
|
53
|
+
version: 7.1.4
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: prism
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -65,20 +65,34 @@ dependencies:
|
|
|
65
65
|
- - "~>"
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
67
|
version: '1.6'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: ruby-merge
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - '='
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 7.1.4
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - '='
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 7.1.4
|
|
68
82
|
- !ruby/object:Gem::Dependency
|
|
69
83
|
name: tree_haver
|
|
70
84
|
requirement: !ruby/object:Gem::Requirement
|
|
71
85
|
requirements:
|
|
72
86
|
- - '='
|
|
73
87
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 7.1.
|
|
88
|
+
version: 7.1.4
|
|
75
89
|
type: :runtime
|
|
76
90
|
prerelease: false
|
|
77
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
92
|
requirements:
|
|
79
93
|
- - '='
|
|
80
94
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 7.1.
|
|
95
|
+
version: 7.1.4
|
|
82
96
|
- !ruby/object:Gem::Dependency
|
|
83
97
|
name: version_gem
|
|
84
98
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -108,7 +122,7 @@ dependencies:
|
|
|
108
122
|
version: '3.0'
|
|
109
123
|
- - ">="
|
|
110
124
|
- !ruby/object:Gem::Version
|
|
111
|
-
version: 3.0.
|
|
125
|
+
version: 3.0.7
|
|
112
126
|
type: :development
|
|
113
127
|
prerelease: false
|
|
114
128
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -118,7 +132,7 @@ dependencies:
|
|
|
118
132
|
version: '3.0'
|
|
119
133
|
- - ">="
|
|
120
134
|
- !ruby/object:Gem::Version
|
|
121
|
-
version: 3.0.
|
|
135
|
+
version: 3.0.7
|
|
122
136
|
- !ruby/object:Gem::Dependency
|
|
123
137
|
name: bundler-audit
|
|
124
138
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -216,7 +230,7 @@ dependencies:
|
|
|
216
230
|
version: '2.0'
|
|
217
231
|
- - ">="
|
|
218
232
|
- !ruby/object:Gem::Version
|
|
219
|
-
version: 2.0.
|
|
233
|
+
version: 2.0.20
|
|
220
234
|
type: :development
|
|
221
235
|
prerelease: false
|
|
222
236
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -226,7 +240,7 @@ dependencies:
|
|
|
226
240
|
version: '2.0'
|
|
227
241
|
- - ">="
|
|
228
242
|
- !ruby/object:Gem::Version
|
|
229
|
-
version: 2.0.
|
|
243
|
+
version: 2.0.20
|
|
230
244
|
- !ruby/object:Gem::Dependency
|
|
231
245
|
name: turbo_tests2
|
|
232
246
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -236,7 +250,7 @@ dependencies:
|
|
|
236
250
|
version: '3.2'
|
|
237
251
|
- - ">="
|
|
238
252
|
- !ruby/object:Gem::Version
|
|
239
|
-
version: 3.2.
|
|
253
|
+
version: 3.2.6
|
|
240
254
|
type: :development
|
|
241
255
|
prerelease: false
|
|
242
256
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -246,7 +260,7 @@ dependencies:
|
|
|
246
260
|
version: '3.2'
|
|
247
261
|
- - ">="
|
|
248
262
|
- !ruby/object:Gem::Version
|
|
249
|
-
version: 3.2.
|
|
263
|
+
version: 3.2.6
|
|
250
264
|
- !ruby/object:Gem::Dependency
|
|
251
265
|
name: ruby-progressbar
|
|
252
266
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -290,7 +304,7 @@ dependencies:
|
|
|
290
304
|
version: '2.0'
|
|
291
305
|
- - ">="
|
|
292
306
|
- !ruby/object:Gem::Version
|
|
293
|
-
version: 2.0.
|
|
307
|
+
version: 2.0.12
|
|
294
308
|
type: :development
|
|
295
309
|
prerelease: false
|
|
296
310
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -300,7 +314,7 @@ dependencies:
|
|
|
300
314
|
version: '2.0'
|
|
301
315
|
- - ">="
|
|
302
316
|
- !ruby/object:Gem::Version
|
|
303
|
-
version: 2.0.
|
|
317
|
+
version: 2.0.12
|
|
304
318
|
description: "☯️ Prism-backed Ruby provider gem for the Structured Merge Ruby family."
|
|
305
319
|
email:
|
|
306
320
|
- floss@galtzo.com
|
|
@@ -354,17 +368,6 @@ files:
|
|
|
354
368
|
- lib/prism/merge/top_level_merge_runner.rb
|
|
355
369
|
- lib/prism/merge/version.rb
|
|
356
370
|
- lib/prism/merge/wrapper_comment_support.rb
|
|
357
|
-
- lib/ruby/merge/block_binding_support.rb
|
|
358
|
-
- lib/ruby/merge/block_directive_detector.rb
|
|
359
|
-
- lib/ruby/merge/doc_comment_support.rb
|
|
360
|
-
- lib/ruby/merge/gemspec_support.rb
|
|
361
|
-
- lib/ruby/merge/magic_comment_support.rb
|
|
362
|
-
- lib/ruby/merge/method_similarity.rb
|
|
363
|
-
- lib/ruby/merge/nocov_node_base.rb
|
|
364
|
-
- lib/ruby/merge/nocov_wrapper_base.rb
|
|
365
|
-
- lib/ruby/merge/rescue_semantics.rb
|
|
366
|
-
- lib/ruby/merge/scaffold_chunk_support.rb
|
|
367
|
-
- lib/ruby/merge/signature_support.rb
|
|
368
371
|
- sig/prism/merge.rbs
|
|
369
372
|
homepage: https://github.com/structuredmerge/structuredmerge-ruby
|
|
370
373
|
licenses:
|
|
@@ -372,10 +375,10 @@ licenses:
|
|
|
372
375
|
- PolyForm-Small-Business-1.0.0
|
|
373
376
|
metadata:
|
|
374
377
|
homepage_uri: https://structuredmerge.org
|
|
375
|
-
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.
|
|
376
|
-
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.
|
|
378
|
+
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.4
|
|
379
|
+
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.4/CHANGELOG.md
|
|
377
380
|
bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
|
|
378
|
-
documentation_uri: https://www.rubydoc.info/gems/prism-merge/7.1.
|
|
381
|
+
documentation_uri: https://www.rubydoc.info/gems/prism-merge/7.1.4
|
|
379
382
|
funding_uri: https://github.com/sponsors/pboling
|
|
380
383
|
wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
|
|
381
384
|
news_uri: https://www.railsbling.com/tags/prism-merge
|
metadata.gz.sig
CHANGED
|
Binary file
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Ruby
|
|
4
|
-
module Merge
|
|
5
|
-
# Parser-neutral naming policy for a block-local receiver.
|
|
6
|
-
module BlockBindingSupport
|
|
7
|
-
module_function
|
|
8
|
-
|
|
9
|
-
def effective_receiver(receiver, block_var, placeholder: :__block_binding__)
|
|
10
|
-
block_var && receiver == block_var ? placeholder : receiver
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def preferred_block_var(template_var, destination_var)
|
|
14
|
-
template_var if template_var && destination_var && template_var != destination_var
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def merged_block_var(var, preferred_var)
|
|
18
|
-
preferred_var || var
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|