module Projects class UploadService < BaseService def initialize(project, file) @project, @file = project, file end def execute return nil unless @file and @file.size <= max_attachment_size uploader = FileUploader.new(@project) uploader.store!(@file) filename = uploader.image? ? uploader.file.basename : uploader.file.filename { 'alt' => filename, 'url' => uploader.secure_url, 'is_image' => uploader.image? } end private def max_attachment_size current_application_settings.max_attachment_size.megabytes.to_i end end end