Class: Ibex::Configuration::ConflictRecord
- Inherits:
-
Object
- Object
- Ibex::Configuration::ConflictRecord
- Defined in:
- lib/ibex/configuration/explanation.rb,
sig/ibex/configuration/explanation.rbs
Overview
A fixed-contract mismatch retained as structured report data.
Instance Attribute Summary collapse
- #declared ⇒ Value readonly
- #key ⇒ Key readonly
- #requested ⇒ Value readonly
Instance Method Summary collapse
-
#initialize(conflict) ⇒ ConflictRecord
constructor
A new instance of ConflictRecord.
- #message ⇒ String
- #selection(value) ⇒ Hash[String, json_value]
- #to_h ⇒ Hash[String, json_value]
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 ⇒ Value (readonly)
219 220 221 |
# File 'lib/ibex/configuration/explanation.rb', line 219 def declared @declared end |
#key ⇒ Key (readonly)
218 219 220 |
# File 'lib/ibex/configuration/explanation.rb', line 218 def key @key end |
#requested ⇒ Value (readonly)
220 221 222 |
# File 'lib/ibex/configuration/explanation.rb', line 220 def requested @requested end |
Instance Method Details
#message ⇒ String
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 |
#selection(value) ⇒ Hash[String, json_value]
254 255 256 257 |
# File 'lib/ibex/configuration/explanation.rb', line 254 def selection(value) serialized = value.to_h { "value" => serialized.fetch("value"), "origin" => serialized.fetch("origin") } end |
#to_h ⇒ Hash[String, json_value]
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 |