Class: AgentCliRuntime::RouteIdentity

Inherits:
Data
  • Object
show all
Defined in:
lib/agent_cli_runtime/values.rb

Constant Summary collapse

RESOLUTION_STATUSES =
%i[unobserved matched resolved_differently].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(requested:, actual: nil, resolution_status: nil) ⇒ RouteIdentity

Returns a new instance of RouteIdentity.



485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
# File 'lib/agent_cli_runtime/values.rb', line 485

def initialize(requested:, actual: nil, resolution_status: nil)
  requested_route = requested.is_a?(Route) ? requested : Route.parse(requested)
  actual_route =
    if actual.nil?
      nil
    elsif actual.is_a?(Route)
      actual
    else
      Route.parse(actual)
    end
  status = resolution_status&.to_sym ||
    (actual_route.nil? ? :unobserved :
      (requested_route == actual_route ? :matched : :resolved_differently))
  unless RESOLUTION_STATUSES.include?(status)
    raise ArgumentError, "invalid route resolution status"
  end

  super(
    requested: requested_route,
    actual: actual_route,
    resolution_status: status
  )
end

Instance Attribute Details

#actualObject (readonly)

Returns the value of attribute actual

Returns:

  • (Object)

    the current value of actual



482
483
484
# File 'lib/agent_cli_runtime/values.rb', line 482

def actual
  @actual
end

#requestedObject (readonly)

Returns the value of attribute requested

Returns:

  • (Object)

    the current value of requested



482
483
484
# File 'lib/agent_cli_runtime/values.rb', line 482

def requested
  @requested
end

#resolution_statusObject (readonly)

Returns the value of attribute resolution_status

Returns:

  • (Object)

    the current value of resolution_status



482
483
484
# File 'lib/agent_cli_runtime/values.rb', line 482

def resolution_status
  @resolution_status
end