class VzaarApi::Signature::Factory

Constants

MIN_S3_MULTIPART_FILE_SIZE

5MB is min size required for multipart upload

Attributes

attrs[R]
path[R]

Public Class Methods

create(attrs) click to toggle source
# File lib/vzaar_api/signature/factory.rb, line 15
def self.create(attrs)
  new(attrs).create
end
new(attrs) click to toggle source
# File lib/vzaar_api/signature/factory.rb, line 10
def initialize(attrs)
  @attrs = attrs
  @path = attrs.fetch(:path)
end

Public Instance Methods

create() click to toggle source
# File lib/vzaar_api/signature/factory.rb, line 19
def create
  klass = multipart? ? Multipart : Single
  klass.create(multipart_attrs)
end
multipart?() click to toggle source
# File lib/vzaar_api/signature/factory.rb, line 24
def multipart?
  multipart_attrs[:filesize].to_i >= MIN_S3_MULTIPART_FILE_SIZE
end
multipart_attrs() click to toggle source
# File lib/vzaar_api/signature/factory.rb, line 28
def multipart_attrs
  {
    filesize: File::Stat.new(path).size,
    filename: File.basename(path)
  }
rescue Errno::ENOENT
  raise Error.new 'Invalid parameters: path is invalid'
end