Class: LlmCostTracker::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/llm_cost_tracker/report.rb

Constant Summary collapse

DEFAULT_DAYS =
ReportData::DEFAULT_DAYS

Class Method Summary collapse

Class Method Details

.data(days: DEFAULT_DAYS, now: Time.now.utc) ⇒ Object



24
25
26
# File 'lib/llm_cost_tracker/report.rb', line 24

def data(days: DEFAULT_DAYS, now: Time.now.utc)
  ReportData.build(days: days, now: now)
end

.generate(days: DEFAULT_DAYS, now: Time.now.utc) ⇒ String

Render a terminal-friendly cost report from ActiveRecord storage.

Parameters:

  • days (Integer) (defaults to: DEFAULT_DAYS)

    Number of trailing days to include.

  • now (Time) (defaults to: Time.now.utc)

    Report end time.

Returns:

  • (String)


16
17
18
19
20
21
22
# File 'lib/llm_cost_tracker/report.rb', line 16

def generate(days: DEFAULT_DAYS, now: Time.now.utc)
  ReportFormatter.new(data(days: days, now: now)).to_s
rescue LoadError => e
  "Unable to build LLM cost report: ActiveRecord storage is unavailable (#{e.message})"
rescue StandardError => e
  "Unable to build LLM cost report: #{e.class}: #{e.message}"
end