Class: RagRuby::Loaders::Directory

Inherits:
Base
  • Object
show all
Defined in:
lib/rag_ruby/loaders/directory.rb

Constant Summary collapse

DEFAULT_GLOB =
"**/*.{txt,md,markdown}"

Instance Method Summary collapse

Constructor Details

#initialize(glob: DEFAULT_GLOB) ⇒ Directory

Returns a new instance of Directory.



8
9
10
11
# File 'lib/rag_ruby/loaders/directory.rb', line 8

def initialize(glob: DEFAULT_GLOB)
  @glob = glob
  @file_loader = File.new
end

Instance Method Details

#load(dir_path) ⇒ Object

Raises:

  • (ArgumentError)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rag_ruby/loaders/directory.rb', line 13

def load(dir_path)
  dir_path = ::File.expand_path(dir_path)
  raise ArgumentError, "Directory not found: #{dir_path}" unless ::Dir.exist?(dir_path)

  pattern = ::File.join(dir_path, @glob)
  files = ::Dir.glob(pattern).sort

  files.flat_map do |file_path|
    @file_loader.load(file_path)
  rescue ArgumentError
    # Skip unsupported file types
    []
  end
end