123456789_123456789_123456789_123456789_123456789_

Module: RuboCop::AST::ConditionalNode

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/rubocop/ast/node/mixin/conditional_node.rb

Overview

Common functionality for nodes that have conditions: if, while, until, case. This currently doesn’t include when nodes, because they have multiple conditions, and need to be checked for that.

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#multiline_condition?Boolean (readonly)

Checks whether the condition of the node is written on more than one line.

Returns:

  • (Boolean)

    whether the condition is on more than one line

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/conditional_node.rb', line 21

def multiline_condition?
  !single_line_condition?
end

#single_line_condition?Boolean (readonly)

Checks whether the condition of the node is written on a single line.

Returns:

  • (Boolean)

    whether the condition is on a single line

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/conditional_node.rb', line 13

def single_line_condition?
  loc.keyword.line == condition.source_range.line
end

Instance Method Details

#bodyNode?

Note:

For if nodes, this is the truthy branch.

Returns the body associated with the condition. This works together with each node’s custom destructuring method to select the correct part of the node.

Returns:

  • (Node, nil)

    the body of the node

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/conditional_node.rb', line 40

def body
  node_parts[1]
end

#conditionNode?

Returns the condition of the node. This works together with each node’s custom destructuring method to select the correct part of the node.

Returns:

  • (Node, nil)

    the condition of the node

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/conditional_node.rb', line 29

def condition
  node_parts[0]
end