Class: RailsAiBridge::Serializers::Providers::Collaborators::StackOverviewBuilder::AsyncPartsExtractor

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_bridge/serializers/providers/collaborators/stack_overview_builder.rb

Overview

Utility class for extracting async component parts

Constant Summary collapse

ASYNC_TYPES =

Async component types configuration

[
  { key: :jobs, label: 'jobs' },
  { key: :mailers, label: 'mailers' },
  { key: :channels, label: 'channels' }
].freeze

Class Method Summary collapse

Class Method Details

.extract(jobs) ⇒ Array<String>

Extracts available async components

Parameters:

  • jobs (Hash)

    Jobs configuration hash

Returns:

  • (Array<String>)

    List of component descriptions



145
146
147
148
149
150
# File 'lib/rails_ai_bridge/serializers/providers/collaborators/stack_overview_builder.rb', line 145

def self.extract(jobs)
  ASYNC_TYPES.filter_map do |type|
    count = jobs[type[:key]]&.size || 0
    "#{count} #{type[:label]}" if count.positive?
  end
end