CSC/ECE 517 Spring 2022 - E2217: Refactor questionnaires controller: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 14: Line 14:
**'''Solution''':
**'''Solution''':


*'''Problem''': There are assignment values hardwired into the code in ''add_new_questions'''. Although these fields are okay to default to the given values, these should be defined constants
*'''Problem''': There are assignment values hardwired into the code in ''add_new_questions''. Although these fields are okay to default to the given values, these should be defined constants
**'''Solution''': As these values related to ''ScoredQuestion'' items, constants were created in ''scored_question.rb''. ''add_new_questions'' now uses these class constants when assigning default values for fields. These values are all changeable in the UI after initialization.
**'''Solution''': As these values related to ''ScoredQuestion'' items, constants were created in ''scored_question.rb''. ''add_new_questions'' now uses these class constants when assigning default values for fields. These values are all changeable in the UI after initialization.
Addition of constants to ''scored_question.rb''
[[File:scored_question_changes.png]]


== Modified Files ==
== Modified Files ==

Revision as of 19:16, 17 March 2022

This page describes the changes made for the Spring 2022 OSS Project E2217: Refactoring Questionnaires Controller

Description

This project focused on sanding down the rough edges of questionnaires_controller.rb through the removal of the unused create_questionnaire method, breaking up the exceedingly long create method, transfer of hardcoded values in the add_new_questions method, and general code cleanup.

Problems and Solutions

  • Problem: The create_questionnaire method is not used.create_questionnaire has no immediate apparent calls, and appears to have the same functionality as create.
    • Solution:
  • Problem: The create method is 49 lines long, and needs to be broken up
    • Solution:
  • Problem: There are three checks for whether a question is a QuizQuestionnaire. These checks are likely unnecessary, and testing the class of an object carries potential problems.
    • Solution:
  • Problem: There are assignment values hardwired into the code in add_new_questions. Although these fields are okay to default to the given values, these should be defined constants
    • Solution: As these values related to ScoredQuestion items, constants were created in scored_question.rb. add_new_questions now uses these class constants when assigning default values for fields. These values are all changeable in the UI after initialization.

Addition of constants to scored_question.rb

Modified Files

(Add modified files and list of changes here)

Testing

Running Tests

  rspec ./spec/controllers/questionnaires_controller_spec.rb

Pull Request

(Add pull request link here)