Sha256: 82ef098025d2d62f86f1495e881958c8dbfd7fb5ea3af2928717519e1e4a0058
Contents?: true
Size: 1.21 KB
Versions: 3
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true require 'net/http' require 'tempfile' require '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 = 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rails_execution-0.1.12 | lib/rails_execution/files/reader.rb |
rails_execution-0.1.7 | lib/rails_execution/files/reader.rb |
rails_execution-0.1.5 | lib/rails_execution/files/reader.rb |