Sha256: d6e91662f8c5ad5b1a694196bc74092a5c16dffbd3f95e1f2f7eb7bbed789fee
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
# frozen_string_literal: true require 'url_finder/readers/csv_reader' require 'url_finder/readers/html_reader' require 'url_finder/readers/markdown_reader' require 'url_finder/readers/string_reader' module UrlFinder # Handles reader delegatation class Reader FORMAT_READERS = { 'markdown' => MarkdownReader, 'md' => MarkdownReader, 'html' => HTMLReader, 'csv' => CSVReader, 'string' => StringReader, 'txt' => StringReader, }.freeze # The raw content attr_reader :content # Instansiates reader def initialize(content, file_format) @content = content @file_format = file_format end # Returns the file format # @return [String] the file format def file_format @file_format.to_s.downcase end # Returns the appropriate reader for the given file format or raises error # @return [BaseReader] subclass of base reader def urls reader_klass = FORMAT_READERS.fetch(file_format) do raise(ArgumentError, "unknown format #{file_format}") end reader_klass.new(content) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
url_finder-0.1.0 | lib/url_finder/reader.rb |