Class: SwarmSDK::Tools::DocumentConverters::BaseConverter
- Inherits:
-
Object
- Object
- SwarmSDK::Tools::DocumentConverters::BaseConverter
- Defined in:
- lib/swarm_sdk/tools/document_converters/base_converter.rb
Overview
Base class for document converters Provides common interface and utility methods for converting various document formats
Direct Known Subclasses
Class Method Summary collapse
-
.available? ⇒ Boolean
Check if the required gem is available.
-
.extensions ⇒ Array<String>
File extensions this converter handles.
-
.format_name ⇒ String
Human-readable format name.
-
.gem_available?(gem_name) ⇒ Boolean
Check if a gem is installed.
-
.gem_name ⇒ String
The gem name required for this converter.
Instance Method Summary collapse
-
#convert(file_path) ⇒ String, RubyLLM::Content
Convert a document file to text/content.
Class Method Details
.available? ⇒ Boolean
Check if the required gem is available
30 31 32 |
# File 'lib/swarm_sdk/tools/document_converters/base_converter.rb', line 30 def available? gem_available?(gem_name) end |
.extensions ⇒ Array<String>
File extensions this converter handles
24 25 26 |
# File 'lib/swarm_sdk/tools/document_converters/base_converter.rb', line 24 def extensions raise NotImplementedError, "#{name} must implement .extensions" end |
.format_name ⇒ String
Human-readable format name
18 19 20 |
# File 'lib/swarm_sdk/tools/document_converters/base_converter.rb', line 18 def format_name raise NotImplementedError, "#{name} must implement .format_name" end |
.gem_available?(gem_name) ⇒ Boolean
Check if a gem is installed
37 38 39 40 41 42 |
# File 'lib/swarm_sdk/tools/document_converters/base_converter.rb', line 37 def gem_available?(gem_name) Gem::Specification.find_by_name(gem_name) true rescue Gem::LoadError false end |
.gem_name ⇒ String
The gem name required for this converter
12 13 14 |
# File 'lib/swarm_sdk/tools/document_converters/base_converter.rb', line 12 def gem_name raise NotImplementedError, "#{name} must implement .gem_name" end |
Instance Method Details
#convert(file_path) ⇒ String, RubyLLM::Content
Convert a document file to text/content
48 49 50 |
# File 'lib/swarm_sdk/tools/document_converters/base_converter.rb', line 48 def convert(file_path) raise NotImplementedError, "#{self.class.name} must implement #convert" end |