@ -7,9 +7,15 @@ module AccountAvatar
class_methods do
class_methods do
def avatar_styles ( file )
def avatar_styles ( file )
styles = { original : '120x120#' }
styles = { }
geometry = Paperclip :: Geometry . from_file ( file )
styles [ :original ] = '120x120#' if geometry . width != geometry . height || geometry . width > 120 || geometry . height > 120
styles [ :static ] = { format : 'png' , convert_options : '-coalesce' } if file . content_type == 'image/gif'
styles [ :static ] = { format : 'png' , convert_options : '-coalesce' } if file . content_type == 'image/gif'
styles
styles
rescue Paperclip :: Errors :: NotIdentifiedByImageMagickError
{ }
end
end
private :avatar_styles
private :avatar_styles
@ -17,7 +23,7 @@ module AccountAvatar
included do
included do
# Avatar upload
# Avatar upload
has_attached_file :avatar , styles : - > ( f ) { avatar_styles ( f ) } , convert_options : { all : '-quality 80 - strip' }
has_attached_file :avatar , styles : - > ( f ) { avatar_styles ( f ) } , convert_options : { all : '-strip' }
validates_attachment_content_type :avatar , content_type : IMAGE_MIME_TYPES
validates_attachment_content_type :avatar , content_type : IMAGE_MIME_TYPES
validates_attachment_size :avatar , less_than : 2 . megabytes
validates_attachment_size :avatar , less_than : 2 . megabytes
end
end