Module: LlmCostTracker::Parsers

Defined in:
lib/llm_cost_tracker/parsers.rb,
lib/llm_cost_tracker/parsers/sse.rb,
lib/llm_cost_tracker/parsers/base.rb,
lib/llm_cost_tracker/parsers/azure.rb,
lib/llm_cost_tracker/parsers/gemini.rb,
lib/llm_cost_tracker/parsers/openai.rb,
lib/llm_cost_tracker/parsers/anthropic.rb,
lib/llm_cost_tracker/parsers/openai_usage.rb,
lib/llm_cost_tracker/parsers/openai_compatible.rb,
lib/llm_cost_tracker/parsers/openai_service_charges.rb

Defined Under Namespace

Modules: OpenaiServiceCharges, OpenaiUsage, SSE, UrlMatchers Classes: Anthropic, Azure, Base, Gemini, Openai, OpenaiCompatible

Constant Summary collapse

MUTEX =
Mutex.new
PARSER_CONSTANTS =
%i[Openai Azure OpenaiCompatible Anthropic Gemini].freeze

Class Method Summary collapse

Class Method Details

.find_for(url) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/llm_cost_tracker/parsers.rb', line 20

def find_for(url)
  PARSER_CONSTANTS.each do |name|
    klass = const_get(name)
    return instance_for(klass) if klass.match?(url)
  end
  nil
end

.find_for_provider(provider) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/llm_cost_tracker/parsers.rb', line 28

def find_for_provider(provider)
  provider_name = provider.to_s.downcase
  PARSER_CONSTANTS.each do |name|
    klass = const_get(name)
    return instance_for(klass) if klass.provider_names.include?(provider_name)
  end
  nil
end