Top Level Namespace
Defined Under Namespace
Modules: ActiveAgent, Erb, TestUnit
Constant Summary collapse
- GEM_LOADERS =
{ anthropic: [ "anthropic", "~> 1.12", "anthropic" ], openai: [ "openai", "~> 0.34", "openai" ] }
Instance Method Summary collapse
-
#require_gem!(type, file_name) ⇒ void
Requires a provider’s gem dependency.
Instance Method Details
#require_gem!(type, file_name) ⇒ void
This method returns an undefined value.
Requires a provider’s gem dependency.
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/active_agent/providers/_base_provider.rb', line 21 def require_gem!(type, file_name) gem_name, requirement, package_name = GEM_LOADERS.fetch(type) provider_name = file_name.split("/").last.delete_suffix(".rb").camelize begin gem(gem_name, requirement) require(package_name) rescue LoadError raise LoadError, "The '#{gem_name}' gem is required for #{provider_name}. Please add it to your Gemfile and run `bundle install`." end end |