Module: LoaderRuby

Defined in:
lib/loader_ruby.rb,
lib/loader_ruby/error.rb,
lib/loader_ruby/version.rb,
lib/loader_ruby/document.rb,
lib/loader_ruby/loaders/csv.rb,
lib/loader_ruby/loaders/pdf.rb,
lib/loader_ruby/loaders/web.rb,
lib/loader_ruby/loaders/base.rb,
lib/loader_ruby/loaders/docx.rb,
lib/loader_ruby/loaders/html.rb,
lib/loader_ruby/loaders/text.rb,
lib/loader_ruby/configuration.rb,
lib/loader_ruby/html_extractor.rb,
lib/loader_ruby/encoding_detector.rb

Defined Under Namespace

Modules: EncodingDetector, HtmlExtractor, Loaders Classes: Configuration, DependencyMissingError, Document, EncodingError, Error, FileNotFoundError, FileTooLargeError, TooManyRedirectsError, UnsupportedFormatError

Constant Summary collapse

FORMAT_MAP =
{
  ".txt" => Loaders::Text, ".md" => Loaders::Text, ".markdown" => Loaders::Text,
  ".text" => Loaders::Text, ".log" => Loaders::Text, ".rst" => Loaders::Text,
  ".pdf" => Loaders::Pdf,
  ".docx" => Loaders::Docx,
  ".csv" => Loaders::Csv, ".tsv" => Loaders::Csv,
  ".html" => Loaders::Html, ".htm" => Loaders::Html
}.freeze
VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.configurationObject



28
29
30
# File 'lib/loader_ruby.rb', line 28

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



32
33
34
# File 'lib/loader_ruby.rb', line 32

def configure
  yield(configuration)
end

.load(source, **opts) ⇒ Object

Raises:

  • (ArgumentError)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/loader_ruby.rb', line 40

def load(source, **opts)
  raise ArgumentError, "source cannot be nil" if source.nil?
  raise ArgumentError, "source cannot be empty" if source.is_a?(String) && source.strip.empty?

  if source.start_with?("http://", "https://")
    Loaders::Web.new.load(source, **opts)
  else
    ext = File.extname(source).downcase
    loader_class = FORMAT_MAP[ext]
    raise UnsupportedFormatError, "Unsupported format: #{ext}" unless loader_class

    loader_class.new.load(source, **opts)
  end
end

.load_batch(sources, **opts) ⇒ Object



55
56
57
# File 'lib/loader_ruby.rb', line 55

def load_batch(sources, **opts)
  sources.map { |source| load(source, **opts) }
end

.reset_configuration!Object



36
37
38
# File 'lib/loader_ruby.rb', line 36

def reset_configuration!
  @configuration = Configuration.new
end