Commit 0790bc5

mo khan <mo@mokhan.ca>
2025-11-06 20:19:29
refactor: move Tool to a separate file
1 parent 6a6ba04
lib/elelem/tool.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+module Elelem
+  class Tool
+    def initialize(schema, &block)
+      @schema = schema
+      @block = block
+    end
+
+    def call(args)
+      @block.call(args)
+    end
+
+    def to_h
+      @schema
+    end
+  end
+end
lib/elelem/toolbox.rb
@@ -1,21 +1,6 @@
 # frozen_string_literal: true
 
 module Elelem
-  class Tool
-    def initialize(schema, &block)
-      @schema = schema
-      @block = block
-    end
-
-    def call(args)
-      @block.call(args)
-    end
-
-    def to_h
-      @schema
-    end
-  end
-
   class Toolbox
     attr_reader :tools
 
lib/elelem.rb
@@ -16,6 +16,7 @@ require "timeout"
 require_relative "elelem/agent"
 require_relative "elelem/application"
 require_relative "elelem/conversation"
+require_relative "elelem/tool"
 require_relative "elelem/toolbox"
 require_relative "elelem/version"
 
elelem.gemspec
@@ -38,6 +38,7 @@ Gem::Specification.new do |spec|
     "lib/elelem/application.rb",
     "lib/elelem/conversation.rb",
     "lib/elelem/system_prompt.erb",
+    "lib/elelem/tool.rb",
     "lib/elelem/toolbox.rb",
     "lib/elelem/version.rb",
   ]