class Progstr::Filer::Attachment

Attributes

attribute[RW]
file[RW]
id[RW]
pre_validated[RW]
uploader_class[RW]

Public Class Methods

empty(uploader_class) click to toggle source
# File lib/filer/attachment.rb, line 50
def self.empty(uploader_class)
  result = EmptyAttachment.new
  result.uploader_class = uploader_class
  result
end
file_id(file) click to toggle source
# File lib/filer/attachment.rb, line 74
def self.file_id(file)
  if file.respond_to?(:id)
    file.id
  else
    generate_id
  end
end
from_file(uploader_class, attribute, file) click to toggle source
# File lib/filer/attachment.rb, line 63
def self.from_file(uploader_class, attribute, file)
  result = Attachment.new
  result.id = file_id(file)
  result.attribute = attribute
  result.uploader_class = uploader_class

  result.file = file
  result.pre_validated = false
  result
end
from_id(uploader_class, attribute, id) click to toggle source
# File lib/filer/attachment.rb, line 101
def self.from_id(uploader_class, attribute, id)
  result = Attachment.new
  result.id = id
  result.attribute = attribute
  result.uploader_class = uploader_class

  result.pre_validated = true
  result
end
from_json(uploader_class, attribute, json) click to toggle source
# File lib/filer/attachment.rb, line 56
def self.from_json(uploader_class, attribute, json)
  file = FileLike.new(json)
  result = from_file(uploader_class, attribute, file)
  result.pre_validated = true
  return result
end
generate_id() click to toggle source
# File lib/filer/attachment.rb, line 82
def self.generate_id
  uuid = @@id_generator.generate
  uuid.gsub("-", "")
end

Public Instance Methods

blank?() click to toggle source
# File lib/filer/attachment.rb, line 111
def blank?
  false
end
display_hash() click to toggle source
# File lib/filer/attachment.rb, line 136
def display_hash
  {
    "name" => path,
    "size" => size,
    "id" => id
  }
end
display_json() click to toggle source
# File lib/filer/attachment.rb, line 132
def display_json
  MultiJson.encode(display_hash)
end
extension() click to toggle source
# File lib/filer/attachment.rb, line 96
def extension
  from_file = File.extname(path) || ""
  from_file.sub(".", "")
end
mark_uploaded!() click to toggle source
# File lib/filer/attachment.rb, line 147
def mark_uploaded!
  @uploaded = true
end
need_upload?() click to toggle source
# File lib/filer/attachment.rb, line 151
def need_upload?
  if uploaded?
    false
  elsif file.nil?
    false
  elsif file.kind_of?(FileLike)
    false
  else
    true
  end
end
path() click to toggle source
# File lib/filer/attachment.rb, line 91
def path
  (file.original_filename if file.respond_to?(:original_filename)) ||
    (file_path = file.path if file.respond_to?(:path))
end
public_url() click to toggle source
# File lib/filer/attachment.rb, line 124
def public_url
  if !blank?
    "#{Progstr::Filer.url_prefix}files/data/#{Progstr::Filer.access_key}/#{id}"
  else
    ""
  end
end
size() click to toggle source
# File lib/filer/attachment.rb, line 87
def size
  file.size
end
uploaded?() click to toggle source
# File lib/filer/attachment.rb, line 144
def uploaded?
  @uploaded == true
end
url() click to toggle source
# File lib/filer/attachment.rb, line 115
def url
  if !blank?
    token = Progstr::Filer.generate_download_auth_token(id)
    "#{Progstr::Filer.url_prefix}files/data/#{Progstr::Filer.access_key}/#{id}?auth=#{token}"
  else
    ""
  end
end