45 lines
700 B
Ruby
45 lines
700 B
Ruby
# -*- encoding : utf-8 -*-
|
|
class DataFile < ActiveRecord::Base
|
|
belongs_to :file_folder
|
|
|
|
|
|
mount_uploader :file, FileUploader
|
|
|
|
before_save do
|
|
if !self.name?
|
|
self.name = File.basename(self.file.filename, File.extname(self.file.filename)).to_s if self.file?
|
|
end
|
|
|
|
end
|
|
|
|
before_create { generate_token() }
|
|
|
|
|
|
|
|
def file_type
|
|
|
|
|
|
mime = `file --mime -br "#{self.file.path}"`.strip.split(';')[0]
|
|
mime
|
|
|
|
end
|
|
|
|
def abstract_file_name
|
|
self.name
|
|
end
|
|
|
|
def abstract_file_name_slug
|
|
self.name.to_slug
|
|
end
|
|
|
|
|
|
|
|
def generate_token()
|
|
begin
|
|
self[:token] = SecureRandom.urlsafe_base64
|
|
end while DataFile.exists?(:token => self[:token])
|
|
end
|
|
|
|
|
|
end
|