class Waste::Uploader

Attributes

server_url[R]

Public Class Methods

new(server_url = nil) click to toggle source
# File lib/waste/uploader.rb, line 12
def initialize(server_url = nil)
  @server_url = server_url || Waste::DEFAULT_URL
  @server_url = @server_url.dup
  @server_url = @server_url.chop if @server_url.end_with?('/')
end

Public Instance Methods

upload_path(path) click to toggle source

Take in a path and return a key

# File lib/waste/uploader.rb, line 19
def upload_path(path)
  fail_with 'No input file given' unless path
  fail_with "#{path}: No such path" unless File.exists?(path)
  upload_raw open(path).read
end
upload_raw(data) click to toggle source

Take in data and return a key

# File lib/waste/uploader.rb, line 26
def upload_raw(data)
  data.rstrip!
  response = do_post data
  if response.status == 200
    data = JSON.parse(response.body)
    data['key']
  else
    fail_with "failure uploading: #{response.body}"
  end
rescue JSON::ParserError => e
  fail_with "failure parsing response: #{e.message}"
rescue Errno::ECONNREFUSED => e
  fail_with "failure connecting: #{e.message}"
end

Private Instance Methods

connection() click to toggle source
# File lib/waste/uploader.rb, line 47
def connection
  @connection ||= Faraday.new(:url => server_url) do |c|
    c.adapter Faraday.default_adapter
  end
end
do_post(data) click to toggle source
# File lib/waste/uploader.rb, line 43
def do_post(data)
  connection.post('/documents', data)
end
fail_with(msg) click to toggle source
# File lib/waste/uploader.rb, line 53
def fail_with(msg)
  raise Exception.new(msg)
end