CSC/ECE 517 Spring 2019 - Project E1916. Fix Code Climate issues in controllers with names beginning with A through N: Difference between revisions
Jump to navigation
Jump to search
Line 27: | Line 27: | ||
Main issue files: | Main issue files: | ||
*app/controllers/assessment360_controller.rb [MAINTAINABILITY | *[MAINTAINABILITY C] app/controllers/assessment360_controller.rb | ||
*[MAINTAINABILITY B] app/controllers/automated_metareviews_controller.rb | |||
*[MAINTAINABILITY B] app/controllers/grades_controller.rb | |||
*app/controllers/impersonate_controller.rb | *[MAINTAINABILITY C] app/controllers/impersonate_controller.rb | ||
*app/controllers/import_file_controller.rb | *[MAINTAINABILITY F] app/controllers/import_file_controller.rb | ||
*app/controllers/lottery_controller.rb | *[MAINTAINABILITY C] app/controllers/lottery_controller.rb | ||
===Typical Issues and Improvements=== | ===Typical Issues and Improvements=== |
Revision as of 03:51, 25 March 2019
Description of the project
Project Team Member
- Shuai Wang (swang28)
- Huan Chang (hchang15)
- Guangyu Yu (gyu22)
Project Task
There is some code smells detected by the code climate. These violate many of the ruby/rails best practices and needs to be rectified.
Our team is to fix all code smells except:
- Assignment Branch Condition size for [method name] is too high
- Perceived complexity for [method name] is too high.
- Cyclomatic complexity for [method name] is too high.
- Method [method name] has a Cognitive Complexity of XX (exceeds 5 allowed). Consider refactoring.
- File [file name] has XXX lines of code (exceeds 250 allowed). Consider refactoring.
- Class [class name] has XX methods (exceeds 20 allowed). Consider refactoring.
- Method [method name] has XX lines of code (exceeds 25 allowed). Consider refactoring.
- Mass assignment is not restricted using attr_accessible.
- Potentially dangerous attribute available for mass assignment.
Files modified in the project
In all files in app/controllers/ with names beginning with A through N, except assignment_controller.rb.
Main issue files:
- [MAINTAINABILITY C] app/controllers/assessment360_controller.rb
- [MAINTAINABILITY B] app/controllers/automated_metareviews_controller.rb
- [MAINTAINABILITY B] app/controllers/grades_controller.rb
- [MAINTAINABILITY C] app/controllers/impersonate_controller.rb
- [MAINTAINABILITY F] app/controllers/import_file_controller.rb
- [MAINTAINABILITY C] app/controllers/lottery_controller.rb
Typical Issues and Improvements
Issue: Use a guard clause instead of wrapping the code inside a conditional expression.
Example
if assignment.try(:is_selfreview_enabled) and unsubmitted_self_review?(participant.try(:id)) return false else return true end
Solution
return false if assignment.try(:is_selfreview_enabled) and unsubmitted_self_review?(participant.try(:id)) true