Module: LlmCostTracker::Pricing::SyncChangePrinter

Defined in:
lib/llm_cost_tracker/pricing/sync_change_printer.rb

Class Method Summary collapse

Class Method Details

.call(changes, output: $stdout) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/llm_cost_tracker/pricing/sync_change_printer.rb', line 7

def call(changes, output: $stdout)
  service_changes = changes["service_charges"]
  model_changes = changes.except("service_charges")

  output.puts "  changed models: #{model_changes.size}"
  model_changes.each do |model, fields|
    output.puts "    - #{model}"
    fields.each do |field, values|
      output.puts "      #{field}: #{values['from'].inspect} -> #{values['to'].inspect}"
    end
  end

  return if service_changes.nil? || service_changes.empty?

  output.puts "  changed service charges: #{service_changes.values.sum(&:size)}"
  service_changes.each do |provider, components|
    components.each do |component, values|
      output.puts "    - #{provider}.#{component}: " \
                  "#{values['from'].inspect} -> #{values['to'].inspect}"
    end
  end
end