CSC/ECE 517 Spring 2022 - E2218: Refactor response controller
This page details project documentation for the CSC/ECE 517 Spring 2022, "E2218 refactor response_controller.rb" project.
Background
A response is the object that is created when someone fills out a review rubric, such as when one writes a review, gives feedback to a reviewer, or fills out a survey. Responses to the individual rubric items are kept in Answer objects; each Answer object has a response_id to say what Response it is part of. Since response_controller needs to work with many kinds of responses, its code is pretty general. It is not the worst controller in the system, but it would be much clearer if its method names were more descriptive of what they do.
Mentor
Ed Gehringer, efg@ncsu.edu
Team Members
- Sai Naga Vamshi Chidara (schidar@ncsu.edu)
- Akhil Kumar (amengan@ncsu.edu)
- Samson Mulkur (smulkur@ncsu.edu)
Code Modifications and Refactorization
Described below are the code refactoring tasks and issues addressed by this team. We have also included any pertinent details, reasonings, comments, warnings, etc., corresponding to each task.
METHOD: def set_response
@response and @map instance variables are initialized the same way across multiple methods. In order to avoid duplication, we created a before_action action which will be called first before calling the corresponding methods.
METHOD: def award_badge
The code for awarding the badge to a participant is written inside the response controller. It is moved to the AwardedBadge model file and called from the response controller.
METHOD: update
Made changes to split a line into multiple lines because it is too long.
METHOD: create
Made changes to split a line into multiple lines because it is too long.
Modified Files
response_controller.rb
response_helper.rb
assignment_questionnaire.rb
awarded_badge.rb
cake.rb
response.rb
Testing
Running Tests
rspec spec/controllers/questionnaires_controller_spec.rb
GitHub links and Pull Request
Link to Expertiza repository: here
Link to the forked repository: here
Link to Pull Request: here