Chatwoot/lib/local_resource.rb

39 lines
568 B
Ruby
Raw Normal View History

class LocalResource
attr_reader :uri
def initialize(uri)
@uri = uri
end
def file
@file ||= Tempfile.new(tmp_filename, tmp_folder, encoding: encoding).tap do |f|
io.rewind
f.write(io.read)
f.close
end
end
def io
@io ||= uri.open
end
def encoding
io.rewind
io.read.encoding
end
def tmp_filename
[
Time.now.to_i.to_s,
Pathname.new(uri.path).extname
]
end
def tmp_folder
# If we're using Rails:
Rails.root.join('tmp')
# Otherwise:
# '/wherever/you/want'
end
end