Commit 3f0360c

mo khan <mo@mokhan.ca>
2026-09-13 04:48:24
feat: accept model: from provider_options, fall back to ENV
elelem 0.13.0 forwards provider_options: from Elelem.ask through to build_provider, so callers can pick a model per call without setting OPENAI_MODEL. ENV fallback still applies when model: isn't given.
1 parent eff92db
lib/elelem/openai.rb
@@ -9,9 +9,9 @@ require_relative "openai/version"
 require_relative "openai/provider"
 
 Elelem.configure do |config|
-  config.provider(:openai) do
+  config.provider(:openai) do |model: nil, **|
     Elelem::OpenAI::Provider.new(
-      model: ENV.fetch("OPENAI_MODEL", "gpt-4o"),
+      model: model || ENV.fetch("OPENAI_MODEL", "gpt-4o"),
       api_key: ENV.fetch("OPENAI_API_KEY")
     )
   end
elelem-openai.gemspec
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
   spec.executables = ["elelem-openai"]
   spec.require_paths = ["lib"]
 
-  spec.add_dependency "elelem", "~> 0.12"
+  spec.add_dependency "elelem", "~> 0.13"
   spec.add_dependency "json", "~> 3.0"
   spec.add_dependency "net-http", "~> 0.9"
   spec.add_dependency "uri", "~> 1.1"
Gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: .
   specs:
     elelem-openai (0.2.0)
-      elelem (~> 0.12)
+      elelem (~> 0.13)
       json (~> 3.0)
       net-http (~> 0.9)
       uri (~> 1.1)
@@ -13,7 +13,7 @@ GEM
     ast (2.4.3)
     bigdecimal (4.1.2)
     diff-lcs (1.6.2)
-    elelem (0.12.0)
+    elelem (0.13.0)
       erb (~> 6.0)
       forwardable (~> 1.4)
       io-console (~> 0.9)
@@ -124,7 +124,7 @@ CHECKSUMS
   bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
   bundler (4.0.20) sha256=7978a8ac648767f5e635bc522445b79e80a52b907a39a36c2d8085ed6bc762ae
   diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
-  elelem (0.12.0) sha256=dd779834b48a127fac27e01b56ee8add14979ca738aa348b5f2e28fcb6857581
+  elelem (0.13.0)
   elelem-openai (0.2.0)
   erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
   forwardable (1.4.0) sha256=f1cd40cc9812937980e1c76f1aa053660990a7c9b6a98fc37d945468afcce838