Class: Json::Merge::ConflictResolver
- Inherits:
-
Ast::Merge::ConflictResolverBase
- Object
- Ast::Merge::ConflictResolverBase
- Json::Merge::ConflictResolver
- Includes:
- Ast::Merge::CommentLayoutEmissionSupport, Ast::Merge::StructuredEmitterProvenanceSupport, Ast::Merge::TrailingGroups::DestIterate
- Defined in:
- lib/json/merge/conflict_resolver.rb
Overview
Resolves conflicts between template and destination JSON content using structural signatures and configurable preferences.
Defined Under Namespace
Classes: MissingSharedInlineRegionError
Instance Attribute Summary collapse
-
#corruption_handling ⇒ Object
readonly
Returns the value of attribute corruption_handling.
Instance Method Summary collapse
- #freeze_node?(node) ⇒ Boolean
-
#initialize(template_analysis, dest_analysis, preference: :destination, add_template_only_nodes: false, remove_template_missing_nodes: false, resolution_mode: :eager, corruption_handling: :heal, match_refiner: nil, node_typing: nil, merge_arrays: true, preserve_atomic_formatting: false, **options) ⇒ ConflictResolver
constructor
Creates a new ConflictResolver.
Constructor Details
#initialize(template_analysis, dest_analysis, preference: :destination, add_template_only_nodes: false, remove_template_missing_nodes: false, resolution_mode: :eager, corruption_handling: :heal, match_refiner: nil, node_typing: nil, merge_arrays: true, preserve_atomic_formatting: false, **options) ⇒ ConflictResolver
Creates a new ConflictResolver
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/json/merge/conflict_resolver.rb', line 34 def initialize(template_analysis, dest_analysis, preference: :destination, add_template_only_nodes: false, remove_template_missing_nodes: false, resolution_mode: :eager, corruption_handling: :heal, match_refiner: nil, node_typing: nil, merge_arrays: true, preserve_atomic_formatting: false, **) super( strategy: :batch, preference: preference, template_analysis: template_analysis, dest_analysis: dest_analysis, add_template_only_nodes: add_template_only_nodes, remove_template_missing_nodes: remove_template_missing_nodes, match_refiner: match_refiner, ** ) @resolution_mode = resolution_mode @corruption_handling = ::Ast::Merge::Healer.normalize_mode(corruption_handling) @node_typing = node_typing @merge_arrays = merge_arrays @preserve_atomic_formatting = preserve_atomic_formatting @emitter = Emitter.new end |
Instance Attribute Details
#corruption_handling ⇒ Object (readonly)
Returns the value of attribute corruption_handling.
19 20 21 |
# File 'lib/json/merge/conflict_resolver.rb', line 19 def corruption_handling @corruption_handling end |
Instance Method Details
#freeze_node?(node) ⇒ Boolean
94 95 96 97 98 99 |
# File 'lib/json/merge/conflict_resolver.rb', line 94 def freeze_node?(node) return false unless node return node.freeze_node? if node.respond_to?(:freeze_node?) node.is_a?(FreezeNode) end |