CSC/ECE 517 Fall 2022 - E2254: Refactor teams controller.rb

From Expertiza_Wiki
Revision as of 18:27, 25 October 2022 by Jrlanois (talk | contribs) (Added files changed bullets)
Jump to navigation Jump to search

Introduction

In this project we refactored teams_controller.rb and some tests associated with it. Before we worked on it, teams_controller.rb had some problems that violated some essential Rails design principles. Some methods have been moved to the teams.rb model class. Some duplicate code was removed. We added some comments for readability. And, we fixed tests to be more consistent with the program and execution.

Issues Fixed

  1. Added more comments and briefly explained the functionality of custom methods like action_allowed, and list
  2. Changed method name of create_teams to a better name: random_teams
  3. Found areas in the code where the DRY principle can be applied and did so
  4. The delete method manipulates a waitlist! This needs to be done in a model class, e.g., SignedUpTeam. And also check if this code is already present in the model or not. Explore the code base to find where else waitlist is manipulated. ----- John if you could describe briefly what you did here that'd be great -----
  5. Removed all extra added gems
  6. Renamed variable signUps to signups because it's a noun
  7. Moved list copying code from the inherit method to be a class method of the Team model: copy_teams_to_collection. Also replaced identical code in bequeath_all to also use this class method.
  8. Changed the name of the inherit method to copy_to_assignment so the name is more descriptive of it's purpose
  9. Removed nested if statments and removed other return points from bequeath_all
  10. Removed unnecessary comments for methods like update and added meaningful comments to other methods

Files Changed

  • app/controllers/teams_controller.rb
  • app/models/team.rb
  • app/views/teams/new.html.erb
  • config/locales/en_US.yml
  • config/locales/en_IN.yml
  • config/routes.rb
  • spec/controllers/teams_controller.rb
  • spec/controllers/airbrake_exception_errors_controller_tests_spec.rb