class Rusic::Uploaders::Base
Attributes
api_host[RW]
api_key[RW]
file[RW]
theme[RW]
Public Class Methods
new(file)
click to toggle source
# File lib/rusic/uploaders/base.rb, line 8 def initialize(file) @file = file end
Public Instance Methods
perform()
click to toggle source
# File lib/rusic/uploaders/base.rb, line 32 def perform fail NotImplementedError, 'define a #perform method on your uploader' end
upload_file(options = {})
click to toggle source
# File lib/rusic/uploaders/base.rb, line 12 def upload_file(options = {}) @api_key = options.fetch('api_key') @api_host = options.fetch('api_host', 'api.rusic.com') @theme = options.fetch('theme') report(message: message, complete: '', type: 'inline', indent_size: 2) do begin perform print(' [done]'.green) rescue RestClient::UnprocessableEntity, RestClient::Exception => e puts e print(' [failed]'.red) end end rescue KeyError => e puts puts e.message exit(1) end
Protected Instance Methods
client()
click to toggle source
# File lib/rusic/uploaders/base.rb, line 42 def client headers = { 'X-API-Key' => api_key, 'Accept' => 'application/vnd.rusic.v1+json' } @client ||= RestClient::Resource.new("http://#{api_host}", headers: headers) end
message()
click to toggle source
# File lib/rusic/uploaders/base.rb, line 38 def message "Uploading #{file.descriptor}" end