Class: Ace::Support::Models::CLI::Commands::Providers::Show

Inherits:
Cli::Command
  • Object
show all
Includes:
Cli::Base
Defined in:
lib/ace/support/models/cli/commands/providers/show.rb

Overview

Show provider details and models

Instance Method Summary collapse

Instance Method Details

#call(provider_id:, **options) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/ace/support/models/cli/commands/providers/show.rb', line 20

def call(provider_id:, **options)
  cache_manager = Molecules::CacheManager.new

  unless cache_manager.cached?
    raise Ace::Support::Cli::Error.new("No cache data. Run 'ace-models sync' first.")
  end

  provider_data = cache_manager.get_provider(provider_id)

  unless provider_data
    raise Ace::Support::Cli::Error.new("Provider '#{provider_id}' not found")
  end

  if options[:json]
    puts JSON.pretty_generate(provider_data)
    return
  end

  puts "Provider: #{provider_id}"
  puts "Models (#{provider_data[:models].size}):"
  provider_data[:models].each do |model|
    status = model[:deprecated] ? " (deprecated)" : ""
    puts "  #{model[:id]}#{status}"
    puts "    #{model[:name]}"
  end
rescue CacheError => e
  raise Ace::Support::Cli::Error.new(e.message)
end