Class: Ast::Merge::Runtime::ChildResult

Inherits:
Object
  • Object
show all
Defined in:
lib/ast/merge/runtime/child_result.rb

Overview

Return contract from a delegated child merge.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(replacement_text:, preserved_boundaries: {}, diagnostics: [], capabilities_used: [], capabilities_missing: [], unresolved_cases: [], metadata: {}) ⇒ ChildResult

Returns a new instance of ChildResult.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/ast/merge/runtime/child_result.rb', line 16

def initialize(
  replacement_text:,
  preserved_boundaries: {},
  diagnostics: [],
  capabilities_used: [],
  capabilities_missing: [],
  unresolved_cases: [],
  metadata: {}
)
  @replacement_text = replacement_text.to_s
  @preserved_boundaries = normalize_hash(preserved_boundaries)
  @diagnostics = Array(diagnostics).dup.freeze
  @capabilities_used = Array(capabilities_used).map(&:to_sym).freeze
  @capabilities_missing = Array(capabilities_missing).map(&:to_sym).freeze
  @unresolved_cases = Array(unresolved_cases).dup.freeze
  @metadata = .dup.freeze
end

Instance Attribute Details

#capabilities_missingObject (readonly)

Returns the value of attribute capabilities_missing.



8
9
10
# File 'lib/ast/merge/runtime/child_result.rb', line 8

def capabilities_missing
  @capabilities_missing
end

#capabilities_usedObject (readonly)

Returns the value of attribute capabilities_used.



8
9
10
# File 'lib/ast/merge/runtime/child_result.rb', line 8

def capabilities_used
  @capabilities_used
end

#diagnosticsObject (readonly)

Returns the value of attribute diagnostics.



8
9
10
# File 'lib/ast/merge/runtime/child_result.rb', line 8

def diagnostics
  @diagnostics
end

#metadataObject (readonly)

Returns the value of attribute metadata.



8
9
10
# File 'lib/ast/merge/runtime/child_result.rb', line 8

def 
  @metadata
end

#preserved_boundariesObject (readonly)

Returns the value of attribute preserved_boundaries.



8
9
10
# File 'lib/ast/merge/runtime/child_result.rb', line 8

def preserved_boundaries
  @preserved_boundaries
end

#replacement_textObject (readonly)

Returns the value of attribute replacement_text.



8
9
10
# File 'lib/ast/merge/runtime/child_result.rb', line 8

def replacement_text
  @replacement_text
end

#unresolved_casesObject (readonly)

Returns the value of attribute unresolved_cases.



8
9
10
# File 'lib/ast/merge/runtime/child_result.rb', line 8

def unresolved_cases
  @unresolved_cases
end

Instance Method Details

#to_hObject



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/ast/merge/runtime/child_result.rb', line 38

def to_h
  {
    replacement_text: replacement_text,
    preserved_boundaries: preserved_boundaries,
    diagnostics: diagnostics.map { |diagnostic| diagnostic.respond_to?(:to_h) ? diagnostic.to_h : diagnostic },
    capabilities_used: capabilities_used,
    capabilities_missing: capabilities_missing,
    unresolved_cases: unresolved_cases.map do |resolution_case|
      resolution_case.respond_to?(:to_h) ? resolution_case.to_h : resolution_case
    end,
    metadata: 
  }
end

#unresolved?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/ast/merge/runtime/child_result.rb', line 34

def unresolved?
  unresolved_cases.any?
end