Class: Rubyists::Leopard::NatsServiceDiscovery::Operation::Services
- Inherits:
-
Trailblazer::Operation
- Object
- Trailblazer::Operation
- Rubyists::Leopard::NatsServiceDiscovery::Operation::Services
- Includes:
- DiscoveryOptions
- Defined in:
- lib/leopard/nats_service_discovery/operation/services.rb
Overview
Builds service-list summaries from $SRV.INFO responses.
On success, the result exposes :responses and :services.
Instance Method Summary collapse
-
#load_info?(ctx) ⇒ Boolean
Loads raw service info responses for summarization.
-
#summarize(ctx, responses:) ⇒ Array<Hash>
Builds compact service summaries from raw info responses.
Methods included from DiscoveryOptions
Instance Method Details
#load_info?(ctx) ⇒ Boolean
Loads raw service info responses for summarization.
25 26 27 28 29 30 |
# File 'lib/leopard/nats_service_discovery/operation/services.rb', line 25 def load_info?(ctx, **) result = Info.call(**(ctx)) ctx[:error] = result[:error] unless result.success? ctx[:responses] = result[:responses] result.success? end |
#summarize(ctx, responses:) ⇒ Array<Hash>
Builds compact service summaries from raw info responses.
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/leopard/nats_service_discovery/operation/services.rb', line 38 def summarize(ctx, responses:, **) ctx[:services] = responses.map do |service| { 'name' => service['name'], 'id' => service['id'], 'version' => service['version'], 'endpoints' => Array(service['endpoints']).size, } end end |