Sha256: 7588c08e0ef6b084732f512f2d7ac526e4d6fd4a084f0b4a4af9a72e6c7888a0
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
# frozen_string_literal: true require 'net/http' require 'tempfile' require 'open-uri' module RailsExecution module Files class Reader def initialize(task) @task = task @tempfile_by_name = {} end def call raise ::NotImplementedError, "load_files (Output: { 'file1' => 'file-url', file2 => 'file-url' })" end # Return: the Tempfile instance def get_file(name) return nil if name.blank? @file_url_by_name ||= call file_url = @file_url_by_name[name] return nil if file_url.blank? @tempfile_by_name[name] ||= save_to_tempfile(name, file_url) end private attr_reader :task def save_to_tempfile(file_name, url) file = URI.open(url) return file if file.is_a?(Tempfile) raise "Unsupported the Filetype #{file.class.name}" unless file.is_a?(StringIO) file_extension = file.base_uri.path.split('.').last file_extension = ".#{file_extension}" if file_extension tempfile = Tempfile.new([file_name, file_extension]) tempfile.binmode tempfile.write(file.string) tempfile.rewind tempfile.close tempfile end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_execution-0.1.11 | lib/rails_execution/files/reader.rb |