Class: Ibex::Configuration::ConflictRecord
- Inherits:
-
Object
- Object
- Ibex::Configuration::ConflictRecord
- Defined in:
- lib/ibex/configuration/explanation.rb
Overview
A fixed-contract mismatch retained as structured report data.
Instance Attribute Summary collapse
-
#declared ⇒ Object
readonly
: Value.
-
#key ⇒ Object
readonly
: Key.
-
#requested ⇒ Object
readonly
: Value.
Instance Method Summary collapse
-
#initialize(conflict) ⇒ ConflictRecord
constructor
A new instance of ConflictRecord.
- #message ⇒ Object
- #to_h ⇒ Object
Constructor Details
#initialize(conflict) ⇒ ConflictRecord
Returns a new instance of ConflictRecord.
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
#declared ⇒ Object (readonly)
: Value
219 220 221 |
# File 'lib/ibex/configuration/explanation.rb', line 219 def declared @declared end |
#key ⇒ Object (readonly)
: Key
218 219 220 |
# File 'lib/ibex/configuration/explanation.rb', line 218 def key @key end |
#requested ⇒ Object (readonly)
: Value
220 221 222 |
# File 'lib/ibex/configuration/explanation.rb', line 220 def requested @requested end |
Instance Method Details
#message ⇒ Object
243 244 245 246 247 248 249 |
# File 'lib/ibex/configuration/explanation.rb', line 243 def 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_h ⇒ Object
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 |