Class: Ibex::Configuration::ConflictRecord

Inherits:
Object
  • Object
show all
Defined in:
lib/ibex/configuration/explanation.rb

Overview

A fixed-contract mismatch retained as structured report data.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(conflict) ⇒ ConflictRecord

Returns a new instance of ConflictRecord.

Raises:

  • (ArgumentError)


223
224
225
226
227
228
229
230
# File 'lib/ibex/configuration/explanation.rb', line 223

def initialize(conflict)
  raise ArgumentError, "conflict record requires a Configuration::Conflict" unless conflict.is_a?(Conflict)

  @key = conflict.key
  @declared = conflict.declared
  @requested = conflict.requested
  freeze
end

Instance Attribute Details

#declaredObject (readonly)

: Value



219
220
221
# File 'lib/ibex/configuration/explanation.rb', line 219

def declared
  @declared
end

#keyObject (readonly)

: Key



218
219
220
# File 'lib/ibex/configuration/explanation.rb', line 218

def key
  @key
end

#requestedObject (readonly)

: Value



220
221
222
# File 'lib/ibex/configuration/explanation.rb', line 220

def requested
  @requested
end

Instance Method Details

#messageObject



243
244
245
246
247
248
249
# File 'lib/ibex/configuration/explanation.rb', line 243

def message
  location = @declared.origin.location
  prefix = location ? "#{location.file || '(source)'}:#{location.line}:#{location.column}: " : "(config):1:1: "
  "#{prefix}configuration conflict for #{@key.name}: " \
    "#{@declared.origin.label} selected #{@declared.value.inspect}, " \
    "#{@requested.origin.label} requested #{@requested.value.inspect}"
end

#to_hObject



233
234
235
236
237
238
239
240
# File 'lib/ibex/configuration/explanation.rb', line 233

def to_h
  {
    "key" => @key.name,
    "policy" => @key.policy.to_s,
    "declared" => selection(@declared),
    "requested" => selection(@requested)
  }
end