Class: Ibex::Runtime::RepairPlan

Inherits:
Object
  • Object
show all
Defined in:
lib/ibex/runtime/repair.rb,
sig/ibex/runtime/repair.rbs

Overview

Deterministically selected repair.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(edits:, configurations:) ⇒ RepairPlan

Returns a new instance of RepairPlan.

RBS:

  • (edits: Array[RepairEdit], configurations: Integer) -> void

Parameters:

  • edits: (Array[RepairEdit])
  • configurations: (Integer)


78
79
80
81
82
83
84
85
# File 'lib/ibex/runtime/repair.rb', line 78

def initialize(edits:, configurations:)
  raise ArgumentError, "repair plan must contain an edit" if edits.empty?

  @edits = edits.dup.freeze
  @cost = @edits.sum(&:cost)
  @configurations = configurations
  freeze
end

Instance Attribute Details

#configurationsInteger (readonly)

Signature:

  • Integer

Returns:

  • (Integer)


75
76
77
# File 'lib/ibex/runtime/repair.rb', line 75

def configurations
  @configurations
end

#costInteger (readonly)

Signature:

  • Integer

Returns:

  • (Integer)


74
75
76
# File 'lib/ibex/runtime/repair.rb', line 74

def cost
  @cost
end

#editsArray[RepairEdit] (readonly)

Signature:

  • Array[RepairEdit]

Returns:



73
74
75
# File 'lib/ibex/runtime/repair.rb', line 73

def edits
  @edits
end

Instance Method Details

#to_hHash[Symbol, untyped]

RBS:

  • () -> Hash[Symbol, untyped]

Returns:

  • (Hash[Symbol, untyped])


88
89
90
# File 'lib/ibex/runtime/repair.rb', line 88

def to_h
  { cost: @cost, configurations: @configurations, edits: @edits.map(&:to_h).freeze }.freeze
end