module RuboCop::AST::ConditionalNode

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.

Public Instance Methods

body() click to toggle source

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.

@note For `if` nodes, this is the truthy branch.

@return [Node, nil] the body of the node

# File lib/rubocop/ast/node/mixin/conditional_node.rb, line 40
def body
  node_parts[1]
end
condition() click to toggle source

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

@return [Node, nil] the condition of the node

# File lib/rubocop/ast/node/mixin/conditional_node.rb, line 29
def condition
  node_parts[0]
end
multiline_condition?() click to toggle source

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

@return [Boolean] whether the condition is on more than one line

# File lib/rubocop/ast/node/mixin/conditional_node.rb, line 21
def multiline_condition?
  !single_line_condition?
end
single_line_condition?() click to toggle source

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

@return [Boolean] whether the condition is on a single line

# File lib/rubocop/ast/node/mixin/conditional_node.rb, line 13
def single_line_condition?
  loc.keyword.line == condition.source_range.line
end