app/models/abstract_flight.rb
Class AbstractFlight
has 69 methods (exceeds 20 allowed). Consider refactoring. Open
Open
class AbstractFlight < ActiveRecord::Base
Purposes = ['training', 'exercise', 'tow']
IncludeAll = [:liabilities]
before_save :replace_duplicates
before_save :destroy_launch
File abstract_flight.rb
has 372 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
require "digest/sha2"
class AbstractFlight < ActiveRecord::Base
Purposes = ['training', 'exercise', 'tow']
IncludeAll = [:liabilities]
Method soft_validate
has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring. Open
Open
def soft_validate
self.problems = {}
problems[:too_many_people] = {} if too_many_people_for_plane?
problems[:seat2_is_not_an_instructor] = {} if seat2_not_an_instructor?
problems[:launch_method_impossible] = {} if launch_method_impossible?
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Consider simplifying this complex logical expression. Open
Open
if not_between_sr_and_ss?
sr = (from && from.srss? && from.srss.sunrise_i(departure_date)) ||-1
ss = (to && to.srss? && to.srss.sunset_i(departure_date)) ||-1
problems[:not_between_sr_and_ss] = { :sr => DayTime.format(sr), :ss => DayTime.format(ss) }
end
Method launch_attributes=
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring. Open
Open
def launch_attributes=(attrs)
unless attrs.nil?
unless attrs == "none"
klass = attrs.delete(:type).constantize
if attrs[:id]
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"