53 lines
1.2 KiB
Ruby
53 lines
1.2 KiB
Ruby
module AvatarHelper
|
|
|
|
AVATAR_SIZE="50x50"
|
|
|
|
def avatar_image(source)
|
|
File.join(relative_path, avatar_directory(source.class), source.id.to_s)
|
|
end
|
|
|
|
def relative_path
|
|
"avatars" #File.join("images","avatars")
|
|
end
|
|
|
|
def storage_path
|
|
File.join(Rails.root, "public", "images", relative_path)
|
|
end
|
|
|
|
def avatar_directory(source_type)
|
|
"#{source_type}"
|
|
end
|
|
|
|
def avatar_filename(source_id,image_file)
|
|
"#{source_id}" #<< file_extension(image_file)
|
|
end
|
|
|
|
def disk_filename(source_type,source_id,image_file=nil)
|
|
File.join(storage_path,avatar_directory(source_type),avatar_filename(source_id,image_file))
|
|
end
|
|
|
|
def file_extension(filename=nil)
|
|
$1 if filename =~ %r{(\.[a-zA-Z0-9]+)$}
|
|
end
|
|
|
|
def get_avatar(source)
|
|
if source.nil?
|
|
return File.join(relative_path,'AnonymousUser','0')
|
|
end
|
|
if source.class && source.id && File.exist?(disk_filename(source.class,source.id))
|
|
avatar_image(source)
|
|
else
|
|
File.join(relative_path,avatar_directory(source.class),'0')
|
|
end
|
|
end
|
|
|
|
def get_avatar?(source)
|
|
if source && File.exist?(disk_filename(source.class,source.id))
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
end
|