class Eyeson::FileUpload

Manages file uploads

Attributes

file[RW]

Public Class Methods

new(access_key) click to toggle source
# File lib/eyeson/file_upload.rb, line 11
def initialize(access_key)
  @access_key = access_key
  @file       = nil
end

Public Instance Methods

upload_from(url) click to toggle source
# File lib/eyeson/file_upload.rb, line 16
def upload_from(url)
  Tempfile.class_eval do
    attr_accessor :original_filename
  end

  url = URI(url)
  @file = OpenURI.open_uri url
  @file.original_filename = File.basename url.path

  upload!
end

Private Instance Methods

upload!() click to toggle source
# File lib/eyeson/file_upload.rb, line 30
def upload!
  response = Eyeson.post("/rooms/#{@access_key}/files", file: @file)
  raise ValidationFailed, response['error'] if response.key? 'error'
end