Comparing changes

v0.2.0 v0.2.1
3 commits 5 files changed

Commits

f221137 chore: update Gemfile.lock mo khan 2026-09-08 00:27:26
6d9ad11 bump to 0.2.1 mo khan 2026-09-08 00:21:21
Changed files (5)
lib/elelem/ollama/client.rb → lib/elelem/ollama/provider.rb
@@ -2,7 +2,7 @@
 
 module Elelem
   module Ollama
-    class Client
+    class Provider
       def initialize(
         model:,
         host: "localhost:11434",
lib/elelem/ollama/version.rb
@@ -2,6 +2,6 @@
 
 module Elelem
   module Ollama
-    VERSION = "0.2.0"
+    VERSION = "0.2.1"
   end
 end
lib/elelem/ollama.rb
@@ -6,11 +6,11 @@ require "net/http"
 require "uri"
 
 require_relative "ollama/version"
-require_relative "ollama/client"
+require_relative "ollama/provider"
 
 Elelem.configure do |config|
   config.provider(:ollama) do
-    Elelem::Ollama::Client.new(
+    Elelem::Ollama::Provider.new(
       model: ENV.fetch("OLLAMA_MODEL", "gpt-oss:latest"),
       host: ENV.fetch("OLLAMA_HOST", "localhost:11434"),
       think: ENV["OLLAMA_THINK"],
spec/elelem/ollama/client_spec.rb → spec/elelem/ollama/provider_spec.rb
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
-RSpec.describe Elelem::Ollama::Client do
-  subject(:client) { described_class.new(model: "gpt-oss:latest", http:, **params) }
+RSpec.describe Elelem::Ollama::Provider do
+  subject(:provider) { described_class.new(model: "gpt-oss:latest", http:, **params) }
 
   let(:params) { {} }
   let(:messages) { [{ role: "user", content: "hi" }] }
@@ -30,7 +30,7 @@ RSpec.describe Elelem::Ollama::Client do
 
   describe "#fetch" do
     it "sends only model, messages and stream by default" do
-      client.fetch(messages) { }
+      provider.fetch(messages) { }
 
       expect(body).to eq(model: "gpt-oss:latest", messages:, stream: true)
     end
@@ -38,7 +38,7 @@ RSpec.describe Elelem::Ollama::Client do
     it "sends tools when present" do
       tools = [{ type: "function", function: { name: "read" } }]
 
-      client.fetch(messages, tools) { }
+      provider.fetch(messages, tools) { }
 
       expect(body[:tools]).to eq(tools)
     end
@@ -47,7 +47,7 @@ RSpec.describe Elelem::Ollama::Client do
       let(:params) { { think: "high", keep_alive: "30m", options: { num_ctx: 32_768 } } }
 
       it "sends them in the request body" do
-        client.fetch(messages) { }
+        provider.fetch(messages) { }
 
         expect(body).to include(think: "high", keep_alive: "30m", options: { num_ctx: 32_768 })
       end
@@ -57,7 +57,7 @@ RSpec.describe Elelem::Ollama::Client do
       let(:params) { { options: {} } }
 
       it "omits options" do
-        client.fetch(messages) { }
+        provider.fetch(messages) { }
 
         expect(body).not_to have_key(:options)
       end
@@ -67,7 +67,7 @@ RSpec.describe Elelem::Ollama::Client do
       let(:params) { { params: { format: "json", truncate: false, top_logprobs: 3 } } }
 
       it "merges them into the request body" do
-        client.fetch(messages) { }
+        provider.fetch(messages) { }
 
         expect(body).to include(format: "json", truncate: false, top_logprobs: 3)
       end
@@ -77,7 +77,7 @@ RSpec.describe Elelem::Ollama::Client do
       let(:params) { { think: "low", params: { think: "high" } } }
 
       it "prefers the passthrough value" do
-        client.fetch(messages) { }
+        provider.fetch(messages) { }
 
         expect(body[:think]).to eq("high")
       end
Gemfile.lock
@@ -1,7 +1,7 @@
 PATH
   remote: .
   specs:
-    elelem-ollama (0.2.0)
+    elelem-ollama (0.2.1)
       elelem (~> 0.11)
       json (~> 3.0)
       net-http (~> 0.9)
@@ -12,8 +12,9 @@ GEM
   specs:
     bigdecimal (4.1.2)
     diff-lcs (1.6.2)
-    elelem (0.13.0)
+    elelem (0.11.0)
       erb (~> 6.0)
+      forwardable (~> 1.4)
       io-console (~> 0.9)
       json (~> 3.0)
       json_schemer (~> 2.5)
@@ -25,6 +26,7 @@ GEM
       shellwords (~> 0.2)
       uri (~> 1.0)
     erb (6.0.7)
+    forwardable (1.4.0)
     hana (1.3.7)
     io-console (0.9.2)
     irb (1.18.0)
@@ -93,9 +95,10 @@ CHECKSUMS
   bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
   bundler (4.0.20) sha256=7978a8ac648767f5e635bc522445b79e80a52b907a39a36c2d8085ed6bc762ae
   diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
-  elelem (0.13.0)
-  elelem-ollama (0.2.0)
+  elelem (0.11.0) sha256=552cafb092320e3896b8e07572d322fe2b94f0f10d965bf7b993b74517a6f744
+  elelem-ollama (0.2.1)
   erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
+  forwardable (1.4.0) sha256=f1cd40cc9812937980e1c76f1aa053660990a7c9b6a98fc37d945468afcce838
   hana (1.3.7) sha256=5425db42d651fea08859811c29d20446f16af196308162894db208cac5ce9b0d
   io-console (0.9.2) sha256=efa74f891dd03c0939a931dfc6e74c2813d904763d456ea9762b0525e748db08
   irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3