class QuizController < ApplicationController Results='quizresults/' def first_time if pa=params[:id] session[:mcfile]=pa else session[:mcfile]=nil end session[:displayed]='' session[:correct]=session[:wrong]=0 session[:choices]=nil what_next end def filechoices? false end def start_choices quizfolder=get_quiz_dir session[:showpic]=nil if session[:mcfile] lines=get_page(quizfolder, session[:mcfile], get_question_no) lines.delete_if do |l| if l =~ /(JPG|JPEG|GIF|PNG)$/i session[:showpic]=l else false end end if lines.size > 2 session[:displayed] = lines.shift session[:correct_answer]=lines.shift lines.insert(rand(lines.size+1), session[:correct_answer]) else fn=Results+get_user+'.txt' begin st=IO.read(fn).split('~').last session[:displayed]=st.gsub(/,.*\n/,'
') rescue session[:displayed]='' end session[:mcfile]=nil session[:question_no]=0 ["correct #{get_correct}", "wrong #{get_wrong}"] end else quizfolder=get_quiz_dir get_textfile_list quizfolder end end def selected(str) if session[:mcfile] if str == get_correct_answer session[:correct] = get_correct+1 logger.info "#{get_question_no+1}.correct: #{str}" else session[:wrong]=get_wrong+1 logger.info "#{get_question_no+1}.wrong: #{str}" fn=Results+get_user+'.txt' begin open(fn, 'a') { |f| f.puts "#{get_displayed}: #{get_correct_answer}, not #{str}"} rescue logger.info "unable to write to #{fn}" end end session[:question_no]=get_question_no+1 else session[:mcfile]=str session[:question_no]=0 r=Results.chop Dir.mkdir(r) unless File.directory?(r) fn=Results+get_user+'.txt' begin open(fn,'w'){} unless File.exist? fn open(fn, 'a') { |f| f.puts "quiz #{session[:mcfile]} starts #{Time.now}~" } rescue logger.info "unable to write to #{fn}" end end session[:start_choices]=nil end def extras if !session[:mcfile] @title='pick a quiz' else @title="question number #{get_question_no+1 } of #{session[:mcfile]}" end @displayed=get_displayed @pic=session[:showpic] end def get_correct session[:correct] ||=0 end def get_wrong session[:wrong] ||= 0 end def designers 'Co-Designer:Harshendu Shridhar' end end