Sha256: 6b66a583ef3cc510a4b2b94f00fc4314b9f0db9d392c6a628b9519d1eab318fa

Contents?: true

Size: 739 Bytes

Versions: 9

Compression:

Stored size: 739 Bytes

Contents

# frozen_string_literal: true

module DevSuite
  module Utils
    module FileLoader
      class LoaderManager
        def load(path)
          loader = find_loader_for(path)
          loader.load(path)
        end

        private

        def find_loader_for(path)
          extension = extract_extension(path)
          loader = registry.find_loader(extension)
          raise LoaderNotFoundError, "No loader registered for #{extension}" unless loader

          loader
        end

        def extract_extension(path)
          ::File.extname(path).delete_prefix(".")
        end

        def registry
          Config.configuration.registry
        end
      end

      class LoaderNotFoundError < StandardError; end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
dev_suite-0.2.13 lib/dev_suite/utils/file_loader/loader_manager.rb
dev_suite-0.2.12 lib/dev_suite/utils/file_loader/loader_manager.rb
dev_suite-0.2.11 lib/dev_suite/utils/file_loader/loader_manager.rb
dev_suite-0.2.10 lib/dev_suite/utils/file_loader/loader_manager.rb
dev_suite-0.2.9 lib/dev_suite/utils/file_loader/loader_manager.rb
dev_suite-0.2.8 lib/dev_suite/utils/file_loader/loader_manager.rb
dev_suite-0.2.7 lib/dev_suite/utils/file_loader/loader_manager.rb
dev_suite-0.2.6 lib/dev_suite/utils/file_loader/loader_manager.rb
dev_suite-0.2.5 lib/dev_suite/utils/file_loader/loader_manager.rb