CSC/ECE 517 Fall 2014/oss E1502 wwj: Difference between revisions
Jump to navigation
Jump to search
Line 134: | Line 134: | ||
end | end | ||
</pre> | </pre> | ||
Revision as of 23:25, 21 March 2015
E1502: Questionnaire Controller Refactoring
In this project, we have done some refactoring on the questionnaires_controller. We moved some methods to where we thought suited them, and changed the format of language into ruby style, deleted debugging statement. Details are displayed in the following sections.
Introduction to Expertiza
Project Description
What it does:
Used on the admin side of Expertiza for creating/ editing questionnaires (rubrics, surveys and quizzes). It helps in add/removing questions, options, etc for a questionnaire.
Other classes involved:
What needs to be done:
What We Have Done
Method Refactoring
Method Name | Changes Made | Reason For Change |
---|---|---|
copy | Extracted the content of this method as copy_questionnaires method and put it in questionnaire.rb | The content of this method is about operations on the database (coping a questionnaire), it is better to be put in the model |
valid_quiz | Moved this method to quiz_questionnaire.rb | This method is about validation of the quiz, it shouldn't appear in the controller |
export | Moved this method to questionnaire.rb | This method exports the questionnaires as csv file, it should't appear in the controller |
import | Moved this method to questionnaire.rb | This method imports the questionnaires from csv file, it should't appear in the controller |
clone_questionnaire_details | Deleted this method due to the duplication | Substituted by copy_questionnaires method in questionnaire.rb |
Format Refactoring
Case 1: Loop Condition
Change all the looping conditions into one format
Before
# Remove a given questionnaire def delete . . . for question in @questionnaire.questions . . . end
After
# Remove a given questionnaire def delete . . . @questionnaire.assignments.each . . . end
Case 2: If Condition
Change all the if conditions into ruby format
Before
. . if @successful_create == true . . unless this_q.nil? . .
After
. . if @successful_create . . if this_q . .
Case 3: Name
Change all the name from "JAVA name" to "Ruby name"
Before
#save an updated quiz questionnaire to the database def update_quiz . . . questionnum=1 . . . end
After
#save an updated quiz questionnaire to the database def update_quiz . . . question_num=1 . . . end