module DelayedUploaderDemo # Get asset from demo_files folder def self.get_asset(user, team, file_name) Asset.new( file: File.open( "#{Rails.root}/app/assets/demo_files/#{file_name}", 'r' ), created_by: user, team: team, last_modified_by: user ) end # Generates results asset for given module, file_name assumes file is located # in demo_files. def self.generate_result_asset( my_module:, current_user:, current_team:, result_name:, created_at: Time.now, file_name:, comment: nil ) temp_asset = get_asset(current_user, current_team, file_name) temp_result = Result.new( created_at: created_at, user: current_user, my_module: my_module, name: result_name, asset: temp_asset ) temp_result.save temp_asset.save # Generate comment if it exists generate_result_comment(temp_result, current_user, comment) if comment temp_asset.post_process_file(my_module.experiment.project.team) end # Adds asset to existing step def self.add_step_asset(step:, current_user:, current_team:, file_name:) temp_asset = DelayedUploaderDemo.get_asset(current_user, current_team, file_name) step.assets << temp_asset temp_asset.post_process_file(step.my_module.experiment.project.team) end def self.generate_result_comment(result, user, message, created_at = nil) created_at ||= result.created_at ResultComment.create( user: user, message: message, created_at: created_at, result: result ) end end