CSC/ECE 517 Spring 2019 - Project E1916. Fix Code Climate issues in controllers with names beginning with A through N
Description of the project
Project Team Member
- swang28 Shuai Wang
- hchang15 Huan Chang
- gyu22 Guangyu Yu
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:
- app/controllers/assessment360_controller.rb. MAINTAINABILITY C
- app/controllers/automated_metareviews_controller.rb MAINTAINABILITY B
- app/controllers/grades_controller.rb MAINTAINABILITY B
- app/controllers/impersonate_controller.rb MAINTAINABILITY C
- app/controllers/import_file_controller.rb MAINTAINABILITY f
- app/controllers/lottery_controller.rb MAINTAINABILITY C
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