Class MiqAeCustomizationController
has 35 methods (exceeds 20 allowed). Consider refactoring. Open
class MiqAeCustomizationController < ApplicationController
require "English"
include CustomButtons
include OldDialogs
include Dialogs
- Create a ticketCreate a ticket
File miq_ae_customization_controller.rb
has 401 lines of code (exceeds 400 allowed). Consider refactoring. Open
class MiqAeCustomizationController < ApplicationController
require "English"
include CustomButtons
include OldDialogs
include Dialogs
- Create a ticketCreate a ticket
Method handle_bottom_cell
has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring. Open
def handle_bottom_cell(presenter)
if allowed(@sb[:action]) && (@pages || @in_a_form)
if @pages
presenter.hide(:form_buttons_div)
elsif @in_a_form && @sb[:action]
- Read upRead up
- Create a ticketCreate a ticket
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
Cyclomatic complexity for handle_bottom_cell is too high. [13/11] Open
def handle_bottom_cell(presenter)
if allowed(@sb[:action]) && (@pages || @in_a_form)
if @pages
presenter.hide(:form_buttons_div)
elsif @in_a_form && @sb[:action]
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
Checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.
An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one. Blocks that are calls to builtin iteration methods (e.g. `ary.map{...}) also add one, others are ignored.
def each_child_node(*types) # count begins: 1
unless block_given? # unless: +1
return to_enum(__method__, *types)
children.each do |child| # each{}: +1
next unless child.is_a?(Node) # unless: +1
yield child if types.empty? || # if: +1, ||: +1
types.include?(child.type)
end
self
end # total: 6
Method setup_presenter_for_old_dialogs_tree
has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring. Open
def setup_presenter_for_old_dialogs_tree(nodetype, presenter)
nodes = nodetype.split("_")
if nodetype == "root" || nodes[0].split('-').first != "odg"
partial = nodetype == 'root' ? 'old_dialogs_list' : 'layouts/x_gtl'
presenter.update(:main_div, render_proc[:partial => partial])
- Read upRead up
- Create a ticketCreate a ticket
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
Method handle_bottom_cell
has 28 lines of code (exceeds 25 allowed). Consider refactoring. Open
def handle_bottom_cell(presenter)
if allowed(@sb[:action]) && (@pages || @in_a_form)
if @pages
presenter.hide(:form_buttons_div)
elsif @in_a_form && @sb[:action]
- Create a ticketCreate a ticket
Method import_service_dialogs
has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring. Open
def import_service_dialogs
assert_privileges('miq_ae_customization_explorer') # feature like miq_ae_customization_service_dialog_import_export is missing
if params[:commit] == _('Commit')
if params[:dialogs_to_import].blank?
javascript_flash(:spinner_off => true,
- Read upRead up
- Create a ticketCreate a ticket
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
Method right_cell_text_for_node
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring. Open
def right_cell_text_for_node(record, model_name)
if record.try(:id)
case model_name
when "CustomButton"
_("Editing Button \"%{name}\"") % {:name => record.name}
- Read upRead up
- Create a ticketCreate a ticket
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
Avoid more than 3 levels of block nesting. Open
case @sb[:action]
when 'ab_group_new' then 'group_create'
when 'ab_group_edit' then 'group_update'
when 'ab_group_reorder' then 'ab_group_reorder'
when 'ab_button_new' then 'button_create'
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
Checks for excessive nesting of conditional and looping constructs.
You can configure if blocks are considered using the CountBlocks
option. When set to false
(the default) blocks are not counted
towards the nesting level. Set to true
to count blocks as well.
The maximum level of nesting allowed is configurable.
Useless method definition detected. Open
def group_button_add_save(typ)
super(typ)
end
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
Checks for useless method definitions, specifically: empty constructors
and methods just delegating to super
.
Safety:
This cop is unsafe as it can register false positives for cases when an empty constructor just overrides the parent constructor, which is bad anyway.
Example:
# bad
def initialize
super
end
def method
super
end
# good - with default arguments
def initialize(x = Object.new)
super
end
# good
def initialize
super
initialize_internals
end
def method(*args)
super(:extra_arg, *args)
end