class Riffer::Rig::ProviderSetup
Constants
- ANTHROPIC_CREDENTIAL_CHAIN
- AWS_SHARED_CONFIG_REGION
- TABLE
-
Upstream candidate: rifferโs providers could declare their own
SDKgem and credential fields, and this table would go.
Attributes
sdk
[R]
[ String, String ]?
url
[R]
String?
@dynamic url, sdk, fields
Public Class Methods
(String | Symbol identifier) → Riffer::Rig::ProviderSetup
Source
# File lib/riffer/rig/provider_setup.rb, line 130 def self.for(identifier) registered_setup(identifier) || new(fields: [Field.new(name: :api_key, env: ["#{identifier.to_s.upcase}_API_KEY"], secret: true, required: true)]) end
@rbs identifier: String | Symbol @rbs return: Riffer::Rig::ProviderSetup
(Hash[Symbol, untyped] hash) → Riffer::Rig::ProviderSetup
Source
# File lib/riffer/rig/provider_setup.rb, line 109 def self.from(hash) fields = hash.fetch(:fields).map do |field| Field.new( name: field.fetch(:name), env: field.fetch(:env), secret: field.fetch(:secret, false), required: field.fetch(:required, false), fallback: field[:fallback] ) end new(fields: fields, url: hash[:url], chain: hash.fetch(:chain, false), sdk: hash[:sdk]) end
@rbs hash: Hash[Symbol, untyped] @rbs return: Riffer::Rig::ProviderSetup
(fields: Array[Riffer::Rig::ProviderSetup::Field], ?url: String?, ?chain: bool | ^() → bool, ?sdk: [ String, String ]?) → void
Source
# File lib/riffer/rig/provider_setup.rb, line 16 def initialize(fields:, url: nil, chain: false, sdk: nil) @url = url @chain = chain @sdk = sdk&.freeze @fields = fields.freeze freeze end
@rbs fields: Array @rbs url: String? @rbs chain: bool | ^() -> bool @rbs sdk: [String, String]? @rbs return: void
(String | Symbol identifier) → Riffer::Rig::ProviderSetup?
Source
# File lib/riffer/rig/provider_setup.rb, line 124 def self.registered_setup(identifier) Riffer::Rig::Providers.setup(identifier) || TABLE[identifier.to_sym] end
@rbs identifier: String | Symbol @rbs return: Riffer::Rig::ProviderSetup?
Public Instance Methods
() → bool
Source
# File lib/riffer/rig/provider_setup.rb, line 25 def chain? chain = @chain chain.is_a?(Proc) ? chain.call : chain end
@rbs return: bool
(Array[Symbol] missing) → String
Source
# File lib/riffer/rig/provider_setup.rb, line 101 def missing_fields(missing) fields.select { |field| missing.include?(field.name) } .map { |field| "#{field.name} (#{field.env.join(' or ')})" } .join(', ') end
@rbs missing: Array @rbs return: String